سلام دوستان
من دو تا میکرو atmega16 رو می خوام بهم وصل کنم از طریق Rx Tx ، همه چیز به ظاهر درسته ولی 10 تا کاراکتر اول رو می فرسته، در صورتی که من می خوام از 10 تا بیشتر تا 40 تا رو بفرسته
کارم برای اینه که می خوام 40 کاراکتر که از میکرو دوم رو میاد با دستور for استفاده کنم ولی سر اولش گیر کردم.
برنامه فرستنده:
برنامه گیرنده:
در میکرو گیرنده اگر حتی []a از نوع کاراکتر هم تعریف کنم و lcd-puts(a) هم قرار بدم باز هم همون 10 کاراکتر میاد.
ممنون میشم کمک کنید.[/img]
من دو تا میکرو atmega16 رو می خوام بهم وصل کنم از طریق Rx Tx ، همه چیز به ظاهر درسته ولی 10 تا کاراکتر اول رو می فرسته، در صورتی که من می خوام از 10 تا بیشتر تا 40 تا رو بفرسته
کارم برای اینه که می خوام 40 کاراکتر که از میکرو دوم رو میاد با دستور for استفاده کنم ولی سر اولش گیر کردم.
برنامه فرستنده:
کد:
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define xtal 8000000
void main(void)
{
UCSRA=0x00;
UCSRB=0x08; // USART Transmitter: On
UCSRC=0x86; //8 Data, 1 Stop, No Parity
UBRRH=0x00;
UBRRL=0x33; // USART Baud rate: 9600
delay_ms(1000);
printf("Hello World !!!");
while (1);
}
کد:
#include <mega16.h>
#include <stdio.h>
#include <lcd.h>
#define xtal 8000000
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
void main(void)
{
UCSRA=0x00;
UCSRB=0x10; // USART Receiver: On
UCSRC=0x86; //8 Data, 1 Stop, No Parity
UBRRH=0x00;
UBRRL=0x33; // USART Baud rate: 9600
lcd_init(16);
lcd_clear();
while(1);
}
ممنون میشم کمک کنید.[/img]





دیدگاه