سلام
من این برنامه رو توی winavr نوشتم ولی اطلاعات رو با خطای زیادی به کامپیوتر می فرسته یعنی چند بایت درست می فرسته بعد یه سری اطلاعات نادرست بیشتر بعد دوباره اطلاعات درست و ...
به نظرتون مشکل از کجاست؟
من این برنامه رو توی winavr نوشتم ولی اطلاعات رو با خطای زیادی به کامپیوتر می فرسته یعنی چند بایت درست می فرسته بعد یه سری اطلاعات نادرست بیشتر بعد دوباره اطلاعات درست و ...
به نظرتون مشکل از کجاست؟
#ifndef F_CPU
//define cpu clock speed if not defined
#define F_CPU 11059200
#endif
#define BAUD 115200
#include <avr/io.h>
#include <util/delay.h>
#include <util/setbaud.h>
void USART_Init()
{
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
#if USE_2X
UCSRA |= (1 << U2X);
#else
UCSRA &= ~(1 << U2X);
#endif
UCSRC =(1<<URSEL)|(0<<USBS)|(1<<UCSZ1) |(1<<UCSZ0);
UCSRB=(1<<RXEN)|(1<<TXEN);
}
void write(uint8_t Temp)
{
while(!(UCSRA&(1<<UDRE)));
UDR=Temp;
}
int main(void)
{
register uint8_t i;
i=0;
USART_Init();
while(1)
{
for(register int h=0;h<6;h++){
write(65+h);
//for(int f=0;f<=10;i++);
}
write(13);
write(10);
}
return 0;
}
//define cpu clock speed if not defined
#define F_CPU 11059200
#endif
#define BAUD 115200
#include <avr/io.h>
#include <util/delay.h>
#include <util/setbaud.h>
void USART_Init()
{
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
#if USE_2X
UCSRA |= (1 << U2X);
#else
UCSRA &= ~(1 << U2X);
#endif
UCSRC =(1<<URSEL)|(0<<USBS)|(1<<UCSZ1) |(1<<UCSZ0);
UCSRB=(1<<RXEN)|(1<<TXEN);
}
void write(uint8_t Temp)
{
while(!(UCSRA&(1<<UDRE)));
UDR=Temp;
}
int main(void)
{
register uint8_t i;
i=0;
USART_Init();
while(1)
{
for(register int h=0;h<6;h++){
write(65+h);
//for(int f=0;f<=10;i++);
}
write(13);
write(10);
}
return 0;
}
دیدگاه