سلام
این کد گیرنده
کد:
#include <mega128.h>#include <alcd.h>
#include <delay.h>
//#include <stdio.h>
#define F_CPU 11059200UL
#define BaudRate(x) (F_CPU/16ul/(x)-1)
void putchar10(char c)
{
while ((UCSR0A & (1<<UDRE0))==0);
UDR0=c;
}
void putchar11(char c)
{
while ((UCSR1A & (1<<UDRE1))==0);
UDR1=c;
}
void puts10(char*s)
{
while(*s)putchar10(*s++);
}
void puts11(char*s)
{
while(*s)putchar11(*s++);
}
char getchar10(void)
{
while ((UCSR0A & (1<<RXC0))==0);
return UDR0;
}
char getchar11(void)
{
while ((UCSR1A & (1<<RXC1))==0);
return UDR1;
}
char a;
unsigned char buff[16];
void main(void)
{
lcd_init(16);
lcd_puts("hello");
delay_ms(300);
DDRA=0x00;
DDRC=0xFF;
UCSR0A=0x00;
UCSR0B=(1<<TXEN0)|(1<<RXEN0);
UCSR0C=(1<<UCSZ01)|(1<<RXB80);
UBRR0H=BaudRate(9600UL) / 256;
UBRR0L=BaudRate(9600UL) & 0xff;
UCSR1A=0x00;
UCSR1B=(1<<RXEN1)|(1<<TXEN1);
UCSR1C=(1<<UCSZ11)|(1<<RXB81);
UBRR1H=BaudRate(9600UL) / 256;
UBRR1L=BaudRate(9600UL) & 0xff;
//puts0 ("Mahdi\r");
//puts1 ("UART Sample\r");
//puts0 ("Mega128 UART0 Test");
//puts1 ("Mega128 UART1 Test");
while(1)
{
a=getchar10();
//sprintf(buff, "%d",a);
PORTC=a;
lcd_clear();
lcd_putchar(a);
delay_ms(300);
//putchar0(2);
//PORTC = getchar1();
}
}
و این هم کد فرستنده
کد:
#include <mega128.h>#include <delay.h>
#define F_CPU 11059200UL
#define BaudRate(x) (F_CPU/16ul/(x)-1)
void putchar0(char c)
{
while ((UCSR0A & (1<<UDRE0))==0);
UDR0=c;
}
void putchar1(char c)
{
while ((UCSR1A & (1<<UDRE1))==0);
UDR1=c;
}
void puts0(char*s)
{
while(*s)putchar0(*s++);
}
void puts1(char*s)
{
while(*s)putchar1(*s++);
}
char getchar0(void)
{
while ((UCSR0A & (1<<RXC0))==0);
return UDR0;
}
char getchar1(void)
{
while ((UCSR1A & (1<<RXC1))==0);
return UDR1;
}
void main(void)
{
char a;
DDRA=DDRC=0xFF;
UCSR0A=0x00;
UCSR0B=(1<<TXEN0)|(1<<RXEN0);
UCSR0C=(1<<UCSZ01)|(1<<RXB80);
UBRR0H=BaudRate(9600UL) / 256;
UBRR0L=BaudRate(9600UL) & 0xff;
UCSR1A=0x00;
UCSR1B=(1<<RXEN1)|(1<<TXEN1);
UCSR1C=(1<<UCSZ11)|(1<<RXB81);
UBRR1H=BaudRate(9600UL) / 256;
UBRR1L=BaudRate(9600UL) & 0xff;
//puts0 ("Mahdi\r");
//puts1 ("UART Sample\r");
//puts0 ("Mega128 UART0 Test");
//puts1 ("Mega128 UART1 Test");
while(1)
{
a++;
putchar0(a);
delay_ms(300);
//PORTA = getchar0();
//PORTC = getchar1();
}
}
یک کاراکتر را ارسال میکنه و روی پورت میریزه ولی نمیتونم بایت دریافتی را روی LCD نشون بدم
میشه ببینین مشکل کجاست؟؟؟