📄 usart.c
字号:
/*------------------------------------------------------
Function: part of Offline Downloader
Author: avenbbs(8785116@qq.com)
Version: 1.0
Date: 2008-9-28~2008-10-1
--------------------------------------------------------*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "usart.h"
#include "command.h"
extern volatile unsigned char xmodem_rcv;
ISR(SIG_USART_RECV)
{
// TODO: Add your code here
unsigned char tmp;
tmp=UDR0;
xmodem_rcv=tmp;
com_process(tmp);
}
unsigned char usart_rcv(void)
{
while (!(UCSR0A & (1<<RXC0)))
;
return UDR0;
}
void usart_tsmt(unsigned char data)
{
while (!(UCSR0A & (1<<UDRE0)))
;
UDR0 = data;
}
void usart_init(unsigned int baud)
{
UBRR0H = (unsigned char)(baud>>8);/* 设置波特率*/
UBRR0L = (unsigned char)baud;
UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);/* 接收器与发送器使能 */
UCSR0C = (3<<UCSZ00);/* 设置帧格式: 8 个数据位, 1个停止位 */
}
void sendstr(char *str)
{
while (*str)
usart_tsmt(*str++);
usart_tsmt(0x0D);
usart_tsmt(0x0A);
}
void pgm_sendstr(char *str)
{
while (pgm_read_byte(str))
usart_tsmt(pgm_read_byte(str++));
usart_tsmt(0x0D);
usart_tsmt(0x0A);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -