Hallo, hat einer von euch schon mal ein CANopen Bus im Assambler Programmiert ? Ich habe das Problem das ich nirgendwo mal nen Code im Assambler finden kann. Wenn mir einer von euch mal nen Code zuschicken könnte wäre ich sehr dankbar. mfg Christian
Chrischio wrote: > Hallo, > hat einer von euch schon mal ein CANopen Bus im Assambler Programmiert ? > Ich habe das Problem das ich nirgendwo mal nen Code im Assambler finden > kann. > Wenn mir einer von euch mal nen Code zuschicken könnte wäre ich sehr > dankbar. > > mfg Christian Da wirste sicher jemand finden. (Ironie) Hsate du wage Vorstellungen was du erwartest und wieviel Arbeit das macht. Du bist dir scheinbar nicht einmal darüber im klaren, was "Assambler" ist.
Ja, ich weiss, das ich "Assambler" falsch geschrieben habe, denn es war ja auch schon spät!!! Ich weiss das es sehr viel Arbeit macht das zu proggen!! Aber ich muss nur wissen wie ich eine Nachricht im Ass"E"mbler uber die CAN pins de`s µC sende. Mehr will ich ja garnicht! Ich möchte hier kein komplettes Programm haben! Und wenn mir keiner helfen WILL , dann muss ich eben "das Rad für mich neu Erfinden".
Das Problem ist nicht das es falsch geschrieben ist (2 mal). Das Problem ist dass niemand weiss wie er dir helfen soll, weil niemand weiss für welchen Controller der Assemblercode sein soll. Für was brauchst du das? Studienarbeit ? Diplomarbeit?
Soll für nen 89C51 con Atmel sein! Brauche das für ein Privates Projekt. Das programm soll nix anderes machen als, das wenn auf port 1.1 eine Spannung anliegt das in ein CANopen Protokoll zu verpacken, das dann von einem anderen µC sendet der dann das Protokoll aufnimmt verarbeitet und dann an z.B. an port 5.2 einen ausgang schaltet! Ich brauche den Code im Assembler weil das das einzigste Programm ist womit ich wenigstens schon mal ein bisschen was gemacht habe.
> hat einer von euch schon mal ein CANopen Bus im Assambler > Programmiert ? Was suchst du genau, CAN-Bus oder CANopen? Letzteres ist ein höheres Kommunikationsprotokoll (Schicht 7), was auf ersterem (Kommunikations- schichten 1 und 2) abläuft. CANopen ist meiner Meinung nach etwas zu komplex, um es in Assembler zu programmieren. Von mehreren Firmen werden für einiges Geld entsprechende Bibliotheken angeboten. Die sind aber praktisch alle in C und für die Einbindung in C-Programme implementiert. Es gibt auch eine freie Bibliothek, ebenfalls in C: http://www.canfestival.org > Brauche das für ein Privates Projekt. Benutzt du in deinem Projekt Komponenten, die per CANopen angesprochen werden? Wahrscheinlich eher nicht. Dann würde ich auf CANopen verzichten und die Kommunikation über das "normale" CAN-Bus-Protokoll abwickeln, das größtenteils bereits in der CAN-Hardware implementiert und deswegen relativ leicht (auch in Assembler) zu programmieren ist. > Das programm soll nix anderes machen als, das wenn auf port 1.1 eine > Spannung anliegt das in ein CANopen Protokoll zu verpacken, das dann > von einem anderen µC sendet der dann das Protokoll aufnimmt > verarbeitet und dann an z.B. an port 5.2 einen ausgang schaltet! Dann pack die Information, die du übertragen willst, in eine normale CAN-Nachricht, verpasse ihr einen geeigneten Identifier und schicke sie auf den Bus. Eine CAN-Nachricht kann bis zu 8 Datenbytes enthalten, was für die von dir beschriebene Anwendung locker ausreichen sollte. Das zu programmieren ist nicht schwer, wenn du die CAN-Grundlagen und die von dir eingesetzte CAN-Hardware verstanden hast. Zu CAN im Allgemeinen gibt es Infos im Netz (ich würde vielleicht bei Wikipedia anfangen), zu deiner CAN-Hardware gibt es ein Datenblatt. Die eigentliche Programmierung besteht dann im Wesentlichen aus den folgenden Schritten: - Initialisierung der CAN-Hardware (Einstellen der Bitrate, Konfiguration des Nachrichtenfilters usw.) - Füllen der Sendedaten in einen von der Hardware zur Verfügung gestellten Puffer - Absenden der Nachricht - Abfrage, ob eine Nachricht empfangen wurde (ggf. durch Interrupthandler) - Auslesen der Nachricht aus Hardwarepuffer Alles andere wie z. B. Fehlererkennung, die automatische Wiederholung fehlerhaft übertragener Nachrichten usw. macht die Hardware für dich.
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.