Hallo µC-Spezialisten, ich möchte mir langsam das Programmieren von µC beibringen. Folgendes Zubehör habe ich: - Pollin Evaluationsboard V2.0 - AVR Studio 4 - WinAVR - Pony Prog Nun hab ich gestern begonnen das AVR GCC Tutorial dieser Website durchzuarbeiten. Meine Vorgehensweise war folgende: Ich hab das kleine Einführungsbeispiel in AVR Studio 4 (New Project, AVR GCC, usw.) eingetippt, kompiliert und mit Hilfe dieser Software eine .hex Datei erstellt. Diese hab ich dann mit Pony Prog geöffnet und über die Serielle Schnittstelle an das Board geschickt. Laut Pony Prog hat alles funktioniert. Auf dem Controller war davor auch ein Mini-Programm (Taster 1 ==> LED1), welches nun nicht mehr läuft. Folglich hat der Controller irgendetwas gefressen. Jedoch sind die im Tutorial beschriebenen Werte nicht zu messen (PB0 und PB1 auf high, der Rest von PB auf Low) Kann mir jemand bzgl. meinem Problem weiterhelfen? Super wären kleine C-Codes die zu diesem Board passen, die Funktionieren und auf die ich nach und nach aufbauen kann. Vielen Dank im Voraus für Eure Hilfe Tom
Folgendes Mini-Programm: #include <avr/io.h> int main(void) { DDRB = 0xff; PORTB = 0x03; while(1) { ; } return 0; } Das Programm hängt ja eigentlich nur in der Schleife und setzt PB0 und PB1. Leider wie gesagt nicht messbar. Die angesprochenen Fuse-Bits hab ich natürlich nicht beachtet. Kannst Du mir da weiterhelfen?
Lese mit ponyprog mal deine Fusebits aus und mache ein screenprint und Poste das Bild dann.
Wie gesagt: ich bin jedem dankbar, der sich in den Chat einbringt und mir weiterhelfen kann.
Hey, Tom! Leider nutze ich AVRStudio nicht, aber wenn ich mir das ansehe, würde ich sagen, es hängt genau da. Denn das Programm sieht gut aus. An den Fuses kannst du noch folgendes ändern: HAKEN bei CKSEL0 und CKSEL1, damit ist der ext. Quarz als Quelle gewählt, im Moment läuft er mit internem RC. Das hat allerdings nichts mit Deinem Problem zu tun. Um zu sehen, ob Pony artig war, kannst du ja einfach nach dem Flashen den Chip auslesen. Eine Äbweichung würdest Du dann sehen. Ich denke aber wie gesagt, dass bei den Einstellungen vom Studio irgendwas schiefgelaufen ist. Mach das ganze doch mal mit WinAVR, dann hast Du die Fehlerquelle eingegrenzt. Groeten, Jeroen
Henk wrote: > Hey, Tom! > > Leider nutze ich AVRStudio nicht, aber wenn ich mir das ansehe, würde > ich sagen, es hängt genau da. So ein Quatsch. Das Programm ist in keinster Weise zeitkritisch. > Denn das Programm sieht gut aus. Das stimmt allerdings > An den > Fuses kannst du noch folgendes ändern: HAKEN bei CKSEL0 und CKSEL1, NICHT! Im PonyProg ist externer Quarz: KEIN Haken bei CKSEL0 bis CKSEL3
Überlege dir gut was du mit den Haken bei den Fuses anrichtest. Jetzt ist auf Quarz gestellt nicht auf internen RC-Oszillator. Siehe auch hier: http://palmavr.sourceforge.net/cgi-bin/fc.cgi Ein Haken ist nämlich 0 und kein Haken ist 1, das ist verwirrend und daher mit Vorsicht zu geniessen. Hubert
>NICHT! >Im PonyProg ist externer Quarz: KEIN Haken bei CKSEL0 bis CKSEL3 Da hat er recht, der gute Mann. Ooops : )
Hallo @Tom hast du in AVR Studio den Richtigen Kontroller eingestellt sonst bringt dir das [#include <avr/io.h>] absolut nichts. bezüglich dem Pollin bord kenn ich mich leider nicht aus Aber stell nicht den Externen Quarz ein sollange du dich nicht auskennst. Wenn dann irrgendwas an der HW nicht passt kannst du den uC ganichtmehr progen, zumindest nicht mit deinen Mitteln. ach ja und probier einfach mal einen aderen PORT aus mfg Flo
Das Datenblatt zum Pollin Atmel Evaluations-Board Version 2.0 gibt es hier: http://www.pollin.de/shop/downloads/D810038B.PDF Grundsätzlich kann man beim Atmega16 PB0 und PB1 so schalten, wie du es in deinem Programm probierst. Diese Portpins sind General-IO fähig. Bist du sicher, dass du beim Nachmessen (an J4 vom Board ?) die richtigen Pins (9 oder 10 gegen z.B. 39 (GND)) abgreifst?
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | DDRD = 0xff; |
6 | PORTD = 0b01100000; |
7 | |
8 | while(1) |
9 | {
|
10 | ;
|
11 | }
|
12 | |
13 | return 0; |
14 | }
|
Versuch es mal damit. Leuchten die LEDs?
Vielen vielen Dank für die Resonanz!! zu Euer aller Information: Es funktioniert immer noch nichts! @Flo die Häkchen müssten eigentlich passen. Und ich gehe ernsthaft davon aus, dass die HW absolut i. O. ist. Es wurde ja schon mal damit gearbeitet. Nur nicht von mir. Und ja, im AVR-Studio ist der atmega16 eingestellt, jedoch keine Frequency. @Stefan B. ...ja, ich hab richtig gemessen. @Maxim Ich hab auch diesen Quellcode getestet. Funktioniert auch nicht.
Kommando zurück!! Es funktioniert. Ich hab nur eine kleine Einstellung ignoriert. Danke einstweilen für Eure Unterstüztung. Wenn noch jemand die Muse hat, mir noch mehr zu helfen: Ich bin auf der Suche nach Idiotensicheren Quellcodes (gut kommentiert) die ganz Primitiv diverse I/O´s ansprechen und vor allem: Auf die ich aufbauen kann und durch Veräderung einfach Erfahrung sammeln kann. Wäre cool. Gruß Tom
Tom wrote: > Kommando zurück!! > > Es funktioniert. Ich hab nur eine kleine Einstellung ignoriert. Darf man nachfragen, welche Einstellung fehlerhaft war und das Problem verursacht hat? Es könnte Jemandem helfen, der sonst morgen mit dem gleichen Problem kommt. > Ich bin auf der Suche nach Idiotensicheren Quellcodes (gut kommentiert) > die ganz Primitiv diverse I/O´s ansprechen und vor allem: Auf die ich > aufbauen kann und durch Veräderung einfach Erfahrung sammeln kann. Die findest Du im Datenblatt des AVRs. Zu jedem AVR-Feature ist ein kommentierter Beispielcode in ASM und C vorhanden. Dort hast Du auch noch den Vorteil, dass die Features (Timer, Interrupts, ADC, usw.) des AVRs sehr genau erklärt werden. Und wenn das nicht reicht, findest Du bei Atmel auf der HP noch jede Menge AVR-Appnotes, die den Umgang mit dem AVR anhand kleiner Code-Beispiele in ASM oder C erklären. Das GCC-Tutorial dieser Webseite hier soll auch ganz gut sein. In der Codesammlung (ein Forum hier) findest Du jede Menge gut erklärte und diskutierte Codebeispiele in ASM und C. > > Wäre cool. Du musst also niemanden darum bitten, es ist alles schon da, Du brauchst Dich nur noch zu bedienen. Also herunterladen, lesen, verstehen, anwenden. > > Gruß > > Tom MFG, Blaubär
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.