ATMEGA128 ungewollter reset

Gast #449887
Lesenswert?

hallo

mein problem ist das atmega128 wahrscheinlich ungewollt resetet. das 
programm schaut folgendermassen aus


#include <avr/io.h>
#include <avr/signal.h>
#include <stdlib.h>
#include <util/delay.h>

void uart_init_0 (void) {
  UBRR0H = 0;
  UBRR0L = 25;
  UCSR0B=(1<<RXEN0)|(1<<TXEN0); /* enable send and recieve */
  UCSR0C=(1<<UCSZ01)|(1<<UCSZ00);
}

int main(void) {
  uart_init_0();
  UDR0=0x20;
  while(1) {
    /* Wait for empty transmit buffer */
    while ( !( UCSR0A & (1<<UDRE)) )
      ;
    /* Put data into buffer, sends the data */
    UDR0 = 0x74;

  }
   UDR0=0x21;
  return 0;

}

ueber sie serielle empfange ich folgende daten:
ttttttttttttttttttô ttttttttttttttttttttttttttttô 
tttttttttttttttttttttttttttô ttttttttttttttttttttttttttttô 
ttttttttttttttttttttttttttttô ttttttttttttttttttttttttttttô 
ttttttttttttttttttttttttttttô ttttttttttttttttttttttttttttô ...

und so weiter. eigentlich sollte ich ja nur "ttttt" empfangen da 
leerzeichen (0x20) nur vor der while schleife ausgegeben wird? hat von 
euch einer ne idee??? bin hier echt am verzweifeln.



#450098
Lesenswert?

danke erstmal fuer die schnellen antworten. bin leider kein profi 
deshalb weiss ich nicht ob ich alle loesungsvorschlaege richtig 
verstanden habe.

VM-Rauhl hast du mit letzter resetquelle das MCUCSR register gemeint. 
habe es zuerst mal komplett auf null gesetzt und dann nochmal starten 
lassen.

BIT 1 External Reset und BIT3 Watchdog Reset sind high.

External Reset kommt wahrscheinlich vom Programmieren oder ??
Aber watchdog duerfte nicht high sein oder ???

also hattest du johnny.m wahrscheinlich den richtigen riecher. aber 
wieso ist der an, da muss ich doch in der Firmware register setzen oder 
???

ist der vielleicht standartmässig eingeschaltet ???

auf jeden fall schonmal vielen dank bin jetzt schon ein gutes stueck 
schlauer

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