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.
CAN wirst du nicht programmieren können wenn dein Mikrokontroller keine eingebaute CAN Hardware hat. In Software ist das fast unmöglich. Schon gar nicht für einen Anfänger. Also, was hast du für Hardware?
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 ;-) )
wie Controller funktionieren ist mir bewusst. (Deswegen ja das Bsp. mit der Uhr) Ich studiere keine Informatik, deswegen Gratulation, dass du das kannst! Das ECAN Bsp. kenne ich auch, aber verstehe davon noch nicht allzu viel.
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!
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?!
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.
>Ich studiere keine Informatik Dito. >aber verstehe davon noch nicht allzu viel. Dann erzähl doch einfach mal, was du nicht verstehst oder wo es momentan hängt. Dann wird es vielleicht etwas konstruktiver.
Es hängt am Anfang. Der Controller ist der MCP2551; welche Bibliotheken müssen eingebunden werden? und vor allem: Der Aufbau des CAN Frames in C....Wie wird das dargestellt?
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.
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?
Phil J. schrieb: > Hast du in etwa eine Ahnung wie dein Programmablauf schematisch aussehen > muss? Nein. Aber immerhin weiß ich nun schon, dass der PIC als CAN Controller dient. Ich soll das mittels MplabX machen, der PIC ist ein 24hj64gp502, welcher Compiler soll dafür benutzt werden?
wenn du MPLAp installierst kannst du den Compiler gleich auswählen, eine frei Version ist dabei. Dann laufen auch die Libraries von Microchip problemlos.
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?
Danke für alle Antworten. Also zur Geschichte, ich hatte erst 2 Explorer 16 Boards mit dem zusätzlichen ECAN Aufsatz. Ich habe nun den Microstick erhalten und es so verstanden, dass der Stick die Servo über CAN steuern soll. Ohne die anderen Boards.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.