[elektro] C18 kérdés

Tibor Kovács kovacs.tibor7909 at gmail.com
Thu Sep 12 14:45:01 CEST 2013


a hibaüzenet - Error: syntax error

hogy tudom akkor ezt a dolgot megoldani? ha nem tudom pontosan melyik
bankba teszi a változót akkor hogy állítsam? vagy a c-ben meg lehet azt
mondani neki hogy hova tegye a változót deklaráláskor?

egyébként azért van asm-ben ez a rész mert a kommunikációs csatorna
tulvégén egy pici proc van amibe sehogy sem férnék bele ha C-ben írnám a
programját... itt pedig nem akartam bajlódni ennek az átírásával.


2013. szeptember 12. 14:33 hg12345 írta, <hg12345 at freemail.hu>:

> Mert azt a linker kezeli.
>
>
> "Tibor Kovács" <kovacs.tibor7909 at gmail.com> írta:
> >Így már majdnem lefordul, csak a BANKSEL-t nem tudom vele megetetni...>
> >
> void Crc8bit(void)>
> {>
> _asm>
> BANKSEL iobyte>
> MOVF iobyte, 0, 0>
> MOVWF b_crcv4, 0>
> CLRF b_crcv2, 0>
> BSF b_crcv2, 3, 0>
> crc8c:>
> MOVF b_crcv4, 0, 0>
> XORWF b_crc8, 0, 0>
> MOVWF b_crcv3, 0>
> RRCF b_crcv3, 1, 0>
> MOVF b_crc8, 0, 0>
> BTFSC STATUS, 0, 0>
> XORLW c_crc8c>
> MOVWF b_crcv3, 0>
> RRCF b_crcv3, 1, 0>
> MOVWF b_crc8, 0>
> RRCF b_crcv4, 1, 0>
> DECFSZ b_crcv2, 1, 0>
> GOTO crc8c>
> BANKSEL PORTA>
> RETURN 0>
> _endasm>
> }>
> >
> >
> 2013. szeptember 12. 13:04 Tibor Kovács írta, <kovacs.tibor7909 at gmail.com
> >:>
> >
> >>
> > Egy ujabb buktató.>
> > Van neküknk régebbről, még asm-es korból egy jól bevált crc-r rutin,
> amit>
> > eddig basicbe be tudtam szúrni, de itt C-ben az istennek sem fogadja el.>
> > Syntax error-t dob vissza... esetleg nem jól használom az asm beszúrást?>
> >>
> > void Crc8bit(void)>
> > {>
> > _asm>
> > BANKSEL iobyte>
> > MOVF iobyte,W>
> > MOVWF b_crcv4>
> > CLRF b_crcv2>
> > BSF b_crcv2,3>
> > crc8c:>
> > MOVF b_crcv4,W>
> > XORWF b_crc8,W>
> > MOVWF b_crcv3>
> > RRCF b_crcv3,1>
> > MOVF b_crc8,W>
> > BTFSC STATUS,0>
> > XORLW c_crc8c>
> > MOVWF b_crcv3>
> > RRCF b_crcv3,W>
> > MOVWF b_crc8>
> > RRCF b_crcv4,1>
> > DECFSZ b_crcv2,1>
> > GOTO crc8c>
> > BANKSEL porta>
> > RETURN>
> > _endasm>
> > }>
> >>
> >>
> > 2013. szeptember 11. 15:37 Tibor Kovács írta, <
> kovacs.tibor7909 at gmail.com>>
> > :>
> >>
> >> köszi!>
> >>>
> >> így már ugy működik ahogy szerettem volna. kezdem kapizsgálni... a
> minap>
> >> kezdtem el a C-ben létezni, és vannak még dolgok bőven amik meg tudnak>
> >> kavarni.>
> >>>
> >>>
> >> 2013. szeptember 11. 15:27 Lajos Rancz írta, <lajos.rancz at gmail.com>:>
> >>>
> >> igen mert a pData_2 elé nem kell a csillag ha az nem lokális hanem
> vmilyen>
> >>> globális. Mivel ez itt értékadás nem pedig deklaráció. Tehát>
> >>>>
> >>> *Eset 1, globális:*>
> >>>>
> >>> char *pData_2 = NULL;>
> >>> ....>
> >>> void MyPrint(...)>
> >>> {>
> >>> pData_2 = data_2; // Globalis ertekadas>
> >>> for (...) ....>
> >>> }>
> >>>>
> >>> *Eset 2, lokális:*>
> >>>>
> >>> ...>
> >>> void MyPrint(....)>
> >>> {>
> >>> char *pData_2 = data_2; // Lokalis deklaracio + ertekadas>
> >>> for (...) ..>
> >>> }>
> >>>>
> >>> Üdv>
> >>>>
> >>>>
> >>> 2013. szeptember 11. 15:22 Tibor Kovács írta, <>
> >>> kovacs.tibor7909 at gmail.com>:>
> >>>>
> >>> > próbáltam így: *pData_2 = data_2;>
> >>> > de hibával fordul...>
> >>> >>
> >>> >>
> >>> > 2013. szeptember 11. 15:21 Lajos Rancz írta, <lajos.rancz at gmail.com
> >:>
> >>> >>
> >>> > > Hi!>
> >>> > >>
> >>> > > Úgy, hogy a ptr változót mindig az elejére állítod a for ciklus>
> >>> előtt.>
> >>> > >>
> >>> > > Üdv>
> >>> > >>
> >>> > >>
> >>> > > 2013. szeptember 11. 14:56 Tibor Kovács írta, <>
> >>> > kovacs.tibor7909 at gmail.com>
> >>> > > >:>
> >>> > >>
> >>> > > > szuper!>
> >>> > > >>
> >>> > > > Ez működik, viszont azt hogy csináljam hogy ha ezt:>
> >>> > > >>
> >>> > > > for (i = 0; i < 18; ++i)>
> >>> > > > {>
> >>> > > > ptr += sprintf(ptr, "%02x ", S2buffer[i]);>
> >>> > > > }>
> >>> > > >>
> >>> > > > többször is meg akarom hívni akkor ne fűzze mindíg az előző
> állapot>
> >>> > > > végéhez. Mert jelenleg ez van...>
> >>> > > >>
> >>> > > >>
> >>> > > > 2013. szeptember 11. 14:37 Lajos Rancz írta, <>
> >>> lajos.rancz at gmail.com>:>
> >>> > > >>
> >>> > > > > Helló!>
> >>> > > > >>
> >>> > > > > Hogy akarod kiírni mint hexa számok mint decimális számok vagy>
> >>> mint>
> >>> > > > > karakterek?>
> >>> > > > >>
> >>> > > > > hexában és decimálisan:>
> >>> > > > > int i;>
> >>> > > > > char *ptr = data_2;>
> >>> > > > > for (i = 0; i < 18; ++i)>
> >>> > > > > {>
> >>> > > > > ptr += sprintf(ptr, "%02x ", pS2buffer[i]); // Decimalisan a>
> >>> format>
> >>> > > > string:>
> >>> > > > > "%d ">
> >>> > > > > }>
> >>> > > > >>
> >>> > > > > Üdv>
> >>> > > > >>
> >>> > > > >>
> >>> > > > > 2013. szeptember 11. 13:58 Tibor Kovács írta, <>
> >>> > > > kovacs.tibor7909 at gmail.com>
> >>> > > > > >:>
> >>> > > > >>
> >>> > > > > > Sziasztok!>
> >>> > > > > >>
> >>> > > > > > Egy ujabb C-s kérdés merült fel bennem..>
> >>> > > > > > Mégpedig van egy bejövő soros adatom amit egy tömb-be>
> >>> letárolok (18>
> >>> > > > > byte),>
> >>> > > > > > ezzel eddig nincs is gondom, viszont ahoz hogy ezt ki tudjam>
> >>> írni>
> >>> > > > LCD-re>
> >>> > > > > át>
> >>> > > > > > kell tennem egy string-be formázottan. Van egy módszer
> amivel>
> >>> > > sikerűlt>
> >>> > > > de>
> >>> > > > > > túl hosszúnak találom, és az lenne a kérdésem hogy lehet ezt>
> >>> > > > > > leegyszerűsíteni.>
> >>> > > > > >>
> >>> > > > > > pl.: (ez csak 6 byte-ra vonatkozik, nekem ugye 18 kellene)>
> >>> > > > > > sprintf(data_2, "%c%c%c%c%c%c",>
> >>> > > > > >>
> >>> > > >>
> >>> >>
> >>>
> s2buffer[0],s2buffer[1],s2buffer[2],s2buffer[3],s2buffer[4],s2buffer[5]);>
> >>> > > > > >>
> >>> > > > > > gondoltam egy ilyenre, de ez nem működik...>
> >>> > > > > >>
> >>> > > > > > pData_2 = &data_2[0];>
> >>> > > > > > pS2buffer = &s2buffer[0];>
> >>> > > > > > for (i=0; i < 18; i++)>
> >>> > > > > > {>
> >>> > > > > > sprintf(*pData_2, "%2x", *pS2buffer);>
> >>> > > > > > pData_2++;>
> >>> > > > > > pS2buffer++;>
> >>> > > > > > }>
> >>> > > > > >>
> >>> > > > > > előre is köszi!>
> >>> > > > > > ----------------------------------------->
> >>> > > > > >           elektro[-flame|-etc]>
> >>> > > > > >>
> >>> > > > > ----------------------------------------->
> >>> > > > >           elektro[-flame|-etc]>
> >>> > > > >>
> >>> > > > ----------------------------------------->
> >>> > > >           elektro[-flame|-etc]>
> >>> > > >>
> >>> > > ----------------------------------------->
> >>> > >           elektro[-flame|-etc]>
> >>> > >>
> >>> > ----------------------------------------->
> >>> >           elektro[-flame|-etc]>
> >>> >>
> >>> ----------------------------------------->
> >>>           elektro[-flame|-etc]>
> >>>>
> >>>
> >>>
> >>
> ----------------------------------------->
>           elektro[-flame|-etc]>
>
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list