📄 uart_tx.c
字号:
//:rc:8M
//ic atmegal 8l
#include <avr/io.h>
#include <avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char temrecv=0;
void delay(unsigned int x)
{
while(x)x--;
}
void uart0_init(void)
{
UCSRB=0X00;
UBRRL=0X33;
UCSRB=0X98;
}
void sendchar(unsigned char c)
{
UDR=c;
while(!(UCSRA&0X40));
UCSRA|=0X40;
}
void send(unsigned char const *str)
{ while(1)
{ if( *str == '\0' ) break;
sendchar(*str++); // 发送数据
}
}
SIGNAL(SIG_OVERFLOW1)
{
TCNT1=61712;
}
SIGNAL(USART_RXC_vect)
{
temrecv=UDR;
}
int main (void)
{
const unsigned char SEND_STRING[] = "welcome to avr\n";
DDRB=0xff;
PORTB=0Xff;//1111,1111
sei();
TCCR1A=0X00;
TCCR1B=(1<<CS10);
TIMSK|=(1<<TOIE1);
TCNT1=64536;
uart0_init();
send(SEND_STRING);
while(1)
{
if(temrecv==0x01)
{
PORTB=PORTB|0x01;//熄灭LED
send("01\n");
temrecv=0;
}
if(temrecv==0x02)
{
PORTB=PORTB&0xfe;//亮LED
send("02\n");
temrecv=0;
}
if(temrecv==0x03)
{
PORTB=PORTB|0x02;//熄灭LED
send("03\n");
temrecv=0;
}
if(temrecv==0x04)
{
PORTB=PORTB&0xfd;//亮LED
send("04\n");
temrecv=0;
}
}
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -