📄 uart.c
字号:
#include <iom128.h>
#include "global.h"
#include "command.h"
#include "rw910.h"
#define OSC 16000000
#define BAUD 19200
#pragma vector=USART0_RXC_vect
SIGNAL(USART0_RXC_vect)
{
unsigned char com;
com=UDR0;
uardata.uart[0] = com;
}
void uart0_init(void)
{
unsigned int baud;
baud = OSC/16/BAUD-1;
UBRR0H = (unsigned char)(baud>>8);
UBRR0L = (unsigned char)baud; //set baudrate
UCSR0B = (1<<7)|(1<<4)|(1<<3); //发送,接收使能,使用接收中断,
UCSR0C = (1<<1)|(1<<2); //0x06 8位数据,1位停止位,无校验
}
void uart0_putChar(unsigned char out)
{
UCSR0A |= (1<<6); //发送结束清零
UDR0 = out;
while( (UCSR0A&(1<<6))==0 ){;}
UCSR0A |= (1<<6); //发送结束清零
}
void uart0_putArray(unsigned char *p,unsigned char len)
{
unsigned char i;
for(i=0;i<len;i++)
{
uart0_putChar(*p);
p ++;
}
}
void uartfun(void)
{
unsigned char a[2] = {0};
switch(uardata.uart[0])
{
case 1:
select_cmd(0,0,1,0,0,a,0);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break;
case 2:
query_cmd(0,0,0,0,0,0,5);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break;
case 3:
queryAdjust_cmd(0,3);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break;
case 4:
queryRep_cmd(1);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break;
case 10:
configRw910ControlRigister(TXRX_MOD_REG,0x00);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break; //rf all on
case 11:
configRw910ControlRigister(TXRX_MOD_REG,0x01);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break; //rf tx on,rx off
case 12:
configRw910ControlRigister(TXRX_MOD_REG,0x02);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break; //rf tx off,rx on
case 13:
configRw910ControlRigister(TXRX_MOD_REG,0x03);
uart0_putChar( uardata.uart[0]);
uardata.uart[0]=0;
break; //rf all off
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -