LED's Blinken anstatt zu leuchten

Gast #773509
Lesenswert?

Hallo,
Ich habe ein kleines Programm geschrieben das alle LED's auf meinem STK 
500 zum leuchten bringen soll. Leider leuchten die LED's nicht sondern 
sie blinken nur. Ich habe mir mal einen einzigen Pink an PORTC am 
Oszilloskop angesehn. Es sieht aus wie ein Rechtecksignal. Ich verwende 
einen ATmega162.

1
int main( void ) {
2
  DDRC = 0xFF;
3
  
4
  while ( 1 ) {
5
    PORTC = 0x00;
6
  }
7

8
  return 0;
9
}

Grüße Alex
Gast #773530
Lesenswert?

>Da vermute ich mal ganz stark, dass aus irgendeinem
>Grund der µC ständig resettet wird.

Könnte ne gesetzte WDT (Watchdog) Fuse sein.
Eventuell auch die BOREN (Brown-Out) Fuse wenn
die Versorgungsspannung zu klein ist.
Gast #773658
Lesenswert?

@Obelix
Falls mich nicht alles täuscht hat er da doch eine Endlosschleife. Aber 
ne andere Frage wie klug ist es einen Ausgang in einer Endlosschleife zu 
setzen. Das ist allerdings eine Frage da ich da selbst keine Antwort 
drauf weiß ^^
Ich würde aber trotzdem mal versuchen ob es besser geht wenn du die 
Sache so schreibst:
1
int main( void )
2
 {
3
  DDRC = 0xFF;
4
  PORTC = 0x00;
5
  while (1);
6
 }

Und noch eine Frage was passiert wenn der Controler das return = 0; 
erreicht? Startet er dann neu also quasi Reset oder macht er dann 
einfach garnix mehr?
#773737
Lesenswert?

Puppetmaster: Beim return 0 wird er main() verlassen, ist dann im 
startcode der libc welche dann in einer endlosschleife sich dreht.

Nachtrag:

Das ist aus dem Code der main() startet:
  86:   0e 94 49 00     call    0x92    ; 0x92 <main>
  8a:   0c 94 51 00     jmp     0xa2    ; 0xa2 <_exit>

Exit schaut so aus:

000000a2 <_exit>:
  a2:   ff cf           rjmp    .-2             ; 0xa2 <_exit>
Gast #773781
Lesenswert?

@holger
Ich weiß, dass er bei dem Beispiel da nie hinkommt. Aber mich 
interessiert nur mal so was er dann macht, wenn es in einem anderen 
Programm erreichbar ist. Also wie reagiert der µC auf ein return = 0; ^^ 
und wie wahrscheinlich ist es eigendlich das ein Compiler MÖGLICHERWEISE 
die Schleife da wegoptimiert da der Ausgang sich eh nie verändert ob mit 
oder ohne Schleife. Allerdings weiß ich das nicht es interessiert mich 
aber und man will ja nicht dumm sterben ^^

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