Forum: Mikrocontroller und Digitale Elektronik Atmega8, PORT-Pins blinken nur noch


von Gast (Gast)


Lesenswert?

Guten Tag zusammen
Bei mir ist heute beim programmieren eines Atmega8 wohl etwas schief 
gelaufen. Und zwar tritt nun folgender Effekt auf:

Wenn ich einen PORT auf HIGH schalten möchte blinkt dieser nur noch und 
bleibt nicht Konstant auf High Potential. Das blinken bewegt sich im 
Sichtbaren Bereich. Würde jetzt die Frequenz auf vl. 10-15HZ schätzen.

Der Atmega hat zuvor wunderbar funktioniert. Nur nachdem ich einmal eine 
geänderte Version eines LCD Programmes reingschrieben habe trat dieser 
Fehler auf, denn ich nun nicht beheben kann.

Meine Frage ist nun ob jmd. vl. schonmal solch ein problem hatte und es 
beheben konnte? Ich denke ja eher nicht und gehe davon aus das der uC 
sich verabschiedet hat. Nur was hat sich verabschiedet das so etwas 
passieren kann?

P.S. Er lässt sich noch ohne weiteres programmieren und reagiert auf 
externe Interrupts. Aber die Ports bleiben, wenn sie als Ausgang 
betrieben werden, nicht stabil.

von avr (Gast)


Lesenswert?

Hast du beim Programmieren evtl. den WatchDog eingeschaltet?

Schau mal die Fuses an. Man denkt man braucht ihn nicht und
hat in dann in der Hardware.

avr

von Gast (Gast)


Lesenswert?

Keine Panik. Wahrscheinlich liegt es nur an Deinem Programm. Was 
passiert denn wenn Du ein Testprogramm aufspielst?

Zum Beispiel:

----------------------------
Alle DDR auf "Ausgang"

Loop:
    Alle Ports auf 0x00
    Warteschleife (0.5 s)
    Alle Ports auf 0xFF
    Warteschleife (0.5 s)

    rjmp Loop
----------------------------

Dann müssen alle LEDs an allen Pins mit 1 Hz Takt blinken. Tun sie das?

>Würde jetzt die Frequenz auf vl. 10-15HZ schätzen.

Vielleicht resettet sich der µC permanent gleich nach dem Start wieder? 
(Alles schon erlebt!) Die Frequenz würde dazu passen.

>Nur nachdem ich einmal eine
>geänderte Version eines LCD Programmes reingschrieben habe trat dieser
>Fehler auf, denn ich nun nicht beheben kann.

Ja - und was passiert, wenn Du die letzte funktionierende Version 
aufspielst?

>Ich denke ja eher nicht und gehe davon aus das der uC
>sich verabschiedet hat.

Ich tippe darauf, dass Dein µC hardwaremäßig völlig in Ordnung ist. Und 
ja, check mal die Fuses, das ist ein guter Tipp.

von Gast (Gast)


Lesenswert?

Vielen Dank. Ihr habt das Problem gefunden :) Irgendwie hat sich beim 
programmieren das Fuse Bit für denn Watchdog gesetzt und dieser ist 
somit ständig losgegangen. Daran habe ich gar net gedacht.

Noch eine kleine Frage anbei: Um solche Probleme zu verhindern wäre es 
wahrscheinlich ganz angebracht einen Bootloader zu schreiben der die 
Fusebits in gewisse Standardwerte schreibt. Muss man beim schreiben des 
Bootloaders auf etwas bestimmtes achten? Auser das man nicht gerade die 
Fuse Bits falsch setzt.

von Gast (Gast)


Lesenswert?

Ich schreib an den Anfang jedes Programms - auch schon während der 
Entwicklung und gerade dann - immer eine kleine Delayroutine, die so ca. 
ne halbe Sekunde verzögert und danach eine LED (irgendeine ist ja immer 
da^^) kurz einschaltet. Bei jedem Start des Programms muss also diese 
LED aufblinken. Wenn sie das nicht tut, weiß ich, dass massiv was faul 
ist.

von Wechselbalg (Gast)


Lesenswert?

Man kann die Fusebits zwar per Programm lesen aber nicht schreiben. Oder 
habe ich da eine Wissenslücke? Habe gerade nochmal beim 48/88/168 
geguckt.

von spess53 (Gast)


Lesenswert?

Hi

>Oder habe ich da eine Wissenslücke?

Nein.

MfG 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.