Als Neuling in der AVR-Programmierung bin ich auf einige Stolpersteine gestoßen. Um sie anderen zu ersparen habe ich mich entschlossen, diesen Beitrag zu schreiben. Mein Anfängerset besteht aus: 1 x ATmega16 1 x AVR-P40-USB 1 x AVR-In-System-Programmer alles von shop.mikrocontroller.net Das Board ist sehr praktisch da man keine weitere Stomversorgung als den USB-Bus benötigt. Der ist ja sowiso in der Nähe, wenn man über den In-System-Programmer programmiert. Da ich kein Assembler-Fan bin habe ich mit WinAVR angefangen mich in C zu versuchen. Und mein erstes Projekt sollte sein die LED auf dem AVR-P40-USB zum leuchten zu bringen - später ist blinken geplant :) Dabei traten folgende Probleme auf: 1) Das Programm ließ sich nicht auf den mega16 übertragen 2) Das Programm tat nicht was es sollte zu 1: Ich habe es nur mit PonyProg2000 geschafft das Programm unter WindowsXP auf den AVR zu übertragen (Version 2.05a Beta). Einstellungen: Parallel, AVR ISP I/O, LPT1, keine weiteren Optionen. Das erstelle .hex-File in den Flasch laden. Der Programmer muß übrigens an den ICSP-Stecker links neben der USB-Buchse. zu 2: Als Ergebnis meiner LED-Anstrengungen ergab sich folgendes Programm: #include <stdint.h> #include <avr/io.h> int main(void) { DDRB = 0xFF; // gesamten Port B auf ausgabe PORTB = 0x00; // LED einschalten auf P40-Board (Bit 0) } Dazu ein paar Anmerkungen: Die LED ist (wie im Datenblatt zum Board beschrieben, s.u.) an Port B, Bit 0 angeschlossen. ABER: Um die LED auf dem Board zum leuchten zu bringen muß das Bit auf 0 gesetzt werden. NICHT auf 1! Das kann auf verschiedene Arten passieren: - radikal wie oben gezeigt mit "PORTB = 0x00;" womit alle Bits von Port B auf 0 gesetzt werden. - eleganter mit "PORTB &= ~(1 << PB0);" womit nur Bit 0 gesetzt wird. siehe auch: http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial#Allgemeiner_Zugriff_auf_Register http://www.mikrocontroller.net/wiki/Bitmanipulation Hier noch der Link zum Datenblatt des AVR-P40-USB-Boards: http://www.olimex.com/dev/pdf/avr-p40-usb.pdf Ich hoffe diese zwei Tips helfen anderen Anfängern die ersten Klippen zu umschiffen. Es ist schon frustrierend, wenn die ersten Versuche zu gar keinem Ergebnis führen und man nicht sicher ist, ob alle Komponenten überhaupt funktionieren. Ich habe auch sonst keine weiteren Tips zu dem Board gefunden. Also, viel Spaß mit dem AVR. Alle denen meine Tips zu trivial waren bitte ich schon mal vorneweg um entschuldigung :) p.s.: als nächstes ist der Button an PB4 dran.
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.