Oh, ja, danke. Habe es geändert. Jetzt klappt es.
Durch eine Erweiterung nun ein weiteres Problem.
Wenn über die Schnitstelle (hTerm) eine 10 bzw. 35 gesendet wird, soll der µC etwas machen, was aber bisher nicht klappt. Ich glaube, dass das an den Konvertierungen char<->integer liegen könnte, doch komme ich selber nicht weiter und brauche nochmal eure Unterstützung. Danke
Code:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
/* define CPU frequency in Mhz here if not defined in Makefile */
#ifndef F_CPU
#define F_CPU 14745600UL
#endif
#define UART_BAUD_RATE 9600
int main()
{
char Eingabe[100];
unsigned int Count;
unsigned int c;
unsigned int Word;
uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
sei();
for(;;)//ever
{
c = uart_getc();
if ( !(c & UART_NO_DATA )) //es gibt Daten
{
Count = 0;
while ( (char) c != '\r' ) //Bis RETURN
{
if (Count < 100 && (! (c & UART_NO_DATA) ) )
{
Eingabe[Count++] = (char) c;
}
c = uart_getc();
}
Eingabe[Count] = '\0'; //Sequenz von Zeichen in einen String
uart_puts( " Empfangen: \"" );
uart_puts( Eingabe );
uart_puts( "\"" );
Word = (int) Eingabe;
if (Word == 10)
{
tue etwas
}
else if (Word == 35)
{
tue etwas anderes
}
}
} //for(;;)-Ende
} //main-Ende
Lesezeichen