Gast
#2077859
Hallo zusammen, ich bin neu auf dem Gebiet der Mikrocontroller-Programmierung und hätte da eine Frage bezüglich der Auswertung eines seriellen Strings. Ich möchte gerne einen 116 langen String (9600 bps, 1 Stoppbit, keine Parität) auf ein bestimmtes Zeichen untersuchen. Wenn es 10mal detektiert wurde, soll eine LED aufblinken. Allerdings klappt gar nichts! Ich programmiere in C. Als Entwicklungsboard verwende ich das Arduino Mega (Atmega 2560). Es treten zwar keine Fehlermeldungen beim kompilieren auf, allerdings blinkt die LED nicht. Ich würde mich freuen, wenn mir jemand weiterhelfen könnte oder zumindest einen Tipp geben könnte. VG, Bernd #include <avr/io.h> #include <util/delay.h> #define FOSC 16000000 #define BAUD 9600 #define UBRR_VAL (FOSC/16/BAUD-1) void USART_INIT (unsigned int UBRR){ UBRR0H = (unsigned char)(UBRR>>8); UBRR0L = (unsigned char)(UBRR); UCSR0B =(1 << RXEN0) | (1 << TXEN0); UCSR0C =(1<< UCSZ01) | (1 << UCSZ00); } unsigned char GET_CHAR(void){ while (!(UCSR0A & (1<<RXC0))); return UDR0; } void main(void) { unsigned char c; int counter=0; DDRB=0xFF; while( 1 ) { c = GET_CHAR(); if(c==0x04) counter++; if(counter==10){ _delay_ms(300); PORTB=0xFF; _delay_ms(1500); PORTB=0x00; _delay_ms(300); counter=0; } }