#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "delay.h"
#define F_CPU 8000000UL
#define UART_BAUD 19200ul //prędkość transmisji w bodach (tu 19200 bodów)
#define V_UART (F_CPU/(16ul*UART_BAUD)-1)
SIGNAL(SIG_UART_RECV)
{
char znak;
znak=UDR;
if (znak!=0x0D) //wysylam z PC ciag znakow i enter na koncu
{
zmienna[kt]=znak;
kt++;
}
else
{
ile=kt; //przetwarzanie skonczone,ile bajtow
kt=0;
}
}
int main(void) //program główny
{
ile=0;
kt=0;
UBRRH = V_UART >>8; //predkosc H
UBRRL = V_UART; //predkosc L
UCSRB|= _BV(RXCIE); //przerwanie RX
UCSRB|= _BV(RXEN); //wlaczenie RX
sei();
while(1){
if (kt==0 && zmienna[0]!=0x00) //odbior zakonczony
{
for(i=0;i<=ile;i++)
{
dana(zmienna[i]); //wyswietl na LCD
}
}
}
gdzie robie blad ?