www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN mit AT90CAN128


Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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   ):

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: larsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier nochwas von AVRFreaks:

http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

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

Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Ferdi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Harrtmut Grölger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@ferdi

Assembler ist wenn man weiss was der MC macht,alles andere ist wenn man
glaubt was er macht.

MfG HG

Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Ferdi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was Assembler glaube ich zu wissen,
Claudia hat aber nach Assember gefragt...

Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ferdi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sprichst schon wieder von Assember!!!
Bitte nenne es Assembler und dann verstehen Dich auch alle...

Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo denn?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: larsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: larsen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>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

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ferdi:

#define Assember Assembler
...

Autor: Herbert Bernardini (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einfach mal bei Atmel schauen!

http://www.atmel.com/dyn/products/tools_card.asp?t...

ist für die 51er, die CAN register sind aber annähernd identisch.

gruß

Autor: Anton Wert (antonwert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: LC-HC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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".

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: einNoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.