Hallo, hat jemand eine Beispieldatei in Assember, wie man mit dem CAN Bus auf dem AT90CAN128 sendet oder empfängt? Sollte es jemand nur in C haben, würde auch eine HEX Datei reichen (interner Oszi oder 16MHZ externer Quarz, 100kBit Canbus) Vor lauter Register im Datenblatt sehe nicht mehr, was dafür benötigt wird ):
http://www.mikrocontroller.net/forum/read-4-205751.html#new Diese Beispiele auf Assembler umzumünzen kann doch nicht das Problem sein. Die Werte für die Baudratenregister findest du im Datenblatt.
hier nochwas von AVRFreaks: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=32435&highlight=at90can128 hat mir auch sehr geholfen. Unbedingt musst du darauf achten, dass du ein MOb, mit dem du etwas versenden willst erst dann aktivierst, wenn du die Daten schon in den Puffer geschrieben hast. Solange bleibt das MOb deaktiviert. Dann auf TxOK warten und dann wieder deaktivieren. Dann musst du auf die Identifier achten, die 11 Bit sind komisch verteilt. Wenn du jetzt immer noch nicht klar kommst, dann sag Bescheid. VG
Danke, Jungs, jedoch ist bei keinem was brauchbares dabei: Bei Alex seinem Link gehts um einen C code, das kann ich mit AVR Studio nicht benützen. Und ich will nicht eine komplett neue Hochsprache lernen, nur wegen einem Miniprojekt. Bei Michaels Link kommt auf einmal eine index.php datei zum runterladen an, wenn man auf den Link mit der Zip Datei klickt. Bei Larsens link ist überhaupt keine Datei zu sehen. Hat denn noch niemand den Canbus mit Assember hingekriegt?
Wir machen doch nicht Deine Hausaufgaben! Was ist eigentlich Assember? Wer ist eigentlich Claudia Junge? Immer wieder solche Schnarchnasen im Forum, die fertige Projekte kopieren wollen...
Hi @ferdi Assembler ist wenn man weiss was der MC macht,alles andere ist wenn man glaubt was er macht. MfG HG
Hier geht um eine Beispieldatei, und nicht um Hausaufgaben oder kopieren, sondern ich will es einfach erlernen. Leider hilft mir das Atmel Datenblatt dabei nicht weiter. Für z.B. den UART gab es im Datenblatt ein Beispiel. Über den Canbus gibt es nur Register, die in keiner Canbus Spezifikation beschrieben sind. Und auch wochenlanges googeln hat mir nocht wirklich weiter geholfen. Und was hast Du gegen meinen Namen? Und wer bist Du, daß Du über mich urteilst? So etwas unverschämtes ist mir noch nicht wiederfahren! Wenn Du keinen konstuktiven Beitrag über den Canbus hast, dann solltest in di9esem Thread nicht posten! Ich wünsche Dir, daß Dir keiner mehr irgendwie helfen wird, wenn Du mal nicht weiter kommst!
Was Assembler glaube ich zu wissen, Claudia hat aber nach Assember gefragt...
Du hast den Tippfehler ganz alleine gefunden, also darfst Du ihn auch behalten. Dabei hast Du auch einen eingebaut: "Was Assember 'ist' glaube ich zu wissen" - wenn wir schon so kleinlich sind. Wenn es nach Dir ginge, wäre dieses Forum mit all den gegenseitigen Hilfen - erst recht der Bereich der Codesammlung - leer. Trotzdem finde ich die Cambus Register von Atmel sehr schlecht beschrieben sind und bin auf Hilfe angewiesen. In C habe ich im Netz schon einiges gefunden, auch auf der Atmel Seite gibt es schon eine Canbus Programmsammlung in C inkl. einer Bibliothek. Alle im Netz gefundenen Projekte scheinen in C diese Bibliothek zu verwenden, ohne sich in die einzelnen Register eingearbeitet zu haben. In Assemb'l'er auf Registerebene selbst scheint es noch keiner versucht zu haben. Bei Larsens Link scheint der letzte Poster in Assembler etwas zu haben (Danke, Larsen, ich werde mal versuchen von ihm etwas zu bekommen). Ich hoffe jedoch trotzdem noch auf eine deutsche Unterstützung.
Du sprichst schon wieder von Assember!!! Bitte nenne es Assembler und dann verstehen Dich auch alle...
Mensch Ferdi, zieh dich doch nicht an einem Tippfehler hoch. Bei manchen Fehlern kann man mal drauf hinweisen (Wi_e_derstand z.B.), ansonsten ist Sprache derart redundant, dass ein hier und da eingestreuter Fehler überhaupt kein Problem darstellt. Wenn du sonst nichts zu sagen hast, kannst du es wirklich gern lassen. Vielleicht gibts irgendwo "Deutschstunde für Fortgeschrittene", versuchs da mal.
Bravo, crazy horse. Sehe ich genauso. @Claudia: Ich habs schon hingekriegt mit Assembler. Was genau willst du denn wissen? Du musst doch nur genau lesen. Einfach alle Register so, wie es im Datenblatt beschrieben ist, initialisieren. Dann mal den link lesen (Englisch kannst du doch?), den ich gepostet habe. Mit diesen Hilfsmitteln habe ich es auch hingekriegt. Was genau ist dein Problem? Was genau kriegst du nicht hin? Willst du es tatsächlich lernen oder abschreiben? Ich schau mal, ob ich eine Datei fertig machen kann. VG larsen
So, habe jetzt was gefunden. In der Datei sind die Register gut erklärt, denke ich. Wenn du nicht klar kommst, melde dich nochmal. VG, larsen
>>Bei Michaels Link kommt auf einmal eine index.php datei zum >>runterladen an, wenn man auf den Link mit der Zip Datei klickt. Das ist ein bekannter Bug mit IE in der AVRfreaks Forum Software (immer noch nicht gefixt :-( ). Die index.php kannst Du aber einfach runterladen) und dann in die ZIP Datei umbenennen. In Firefox funktioniert der Download. /Michael
Suche auch nach einer Beispieldatei in Assembler, wie man mit dem AT90CAN128 dem CAN Bus sendet und empfängt. Komme mit den Registern nicht klar (habe schon viele Tage mit den Einstellungen der Register verbracht). Oder sollte man doch einen AVR mit dem CAN-Controller MCP2510 betreiben? Ist das vielleicht einfacher? Kann jemand einen Tipp geben?
einfach mal bei Atmel schauen! http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3440 ist für die 51er, die CAN register sind aber annähernd identisch. gruß
@Claudia (wenn das dein Name ist?): Habe für dich hier einen Auszug aus meinem Projekt mit dem CAN128 Ist zwar auch in C, nur beschreibe ich jedes Register von Hand - also ist das für dich ja kein Problem die Zeilen in ASM umzuwandeln: //init: // CAN aktivieren CANGCON = (1<<ENASTB); // Interrupt bei Empfang CANGIE = (1<<ENRX) + (1<<ENIT); // alle MOb's abschalten CANEN2 &= 0x00; CANIE2 &= 0x00; CANEN1 &= 0x00; CANIE1 &= 0x00; // Timing für 1Mbit/s & 16 MHz CANBT1 = 0x00; CANBT2 = 0x0C; CANBT3 = 0x37; Das senden Einer Nachricht erfordert dann nur noch das setzen der entsprechenden MoB Register - was im DB gut beschrieben ist. So nun will ich aber auch wissen für was das ganze gebraucht wird :-) Und als Beispiel für alle könntest Du ja dann den entstandenen ASM Code reinstellen.
Einfach mal bei Atmel anrufen, bzw. den Support nutzen und das Problem per Email zusenden. Das führt in der Regel innerhalb von 24 h zum Ergebnis ! Ansonsten gibts doch ebenfalls bei Atmel ein sende- und empfangsbeispiel, da muss man ja nur den code sinngemäß in´s eigene projekt "reindenken".
@Claudia: Wenn das Datum 11/2005 des Threads noch nicht out of order ist: Mag sein, daß du einen anderen µC verwendest, aber: Keil hat da 2 Demo-Files, CAN_all und Full_CAN, allerdings für die Philips LPC2000 µC-Serien und in C-Sourcecode: http://www.keil.com/download/docs/291.asp Habe auf deren Basis eine CAN-Bus-Anwendung realisiert, und das funktioniert ausgezeichnet. Der integrierte CAN-Controller im LPC2000 hat weitgehende Kompatibilität mit dem Philips SJA1000. Hilft das ein wenig weiter? Nun, mir war die CAN Bus Entwicklung anfangs auch nicht leicht gefallen, angesichts der vielen Steuerregister im Controller und was da vor sich geht, aber das kann man am Programmierbeispiel etwas nachvollziehen. Im Grunde liegen da schon einige Jahre Entwicklung voraus, die man nicht mitbekommen hat. Was willst du denn mit einer Hex-Datei? Das ist doch absoluter Nonsens. Gruß Dietmar
ich lese mich ja derzeit in MC - Programmierung ein und bin wohl de logik nach dahinter gestiegen das ich wennich MC progge dann aber mit assembler am ehesten was reissen kann hmmmm aber deswegen schreibe ich gerae nicht, ich bin lediglich erstaunt darüber daswohl geistreiche leute nix anderes im sinn führen als andere leute mit negativen postings zu provozieren, .,,,,,, weil da mal wer assembler falsch geshrieben hat hmmmmmm ich suche derweil auhc hilfe in foren wär auch dumm wenn nicht :) warum das ei 2 mal erfinden deswegen bin ich kein schlechter mensch und zu solchen zwecken sind solche foren ja auch gedacht , , , wollt ichda mal flux geschrieben habn und nu bin i mal gespannt wie viel rechtschreibfehler in diesen thread gefunen werden und wie sehr ich nach diesen bewertet werde
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.