Forum: Mikrocontroller und Digitale Elektronik Atmega8L - alles flackert


von Sebastian G. (huehnerhose)


Lesenswert?

Hallo!

Ich glaube gerade ein Brett vor dem Kopf zu haben.
EIgentlich wollte ich ein LCD-Display ansteuern und habe mich da strickt 
an das AVR-GCC-Tutorial gehalten. Nachdem ich nach mehreren (gefühlt 
tausenden) Versuchen immer noch nichts angezeigt bekam habe ich 
angefangen zu zweifeln und wollte erstmal gucken ob das mit dem 
Programmieren alles klappt und wollte einfach nur ne LED an machen.

Jetzt habe ich das sowohl in ASM (da ich da "mehr" Erfahrung habe) als 
auch in C gemacht. Bei beidem aber das gleiche Phänomen: Die LED 
flackert. Also sie geht an/aus/an/aus etc etc.

Irgendwie fühlt sich das an, als würde der Atmega ständig "rebooten". 
Ich weiß leider auch nicht mehr ob ich genau den Baustein mal für ein 
Projekt mit Bootloader (das ich nur nachgebaut und so gar nicht 
verstanden habe (Fnordlicht)) missbraucht habe und das eventuell 
irgendwas damit zu tun haben könnte? Habe das ganze Konzept Bootloader 
noch nicht so ganz verstanden...

Ich programiere den AVR über AVR Studio mit dem AVR-ISP-USB Projekt von 
Christian Ullrich. Die Fuses habe ich auch schon auf 
"auslieferungsstandard" gestellt. Und ich habe auch "Erase Flash" und 
"Erase Device" in dem AVRStudio Dialog benutzt - löscht das auch 
eventuelle Bootloader im AVR?

Ich hänge mal den C/ASM Code ran... aber der sollte eigentlich richtig 
sein:
1
#include <avr/io.h>
2
3
int main (void) {
4
5
  DDRC = 0xff;
6
  PORTC = 0x00;
7
8
  while(1){
9
  }
10
11
}
1
.include "m8def.inc"         
2
ldi r16, 0xFF
3
out DDRC, r16
4
ldi r16, 0x00
5
out PORTC, r16
6
7
loop:    rjmp loop


Bin dankbar für jeden Tipp,
Gruß Sebastian

von David (Gast)


Lesenswert?

äb bei den wenigen zeilen C-Code erhälst du ein blinken?
dann wär es als erstes sinnvoll die fuse zu checken, z.b. wdt aktiv? und 
als nächstes die hardware anzuschauen...

von Sebastian G. (huehnerhose)


Lesenswert?

Wie schon gesagt: Ich hab die Fuses auf die Standardwerte zurückgesetzt.
H 0x99
L 0xE4
WTDON ist an, nur die Taktrate habe ich auf 8MHz intern gestellt.
Die Beschaltung ist auf Minimum reduziert. Also ISP-Anschluss lt. 
AVR-Tutorial und eine LED an PC0.
Ich hab das schon 2mal neu aufgebaut und x-mal gecheckt. Ich glaub 
wirklich da ist kein Fehler drin... Hab den ISP auch schon abgemacht um 
irgendwelche FEhler auf "nach hinten" auszuschließen.
Ich habe leider keinen Atmega mehr da um irgendeinen Fehler am Atmega 
auszuschließen... Ich habs eben nochmal auf einem anderen Port (B) 
getestet und da ist das gleiche... wie gesagt, ich denke der "rebootet" 
ständig...

von Oliver (Gast)


Lesenswert?

>WTDON ist an,

Und warum? Wenn der Watchdog läuft, resetted regelmäßig, und du hast ein 
Problem.

>Wie schon gesagt: Ich hab die Fuses auf die Standardwerte zurückgesetzt.
>H 0x99
>L 0xE4

Nach meinem Datenblatt ist der default-Zustand für die High-Fuse 0xD9, 
der Unterschied zu 0x99 ist WDTON.

Oliver

von Sebastian G. (huehnerhose)


Lesenswert?

Schei**, vielen Dank... an den Kopf schlag.... da war das Brett... 
vielen Dank euch beiden!

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
Noch kein Account? Hier anmelden.