Forum: Haus & Smart Home Ecan Treiber PIC18: wie einbinden, woher bekommen?


von Andre P. (stanleyku)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich habe einen PIC18F66K80 mit integrietem ECAN. Gerade bin ich dabei 
die Initialisierungen für die Hardware zu machen. Da ich neu bei MPLAB X 
IDE(V3.10) bin, frage ich mich woher ich die Treiber für dies Funktionen 
bekomme.

Hier mein Code (zusätzlich die PNG-Datei im Anhang):
1
/*CAN-Parameter initialisieren*/
2
SJW = 1;
3
BRP = 1;
4
Phase_Seg1 = 6;
5
Phase_Seg2 = 7;
6
BRP = 1;
7
Prop_Seg = 6;
8
9
init_flag = CAN_CONFIG_SAMPLE_THRICE  &
10
    CAN_CONFIG_PHSEG2_PRG_ON  &
11
    CAN_CONFIG_STD_MSG        &
12
    CAN_CONFIG_DBL_BUFFER_ON  &
13
    CAN_CONFIG_VALID_XTD_MSG  &
14
    CAN_CONFIG_LINE_FILTER_OFF;
15
16
send_flag = CAN_TX_PRIORITY_0          &
17
    CAN_TX_XTD_FRAME           &
18
    CAN_TX_NO_RTR_FRAME;
19
20
read_flag = 0;
21
22
/*Integrieters CAN-Modul initialisieren*/
23
      CANInitialize(SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, init_flag);
24
/*Set CAN CONFIG mode*/
25
      CANSetOperationMode(CAN_MODE_CONFIG, 0xFF);
26
      mask = -1;
27
/*Set all MASK1 bits to 1's*/
28
      CANSetMask(CAN_MASK_B1, mask, CAN_CONFIG_XTD_MSG);
29
/*Set all MASK2 bits to 1's*/
30
      CANSetMask(CAN_MASK_B2, mask, CAN_CONFIG_XTD_MSG);
31
/*Set id of filter B1_F1 to 3*/
32
      CANSetFilter(CAN_FILTER_B2_F3,500,CAN_CONFIG_XTD_MSG);
33
/*Set CAN module to NORMAL mode*/
34
      CANSetOperationMode(CAN_MODE_NORMAL, 0xFF);

Ich bekomme die Fehlermeldung  "Unable to resolve identifier - 
Identifier whose declaration cannot be found." für jede Funktion. Kann 
ir jemand einen Tipp geben wir ich diese Fehlermeldungen beseitige? (Wo 
kriege ich die Header/Library her bzw. was muss ich bei der Einbindung 
in MPLAB beachten)

VIELEN DANK!!!!

Gruß Andre

von Teo D. (teoderix)


Lesenswert?


von Andre P. (stanleyku)


Angehängte Dateien:

Lesenswert?

Hallo Teo,

vielen Dank für den Hinweis. Ich habe bereits die ECAN.h und ECAN.def 
auf der Microchiphomepage heruntergeladen und in mein Projekt, wie im 
Screenshot zu sehen, integriert 
(http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en012117). 
Aber er erkennt den Treiber noch nicht. Ich komme hier nicht weiter. Hat 
jemand eine Idee was ich hier noch falsch mache? Meine Idee ist, dass 
der Header + die Def-Datei an bestimmten Speicherorten im Projekt 
abgelegt werden müssen, aber ob und wo habe ich noch nicht heraus 
gefunden ...

(Wie gesagt, es kann und wird wahrscheinlich sehr trivial sein, da ich 
neu bin bei MPLAB)


Vielen Dank.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Die Files stehen halt nicht im such Path. Event. reicht's da "" zu 
nutzen.
ABER da fehlt noch so einiges! Ist Dir bekannt?
Nein? Nutze die Templates und den Codegenerator, macht das Leben um 
einiges einfacher (erspart einiges an Tipparbeit).

von Andre P. (stanleyku)


Lesenswert?

Hallo Teo,

Teo D. schrieb:
> Die Files stehen halt nicht im such Path. Event. reicht's da "" zu
> nutzen.
-> nein "" genügt nicht und Codegenerator unterstützt meine Hardware 
nicht (PIC18F66K80). Was bedeutet der "such Path"? :/

Meinem Verständnis von CAN-BUS muss ich die ECAN.def einbinden und 
parametrieren, sowie den ECAN.h einbinden, dann sollten meine Funktionen 
(CANInitialize, ECANSetOperationMode, ECANSetMask, ECANSetMask, 
ECANSetFilter, ECANSetOperationMode) erkannt werden und ich kann diese 
verwenden.
Weiterhin sollten meine CAN-Variablen deklarieren werden sowie die 
Zeitparameter angepasst werden. Alles bis auf die Einbindung der Header 
ist i.O. . Was fehlt denn hier noch?

Vielen Dank

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.