mấy bác bàn về avr dữ quá. em cũng mới tập tò làm mấy cái nhỏ nhỏ chơi. Số là em muốn dùng con tiny để giao tiếp với máy tính qua rs232. mục đích của em là truyền 1 char xuống tiny. nếu char đúng thì chớp đèn. nhưng kết quả nhận đc là ...đèn chẳng có chớp ji cả.
đây là code :
#include <tiny2313.h>
#include <delay.h>
#define URSEL 7
#define LED 6
#define LED_OFF() PORTD &= ~(1<<LED)
#define LED_ON() PORTD |= (1<<LED)
unsigned char data=5; // bien toan cuc
void rsInt()
{
UCSRA=0x00;
UCSRC=(1<<URSEL)|(1<<UCSZ0) | (1<<UCSZ1);
UCSRB=(1<<RXEN);
UBRRL=51; // toc do baud = 9600
}
unsigned char Rx() // ham nhan
{
while(!(UCSRA & (1<<RXC)));
return UDR; // dc luu trong UDR
}
void main()
{
unsigned int i;
rsInt();
while(Rx()==data)
{
for(i=0;i<=5;i++)
{
LED_ON();
delay_ms(200);
LED_OFF();
delay_ms(200);
}
}
}
mong các cao thủ giúp đỡ!
thax nhiều!
đây là code :
#include <tiny2313.h>
#include <delay.h>
#define URSEL 7
#define LED 6
#define LED_OFF() PORTD &= ~(1<<LED)
#define LED_ON() PORTD |= (1<<LED)
unsigned char data=5; // bien toan cuc
void rsInt()
{
UCSRA=0x00;
UCSRC=(1<<URSEL)|(1<<UCSZ0) | (1<<UCSZ1);
UCSRB=(1<<RXEN);
UBRRL=51; // toc do baud = 9600
}
unsigned char Rx() // ham nhan
{
while(!(UCSRA & (1<<RXC)));
return UDR; // dc luu trong UDR
}
void main()
{
unsigned int i;
rsInt();
while(Rx()==data)
{
for(i=0;i<=5;i++)
{
LED_ON();
delay_ms(200);
LED_OFF();
delay_ms(200);
}
}
}
mong các cao thủ giúp đỡ!
thax nhiều!
Comment