Ports werden einfach zurückgesetzt

OP #574521
Lesenswert?

Hallo,

ich habe schon nach meinem Problem "gegooglt" und auch hier die 
Forensuche benutzt, konnte aber nichts darüber finden.
Ich bin an einem Punkt an dem ich nicht mehr weiß ob der ATtiny2313 
vielleicht Blödsinn baut, oder die Hardware nicht stimmt und will über 
den Weg mal nachfragen ob noch jemand Probleme damit hat das der ATtiny 
einfach so, ohne explizieten Befehl Ports zurück setzt.
Mein Programm ist prinziepiell folgendermaßen aufgebaut:

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
    // Reinitialize Timer 0 value
    TCNT0=0x82;
    // Place your code here
    counter_3ms++;
    counter_5ms++;
    counter_7ms++;
    counter_50ms++;
........
}
main
{
.......
init(); //initialisierung aller variablen
PORTD |= HW_OUT_Selbsthaltung;    // Selbsthaltung Spannungsregler
while(1)
{
if (bit_3ms == 1)
    {
        bit_3ms = 0;
        task_blabla_01();
        task_blabla_02();
    }
......
}
}

ICh will am PortD ein Signal auswerten und wenn dieses zweimal getoggelt 
hat einen anderen Port setzen. Das passiert auch so wie ich mir das 
vorstelle, nur dieser Port wird nach ca. 1-2 sec. wieder zurück gesetzt! 
Obwohl die Bedingung zum zurücksetzen nicht erfüllt ist, ich das "low" 
setzen dieses Ausgangs ganz auskommentiert habe, und die Bedingung für 
das SETZEN dieses Ports dauerhaft erfüllt ist!
Mein erster Gedanke war das die init() wieder aufgerufen wird. Ich habe 
die 5V Betriebsspannung des ATtiny gemessen konnte aber nur ganz geringe 
Schwankungen (peaks < 50mykrosec. auf ca. 4V sehen; sehr sporadisch).
Die Hardware hat sich prinziepiell aber auch schonmal früher in anderen 
Projekten bewährt.
Der Watchdog ist auch auskommentiert.

Hat jemand eine Idee woran das liegen könnte? Hat jemand schonmal 
ähnliche Probleme gehabt?
Vielleicht habe ich ja was ganz Grundlegendes übersehen?

Ich bin für jeden Denkanstoss dankbar.

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