PIC: CAN Routinen nach AN738

Gast #234501
Lesenswert?

Hallo zusammen,

ich möchte die C-Routinen für CAN nach dem Application Note 738 von
Microchip verwenden:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011822

Verwendet wird der C18 Compiler für 18CXX8 Controller.

Leider gelingt es mir nicht diese Routinen einzubinden damit es sich
ohne Fehler kompilieren lässt. Das gesamte Projekt für MPLAB ist
mitangehängt.

Ich bekomme beim Compilieren folgende Fehler:

E:\18er_PICs\Dummy2\can18xx8.c:175:Error [1205] unknown member
'RX0DBEN' in '__tag_98'
E:\18er_PICs\Dummy2\can18xx8.c:175:Error [1131] type mismatch in
assignment
E:\18er_PICs\Dummy2\can18xx8.c:687:Error [1205] unknown member
'RX0OVFL' in '__tag_120'
E:\18er_PICs\Dummy2\can18xx8.c:690:Error [1205] unknown member
'RX0OVFL' in '__tag_120'
E:\18er_PICs\Dummy2\can18xx8.c:690:Error [1131] type mismatch in
assignment
E:\18er_PICs\Dummy2\can18xx8.c:690:Error [1117] scalar type expected
in 'if' statement
E:\18er_PICs\Dummy2\can18xx8.c:693:Error [1205] unknown member
'RX0DBEN' in '__tag_98'
E:\18er_PICs\Dummy2\can18xx8.c:696:Error [1117] scalar type expected
in 'if' statement
Angehängte Dateien:
Gast #830453
Lesenswert?

Schau mal ins Datenblatt / in die PIC18xx.h. Die entsprechenden Register 
bits sind inzwischen umbenannt worden. Wenn Du die defines ganz oben im 
CANxx.h file anpasst, compiliert alles.
#4374850
Lesenswert?

Hallo Zusammen,

ich bin auch gerade dabei eine CAN18XX8.h in mein Projekt einzubinden. 
In dem Moment wo die can18XX8.c dazu kommt bekomme ich einen Fehler beim 
compilieren.
1
"C:\Program Files (x86)\Microchip\xc8\v1.34\include\pic18f66k80.h:22085: warning: (983) storage class redeclared for "TXB2CONbits"
2
C:\Program Files (x86)\Microchip\xc8\v1.34\include\pic18f66k80.h:22085: error: (984) type redeclared
3
C:\Program Files (x86)\Microchip\xc8\v1.34\include\pic18f66k80.h:22085: error: (1098) conflicting declarations for variable "TXB2CONbits" (../99_library/00738_CANRoutine/can18xx8.h:120)
4
(908) exit status = 1
5
nbproject/Makefile-default.mk:110: recipe for target 'build/default/production/_ext/121606277/can18xx8.p1' failed
6
CAN18XX8.h:96: warning: (367) identifier is already extern; can't be static
7
CAN18XX8.h:96: error: (984) type redeclared
8
CAN18XX8.h:96: error: (1098) conflicting declarations for variable "RXB1CONbits" (CAN18XX8.h:96)
9
make[2]: *** [build/default/production/_ext/121606277/can18xx8.p1] Error 1
10
make[2]: *** Waiting for unfinished jobs....
11
make[2]: *** [build/default/production/main.p1] Error 1
12
make[1]: *** [.build-conf] Error 2
13
make: *** [.build-impl] Error 2
14
"

-> "storage class redeclared for "TXB2CONbits" ist in der pic18f66k80.h 
sowie in der CAN18XX8.h vorhanden (natürlich). Ich verstehe nicht wo das 
Problem liegt, da die Register doch in beiden Headern beötigt werden. 
Kann mir jemand auf die Sprünge helfen?

Vielen DANK!

Gruß André

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren