Forum: Mikrocontroller und Digitale Elektronik sleepmode beim ATMEGA8


von tomZ (Gast)


Angehängte Dateien:

Lesenswert?

hallo an die Gemeinde,
ich habe eine Frage zum Sleepmode am atmega8:
habe ein Testprogramm geschrieben, um neuen all-avr programmer und 
Zielhardware zu testen, dabei soll eine LED im Sekundentakt blinken;
das funktioniert auch einwandfrei, aber nach dem Anschalten leuchtet die 
LED ca. 70 sec bis sie beginnt zu blinken; im AVR-Studio ist dieses 
Verhalten nicht nachvollziebar; was also macht der Controller in dieser 
Zeit?
Quelltext ist im Anhang

von Spess53 (Gast)


Lesenswert?

Hi

Auf jeden Fall stimmt die Reihenfolge mit der du TCNT beschreibst nicht. 
Beim Laden eines 16-Bit-Registers erst H-Teil dann L-Teil. Beim Lesen 
ist es umgedreht.

MfG Spess

von tomZ (Gast)


Lesenswert?

zunächst vielen Dank an Spess, das ist tatsächlich der Grund für die 
Verzögerung; (war wohl zu warm gestern)
ich verstehe aber 2 dinge nicht:
1. es wurde ja auch beim Neusetzen verkehrtherum beschrieben, da 
funktioniert es dann aber
2.wird der Fehler vom AVR-Studio ignoriert, oder war das Zufall

von spess53 (Gast)


Lesenswert?

Hi

>1. es wurde ja auch beim Neusetzen verkehrtherum beschrieben, da
>funktioniert es dann aber

Beim Beschreiben des H-Teils landet der Wert in einem Zwischenregister. 
Nach einem Reset ist das mit $00 initialisiert. Dadurch passiert 
folgendendes:

Reset                    /Zwischenregister = $00
  ....
  ldi  r16,LOW(65535-500)
  out  TCNT1L,r16         -> TCNT1H=$00 TCNT1L=$0B
  ldi  r16,HIGH(65535-500)
  out  TCNT1H,r16         -> Zwischenregister = $FE
  ....

Interrupt
  ...
  ldi  r16,LOW(65535-500)
  out  TCNT1L,r16         -> TCNT1H=$FE TCNT1L=$0B
  ldi  r16,HIGH(65535-500)
  out  TCNT1H,r16         -> Zwischenregister = $FE
  ....

>2.wird der Fehler vom AVR-Studio ignoriert, oder war das Zufall

Ich tippe mal darauf, das du das 4er Studio benutzt. Das hat zwei 
Simulatoren. Der AVR Simulator ignoriert die Reihenfolge. Beim Simulator 
2 geht es korrekt.

MfG Spess

von tomZ (Gast)


Lesenswert?

Danke für die Antwort Spess

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.