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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.