Hallo,
ich hab mich am Wochenende mit dem UART ausenander gesetzt. Im moment ist der ATmega8 mit dem ATmega128A verbunden (UART1) und der ATmega128A vorerst über Kabel mit dem PC (HTERM) (UART0).
Das senden der Werte vom ATmega8 funktioniert einwandfrei.
Momentan hab ich mit dem UART0 des ATmega128A Sorgen. Vom PC zeichen empfangen funktioniert einwandfrei, aber sowie ich etwas an den PC sende, resetet mir das Programm und fängt von vorne an.
Ich hab mal nur putch0('A'); geschrieben. im HTERM taucht ein A auf, der 128A resetet und ein A kommt dazu und so weiter ....
Code:
if ((puffer1[0]=='T') && (puffer1[1]=='E') && (puffer1[2]=='M')) // wird senden von TEM vom ATmega8 erkannt im puffer1
{
PORTG ^= (1<<PG4);
_delay_us(2000);
puffer1[0] = '0';//T
puffer1[1] = '0';//E
puffer1[2] = '0';//M
adc0 =atoi(puffer1);
adc0=adc0-1000;
temperatur=(adc0 * 500.0 / 1023) -273.15; // adc in Temperatur umrechnen
dtostrf(temperatur,3,1,str);
I2C_SetDisplayCursor(3,6);
I2C_WriteDisplayString(str);
putstring0(" Temperatur = ");
putstring0(str);
putstring0(" Grad "); // resetet ATmega128A an dieser stelle !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
reset_puffer1();
}
So sieht momentan meine Temperaturabfarge aus. im HTERM erscheint dann "Temperatur = 21,2 Grad" , anschließend Resetet der 128A.
Wie gesagt, ohne Weiterleitung an den PC lauft alles gut.
Sehr seltsam das.
Lesezeichen