Atmega8, PORT-Pins blinken nur noch

Gast #1345652
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.
Gast #1345677
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.
Gast #1345705
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.
Gast #1345736
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren