MT2009
18.06.2010, 20:39
Hallo,
ich hatte schon vor einigen Tagen hier gepostet, doch muss ich das Posting erstmal zur Seite legen. Zunächst einmal habe ich folgendes Problem.
Ich möchte mit der Library von Peter Fleury einen String auf eine ATMega128 schicken und einmal als Echo zurückbekommen. Abgeschlossen werden soll der String mit '#'. Doch irgendwie funktioniert das alles nicht so, wie ich möchte. Könnte mir bitte jemand helfen.
Danke und Gruß,
Matze
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "uart.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[10];
unsigned int Count;
unsigned int c;
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 != '#' )
{
if (Count < 10 && (! (c & UART_NO_DATA) ) )
{
Eingabe[Count++] = (char) c;
c = uart_getc();
}
}
Eingabe[Count] = '\0'; //Sequenz von Zeichen in einen String
}
uart_puts( "\nEmpfangen: \"" );
uart_puts( Eingabe );
uart_puts( "\"" );
} //for(;;)-Ende
} //main-Ende
ich hatte schon vor einigen Tagen hier gepostet, doch muss ich das Posting erstmal zur Seite legen. Zunächst einmal habe ich folgendes Problem.
Ich möchte mit der Library von Peter Fleury einen String auf eine ATMega128 schicken und einmal als Echo zurückbekommen. Abgeschlossen werden soll der String mit '#'. Doch irgendwie funktioniert das alles nicht so, wie ich möchte. Könnte mir bitte jemand helfen.
Danke und Gruß,
Matze
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "uart.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[10];
unsigned int Count;
unsigned int c;
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 != '#' )
{
if (Count < 10 && (! (c & UART_NO_DATA) ) )
{
Eingabe[Count++] = (char) c;
c = uart_getc();
}
}
Eingabe[Count] = '\0'; //Sequenz von Zeichen in einen String
}
uart_puts( "\nEmpfangen: \"" );
uart_puts( Eingabe );
uart_puts( "\"" );
} //for(;;)-Ende
} //main-Ende