?? usart.h
字號:
static volatile unsigned char stmp;//暫存接收UDR信息.
static volatile unsigned char inbuffer[10];//串口接收器緩沖器.
static volatile int inbufcount=0;//緩沖器計數器.
/*------宏定義------*/
#define uchar unsigned char
#define uint unsigned int
#define BIT(x) (1<<(x))
#define NOP() asm("nop")
#define WDR() asm("wdr")
extern void twi_write_8(uchar adress,uchar com);
extern void twi_read_8(uchar adress);
extern void init_mma7455(void);
//串口通信初始化
void usart_init(void)
{
UCSRB = 0x00;//禁止中斷
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x0C;
UBRRH = 0x00;
UCSRB = 0x98;
}
//發出串口正常信號.
void ssig(char a[])
{
int c=strlen(a);
//在這繼續添加你的代碼
for(int count=0;count<c;count++)
{
_delay_us(300);
UDR=a[count];
}
_delay_us(300);
}
//串行接收結束中斷服務程序
ISR(USART_RXC_vect)
{
cli();//關中斷.
stmp=UDR;//保護接收UDR數據.
if((stmp!='x')&&(stmp!='y')&&(stmp!='z')&&(stmp!='r'))//裝緩沖區,以換行符為結束字節.
{
inbuffer[inbufcount++]=stmp;
return;
}
else //結束條件滿足,執行操作.
{
if(stmp=='x')
{
twi_write_8(0x10,inbuffer[inbufcount-1]);
}
else if(stmp=='y')
{
twi_write_8(0x12,inbuffer[inbufcount-1]);
}
else if(stmp=='z')
{
twi_write_8(0x14,inbuffer[inbufcount-1]);
}
else if(stmp=='r')
{
init_mma7455();
}
}
inbufcount=0;//放在這來起來延時的作用.一舉兩得.
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -