Hey, ich bin dabei ein Ladegerät zu bauen, das mit einem ATmega32 gesteuert werden soll. Die Elektronik steht, aber ich habe Probleme mit dem Programmieren des µC. ich will erstmal teil für teil in Betrieb nehmen, leider funktioniert das einfachste schon nicht, eine LED nach Tasterdruck zum leuchten zu bringen, vllt kann mir wer sagen was ich falsch gemacht habe, vielen Dank schonmal im Vorraus! hier der kurze Code, Im anhang die Hardware beschaltung des µC #include <avr\io.h> main() { // Ausgänge und Eingänge DDRB = 0x00; DDRD = 0x04; // PORTB = 0xff; //PORTD = 0x00; // nicht benötigt, da Ausgang do { if (!(PINB&0x01)) // abfrage ob Bit1 nicht High ist, //also nicht gedrückt ist { PORTD=0xff; // LED aus } else { PIND=0x00; // LED an } } while(1); }
Der Controller rennt einmal bis zum: while(1); und das war es dann....
Du musst entweder D1 umpolen oder R7 an Masse legen statt an +5V.
>Der Controller rennt einmal bis zum: >while(1); >und das war es dann.... Das ist schon so korrekt, da while gehört doch zu dem do Block!
also die LED bekomm ich zum leuchten, also bleibt die Diode und der Widerstand so wie sie sind! wenn ich oben beim do nen while(1) schreibe, also also dem do...while nen einfachen while mache, ist die LED bei der Inbetriebnahme an, und ich kann sie austasten, merkwürdigerweise, bleibt sie aus, habe doch gar keinen speicher... fragen über fragen...
1 | > PORTD=0xff; // LED aus |
Wenn die LED gegen Vcc geht, wird das stimmen. Aber was ist das?
1 | > PIND=0x00; // LED an |
Das macht keine LED an. Vergleich's mal mit der ersten Zitatzeile und es wird Dir wohl schnell klar.
Hi, hat das nen Sinn, dass du einmal
1 | PORTD = 0xFF; |
(richtig) und einmal
1 | PIND = 0x00 |
(falsch) benutzt? ;) Außerdem ist die Diode tatsächlich falsch rum (im Schaltplan). Angeschlossen hast du sie vermutlich richtig, wenn sie leuchtet oder da is was im Argen ;) Gruß Lasse
also erstmal vielen dank, betriebsblind... muss natürlich PORTD=0x00; heißen! und die sache mit der LED, is ja peinlich wenn ich sag das ich elektroniker bin, aber hab da so oft hin und her überlegt ob ich die über low oder high schalte, das is wohl durcheinander gegangen.. aber angeschlossen is sie wirklich richtigrum... danke für den hinweis damit is das erste problem gelöst, jetzt kann ich etwas weitermachen! Eine Frage mal noch, ich will dann ja noch PWM und ADC betreiben, was für Register ich wie beschalten muss, hat da jemand tipps wo ich das nachlesen kann, fürs Datenblatt bin ich zu blöd, is nich mein ding mit dem technischen Englisch!
spike schrieb: > hat da jemand tipps... Hallo Spike, ich hasse ja eigentlich selbst so kurze Antworten, aber die beiden Artikel hier: AVR-Tutorial: ADC und AVR-GCC-Tutorial (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#PWM_.28Pulsweitenmodulation.29) sind schon recht verständlich und in deutsch; programmierst Du in C oder Assembler?
:-) Also Du meinst AVR Studio mit WinAVR, oder? Das "nackte" AVR Studio macht ja nur ASM; mit WinAVR (also gcc) wäre das zweite Tutorial schon hilfreich. Schon mal drüber geschaut? ADC und PWM mache ich auch erst seit ein paar Wochen, aber vielleicht ist gerade das hilfreich, weil ich die "Anfängerfehler" dann noch frisch im Kopf habe, die ein "alter Hase" schon als so offensichtlich ansieht, dass er daran gar nicht denkt. Also wenn Du danach noch Fragen hast... :-)
ja, hab kurz drüber gesehen, sieht recht hilfreich aus! kann ich dich denn hier irgendwie persöhnlich anschreiben, habe bestimmt fragen, und freue mich über fachlich nachvollziehbare Hilfe! PS, habe das AVR studio genau so wie du es geschrieben hast, mit win avr!
spike schrieb: > kann ich dich denn hier irgendwie persöhnlich anschreiben Klar; einfach auf meinen Nick klicken und schreiben :-) Weiß jetzt nicht, ob das als Gast geht, aber früher oder später ist ein "fester Account" ohnehin hilfreich :-) Einfach mal anmelden; dann kann ich Dir sicher antworten
ok, alles klar, dann weiß ich jetzt bescheid, schönes wochenende dann noch, und du wirst von mir hören, um so länger es dauert um so besser... hoffe ich finde zeit mich immer wieder hinzusetzen und weiter zu testen
Danke, Dir auch. Und viel Spaß noch ;-)
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.