Forum: Mikrocontroller und Digitale Elektronik PIC: CAN Routinen nach AN738


von ChristofR (Gast)


Angehängte Dateien:

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

von Geri (Gast)


Lesenswert?

Hallo Christof

Ich entwickle auch mit dem PIC18. Mit dem CAN-Bus hatte ich bisher
nichts zu tun, kann dir deshalb nur den Hinweis geben doch mal das
Microchip-Fourm durchzustöbern oder dort einen Beitrag zu platzieren.
Die CAN-spezfischen Beiträge findet man dort unter:

http://forum.microchip.com/tt.asp?forumid=103

Beste Grüsse
Geri

von C3PO (Gast)


Lesenswert?

hatte mir auch mal die CAN-Sourcen von der Microchip-HP geladen, musste
sie aber erst anpassen, bevor was rauskam bzw. hinein in den PIC, aber
funzt mittlerweile sehr gut.

von Nikolaus Correll (Gast)


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.

von Andre P. (stanleyku)


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é

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.