CAN Bus in C

OP #3741792
Lesenswert?

Hallo,

ich schreibe z.Zt. meine Bachelorarbeit. Aufgabe ist die Steuerung einer 
Modellbau Servo über den CAN Bus. Als Sprache für den CAN soll C 
dienen.(einzige was ich kann) Ich habe als größten (und einzigen Erfolg) 
eine Uhr in C programmiert. Ich habe das CAN Prinzip verstanden, aber 
den Aufbau in C bekomm ich nicht hin. Als Controller soll der 
Microsoftstick Plus dienen. Ich finde keinen Ansatz für den CAN, deshalb 
möchte ich nicht "copy and paste" machen! Bloß aktuell wird es für mich 
zu abstrakt den Aufbau logisch in C zu schreiben.
#3741840
Lesenswert?

Wenn man bedenkt das ich nicht ma mein Studium auf die Reihe kriege aber 
so ne Aufgabe lösen könnte...

Nehme mal an du meinst das hier 
http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=TCAD001
und die Implementierung der CAN Hardware ist für dich egal.

Wenn du was lernen willst:

Lies für den Anfang das GCC Tutorial und versuch zu verstehen wie 
Microcontroller funktionieren und wie man in Register schreibt und aus 
ihnen liest.

CAN Nachrichten werden üblicherweise in C als structs zusammengebastelt.


Wenn du nix lernen willst:

Klicke im obigen Link auf Examples. Lade Das ECAN Beispiel runter und 
pass es an.
Könnte allerdings doof kommen wenn du nix kapierst und dann hier doofe 
Fragen stellst (nur so als Hypothese ;-) )
Gast #3741860
Lesenswert?

Flo Muster schrieb:

> ich schreibe z.Zt. meine Bachelorarbeit. Aufgabe ist die Steuerung einer
> Modellbau Servo über den CAN Bus. Als Sprache für den CAN soll C
> dienen.(einzige was ich kann) Ich habe als größten (und einzigen Erfolg)
> eine Uhr in C programmiert. Ich habe das CAN Prinzip verstanden, aber
> den Aufbau in C bekomm ich nicht hin.

Dann kannst du wohl kein Bachelor werden...

So'ne primitive Scheiße korrekt umsetzen zu können, wird (zu Recht!) 
sogar von IT-Facharbeitern verlangt. Die können sich aber unter 
bestimmten Umständen wenigstens noch damit herausreden, daß ihnen 
irgendwelches benötigte Wissen nicht vermittelt wurde.

Bei einem Bachelor zieht das aber nicht mehr. Der hat per Definition in 
der Lage zu sein, sich zur Realisierung des Projektes ggf. fehlendes 
Wissen selbstständig zu erarbeiten. Es wird sogar gefordert (und als 
Bildungsinhalt vermittelt), daß er die zur Selbst-Aufschlauung nötigen 
Aufwendungen korrekt in das Projektbudget einkalkuliert...

Das ist natürlich ziemlich fies, denn der Delinquent muß dazu wenigstens 
soviel Kenntnisse haben, um das ganze Ausmaß des Kenntnismangels 
wenigstens halbwegs korrekt einschätzen zu können...

Aber was solls, es gibt kein grundgesetzlich verankertes Recht, daß das 
Arbeitsleben Spaß machen muß. Gewöhn' dich dran!
Gast #3741864
Lesenswert?

Soll das ein Witz sein? Das zählt als Bachelor- Arbeit?  Verschenkt 
deine Hochschule Bachelortitel? Das programmier ich dir noch vor der 
Mittagspause, in einer beliebigen Programmiersprache auf einem 
beliebigen Mikrocontroller. Und du musst dafür auch noch im Forum 
fragen?!
OP #3741873
Lesenswert?

Ich studiere Maschinenbau! Ich habe nur ein Mikrocontroller-Modul 
gehabt! Ich finde es hervorragend, dass Informatiker (berufl. oder 
hobbymäßig) sich über sowas Gedanken machen. Die Programmierung ist 
lediglich ein Teil meiner Bachelorarbeit (WARUM muss ich mich hier dafür 
verteidigen und das Thema wird vollständig verfehlt?) Wenn mir jmd. 
helfen möchte - GERNE. Wenn jemand weiter über den Verfall deutscher 
Bildungsgüter diskutieren möchte, dem empfehle ich das Forum der Bild.
#3741902
Lesenswert?

Flo Muster schrieb:
> Ich studiere Maschinenbau! Ich habe nur ein Mikrocontroller-Modul
> gehabt! Ich finde es hervorragend, dass Informatiker (berufl. oder
> hobbymäßig) sich über sowas Gedanken machen.

Da braucht es keinen Informatiker, jeder Etechniker würde das auch 
hinbekommen. Aber bei Maschinenbauern setzt es ja bekanntlich aus, wenn 
man Teile nicht anfassen kann.
#3741906
Lesenswert?

Der MCP2551 ist kein CAN Bus Controller.
Den Job übernimmt dein Mikroprozessor.
Das Ding ist nur der Bustreiber, dieser hängt am CAN Output des 
Prozessors.

Am besten die Bibliotheken die du für CAN brauchst, beziehungsweise die 
Routinen die freundlicherweise ja für dich schon bereit liegen.

Der CAN Frame ist wie bereits erwähnt in der Regel (ich habe das 
Beispiel nicht angesehen) ein struct und wird einer Sendefunktion 
übergeben...

Hast du in etwa eine Ahnung wie dein Programmablauf schematisch aussehen 
muss?
Gast #3741945
Lesenswert?

Zu dem Compilern - schau mal auf folgende Seite:
http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/

Zu deinem PIC - schau mal auf folgende Seite:
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en534556

Wo kommen die CAN-Frames her? Wer erzeugt diese?
Und wie schauen die CAN-Frames überhaupt aus?
Was ist darin enthalten?
Hast du eigentlich 2 von den PICs/Evalboards?

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