PIC + CAN BUS + C
Napsal: 18 led 2010, 22:49
Zdravim, na stránkach Microchipu sa nachádza aplikačná poznámka AN878
http://www.microchip.com/stellent/idcpl ... e=en012117 Jedná sa o procesory PIC18F s integrovaným modulom CAN . Je tam na stiahnutie aj kód v Cčku. A o to mi ide, nemožem ho skompilovat. Skúšal som aj HI-TECH PICC18 kompilátor aj MICROCHIP C18 kompilátor, ale výsledok stále rovnaký. Oba prekladače hlásia rovnakú chybu: Nie je mi jasné prečo prekladač nehlási nieakú konkrétnu chybu. V zdrojovom texte som našiel pasáže, ktorým moc nerozumiem, napríklad: Čo znamenajú tie "dvojité mriežky" nieako sa nemožem toho dopátrať, lebo editor MPLABU to zobrauje načerveno a to znamená zlý zápis (syntax)!? Alebo je to nieaká špecialitka fakt neviem. Porposil by som niekoho skúsenejšieho o vysvetlenie, prípadne o rozbehnutie toho demo kódu. Vopred ďakujem.
http://www.microchip.com/stellent/idcpl ... e=en012117 Jedná sa o procesory PIC18F s integrovaným modulom CAN . Je tam na stiahnutie aj kód v Cčku. A o to mi ide, nemožem ho skompilovat. Skúšal som aj HI-TECH PICC18 kompilátor aj MICROCHIP C18 kompilátor, ale výsledok stále rovnaký. Oba prekladače hlásia rovnakú chybu:
Kód: Vybrat vše
Executing: "C:\Program Files\HI-TECH Software\PICC-18\PRO\9.63\bin\picc18.exe" -C -E"ECANDemo.cce" "ECANDemo.c" -O"ECANDemo.obj" -Q -MPLAB -18F8680
Executing: "C:\Program Files\HI-TECH Software\PICC-18\PRO\9.63\bin\picc18.exe" -C -E"ECAN.cce" "ECAN.c" -O"ECAN.obj" -Q -MPLAB -18F8680
Skipping link step. Not all sources built successfully.
BUILD FAILED: Mon Jan 18 22:04:11 2010
Kód: Vybrat vše
#define _SetStdRXFnValue(f, val)
##f##SIDH = (long)ECAN_##f##_VAL >> 3L;
##f##SIDL = (long)ECAN_##f##_VAL >> 5L
#define _SetXtdRXFnValue(f, val)
##f##SIDH = (long)ECAN_##f##_VAL >> 21L;
##f##SIDL = (((long)ECAN_##f##_VAL >> 13L) & 0xe0) |
((long)(ECAN_##f##_VAL) & 0x03L) |
0x08;
##f##EIDH = (long)ECAN_##f##_VAL >> 8L;
##f##EIDL = ECAN_##f##_VAL;
#define _SetStdRXMnValue(m, val)
RXM##m##SIDH = (long)ECAN_RXM##m##_VAL >> 3L;
RXM##m##SIDL = (long)ECAN_RXM##m##_VAL >> 5L
#define _SetXtdRXMnValue(m, val)
RXM##m##SIDH = (long)ECAN_RXM##m##_VAL >> 21L;
RXM##m##SIDL = (((long)ECAN_RXM##m##_VAL >> 13L) & 0xe0) |
((long)(ECAN_RXM##m##_VAL) & 0x03L);
RXM##m##EIDH = (long)ECAN_RXM##m##_VAL >> 8L;
RXM##m##EIDL = ECAN_RXM##m##_VAL;