www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mega32 brauche Hilfe zur Programmierung, erstmal LED an und aus


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

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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Controller rennt einmal bis zum:

while(1);

und das war es dann....

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst entweder D1 umpolen oder R7 an Masse legen statt an +5V.

Autor: Matthias (Gast)
Datum:

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

Autor: spike (Gast)
Datum:

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

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>       PORTD=0xff;    // LED aus
Wenn die LED gegen Vcc geht, wird das stimmen.  Aber was ist das?
>  PIND=0x00;    // LED an

Das macht keine LED an.  Vergleich's mal mit der ersten Zitatzeile und 
es wird Dir wohl schnell klar.

Autor: Ernst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spike schrieb:
> PIND=0x00;    // LED an

sollte das nicht eher PORTD=0x00;  heissen?


Ernst

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hat das nen Sinn, dass du einmal
PORTD = 0xFF;
 (richtig)

und einmal
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

Autor: spike (Gast)
Datum:

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

Autor: Michael B. (planlessmichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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-Tu...) 
sind schon recht verständlich und in deutsch; programmierst Du in C oder 
Assembler?

Autor: spike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich programmiere in C, und hab mich jetzt auf AVR studio festgelegt!
danke dir

Autor: Michael B. (planlessmichi)
Datum:

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

Autor: spike (Gast)
Datum:

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

Autor: Michael B. (planlessmichi)
Datum:

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

Autor: spike (Gast)
Datum:

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

Autor: Michael B. (planlessmichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, Dir auch. Und viel Spaß noch ;-)

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.