📄 main.c
字号:
#include<avr/io.h>
#include <avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int
#define baud 9600
void put(uchar c);
uchar get(void);
void usart_init(void);
void putstring(uchar *s);
uchar temp;
int main(void)
{
cli();
usart_init();
sei();
//while(1)put(0xaa);
while(1)asm("nop");
return 0;
}
//***************************************
void usart_init()
{
UCSR0A=0X00;
UCSR0B=((1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0)|(1<<TXCIE0));
UCSR0C=(1<<UCSZ01)|(1<<UCSZ00);
UBRR0L=(F_CPU/16/baud-1)%256;
UBRR0H=(F_CPU/16/baud-1)/256;
UCSR1A=0X00;
UCSR1B=((1<<RXEN1)|(1<<TXEN1)|(1<<RXCIE1)|(1<<TXCIE1));
UCSR1C=(1<<UCSZ11)|(1<<UCSZ10);
UBRR1L=(F_CPU/16/baud-1)%256;
UBRR1H=(F_CPU/16/baud-1)/256;
}
//***************************************
void put(uchar c)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0=c;
}
//***************************************
void putstring(uchar *s)
{
while(*s)
{
put(*s);
s++;
}
put(0x0a);
put(0x0d);
}
//***************************************
uchar get(void)
{
while(!(UCSR0A&(1<<RXC0)));
return UDR0;
}
SIGNAL(SIG_UART0_RECV)
{
temp=UDR0;
//put(temp);
UDR1=temp;
temp=0;
}
SIGNAL(SIG_UART0_TRANS)
{
if(temp!=0)
{
UDR0=temp;
}
temp=0;
}
SIGNAL(SIG_UART1_RECV)
{
temp=UDR1;
put(temp);
temp=0;
}
SIGNAL(SIG_UART1_TRANS)
{
if(temp!=0)
{
UDR1=temp;
}
temp=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -