Achso,
Das habe ich überlesen
Also WinAVR ist eine Portierung von gcc-avr nach Windows, deswegen dieses Win, es wird also ohne Probleme bei Dir klappen.
Noch was zu der Funktion
loop_until_bit_is_set(UCSRA, UDRE);
Sie befindet sich in sfr_defs.h und macht nichts, bis das Bit mit dem Namen
vom 2. Parameter (Hier UDRE) im BYTE vom 1.Parameter (hier Register UCSRA) nicht gesetzt ist.
Man könnte das in diesem Fall auch so schreiben:
while (!(UCSRA & (1<<UDRE)));
Ich weiß, die schreibweise ist ja nicht gerade einfach, deswegen vielleicht
C allgemein was üben.
! -> nicht
& - UND Verknüpfung
<< Bits nach links schieben
das ist alles C allgemein.
Ich hoffe, daß es alles so stimmt
Ich habe es mir mal runtergeladen....Aber woher hast du Atmega32.pdf
Schaue mal hier im Forum im Downloadbereich nach, oder füttere google damit
Ich kann Dich gut verstehen, daß es nicht einfach ist vom Bascom zu C zu wechseln, aber ein Vorteil hast Du dadurch, Du arbeitest ziemlich Hardware nah, und lernst die µC richtig kennen.
Gruß Sebastian
Datenblätter findet man übrigens meistens auf der Seite des Chipherstellers: http://www.atmel.com/dyn/products/pr...p?part_id=2014
Krank ist's eigentlich nicht. Es kommt immer darauf an, welche Dinge schon in der Programmiersprache, im Compiler oder in Deinen eigenen Librarys implementiert sind. Wenn Du in C einmal eine Funktion geschrieben hast, die einen String auf die UART ausgibt, packst Du sie in eine Library und brauchst sie beim nächsten Mal nur noch einbinden und aufrufen. Und Sebastian hat Recht - so lernt man den µP recht gut kennen.
askazo
Ich dachte schon das System der OOP zu lernen war schwierig, aber das setzt nochmal eins oben drauf. Allein aus dem Datenblatt rauszufinden was man wie setzen muss, damit das und das passiert ist ja die Hölle.
mfg
jagdfalke
PS: Mir fehlt immernoch ein brauchbares Programm um mir anzuschaun was da vom Controller über RS232 ankommt. (Linux) Kennt jemand eins?
Ja Logo,
ich persönlich benutze minicom,
mag ich am liebsten, aber ich merke es schon, Du bist kein Konsolen Freak,
was hast du? KDE ? Gnome ?
Solltest Du Gnome haben oder die gtk libs, sowieso drauf, nimm gtkterm, ist auch gut, für KDE kenn ich keinen Terminal, gibt es sicher auch.
Gruß Sebastian
Ich hab mir jetzt auch mal minicom installiert. Muss ich dann bei Serial Device /dev/ttyS0 angeben? Baudrate hab ich auf 9600 gestellt, wie in dem Code.
du musst bei Serial Device die serielle Schnittstelle angeben, die du auchverwendestMuss ich dann bei Serial Device /dev/ttyS0 angeben?
wenn du die erste verwendest, stimmt dein /dev/ttyS0, für die zweite wäre es dann /dev/ttyS1 usw.
Ok, das hab ich getan: Baud auf 9600, serial port auf /dev/ttyS0. Kabel sollte richtig verbunden sein, da es das selbe ist, das ich unter Window schon erfolgreich benutzt haben. minicom hab ich einfach per "minicom" gestartet. Dann kam "initializing modem", dann wird aber nicht angezeigt, was vom seriellen Port kommt. Also entweder hab ich was mit minicom falsch gemacht oder der Code funktioniert nicht.
Kann jemand helfen?
Wenn minicom ähnlich funktioniert wie HyperTerminal unter Windows (Also Zeichen von der Tastatur gesendet und empfangene Daten im Terminal angezeigt werden) kannst Du zumindest die minicom-Funktion ganz leicht testen. Verbinde am SUB-D 9 Stecker Pin 2 und 3 miteinander (mit einem Jumper oder einem Stück Draht). Wenn Du nun Zeichen über die Tastatur eingibst, sollten sie auf dem Terminal angezeigt werden.
askazo
Also minicom funktioniert einwandfrei. Ich hab in die 2 Stecker, die am Ende des Kabels an die Platine angeschlossen werden mit einem Draht überbrückt. Ich hab alle Zeichen wiederbekommen solange die Brücke da war.
Dh. es muss an dem Programm liegen oder der Platine selber...
Lesezeichen