📄 abs.h
字号:
#define Red_LedON PORTA&=(~(1<<PA5))
#define Red_LedOFF PORTA|=(1<<PA5)
#define Green_LedON PORTA&=(~(1<<PA4))
#define Green_LedOFF PORTA|=(1<<PA4)
#define Red_D1glint {if((PINA&(1<<PINA5))!=(1<<PINA5)){PORTA|=(1<<PA5);}else{PORTA&=(~(1<<PA5));}}
#define Green_D1glint {if((PINA&(1<<PINA4))!=(1<<PINA4)){PORTA|=(1<<PA4);}else{PORTA&=(~(1<<PA4));}}
void WDT_ON(void)
{
WDR(); //this prevents a timout on enabling
WDTCR|=(1<<WDTOE)|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);//WDTCR = 0x1F; //特别注意这一条不是ICC生成的,是后来加上的。
WDTCR&=(~(1<<WDTOE))|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);//WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
}
void WDT_OFF(void) ///关看门狗
{
WDR();
WDTCR|=(1<<WDTOE)|(1<<WDE);
WDTCR=0x00;
}
void delay_1ms(void)//1ms延时函数
{
unsigned int i;
for (i=0;i<150;i++)
WDR();
}
void delay_nms(unsigned int n)//延时n毫秒
{
unsigned int i;
for (i=0;i<n;i++)//执行n次1毫秒延时
{
delay_1ms();
}
WDR();
}
void LED_Wait_ISP(void)
{
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
Green_LedON; delay_nms(200); Green_LedOFF; delay_nms(200);
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
Green_LedON; delay_nms(200); Green_LedOFF; delay_nms(200);
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
Green_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
}
void LED_Texting_ISP(void)
{
Green_LedON;//delay_nms(100); Green_LedOFF;
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
Red_LedON; delay_nms(200); Red_LedOFF; delay_nms(200);
}
#define F_CPU 3686400
void USART_InitM1681( unsigned int baud )
{
unsigned int tmp;
//设置波特率
tmp= F_CPU/baud/16-1;
UBRRH = (unsigned char)(tmp>>8);
UBRRL = (unsigned char)tmp;
//接收器与发送器使能//
UCSRB = (1<<RXEN)|(1<<TXEN);
//接收器与发送器使能及接收中断使能
//UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
//接收器与发送器使能及收发中断使能
// UCSRB = (1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN);
// 设置帧格式: 8 个数据位, 1 个停止位//
UCSRC = (1<<URSEL)|(3<<UCSZ0);
}
void USART_Transmit8( unsigned char data )
{
/*检空发送标志*/
while ( !( UCSRA & (1<<UDRE)) );
/*发送数据*/
UDR = data;
while ( !( UCSRA & (1<<UDRE)) );
}
void USART_Transmit_2( void )
{
while ( !( UCSRA & (1<<UDRE)) );
UDR = 'H';
while ( !( UCSRA & (1<<UDRE)) );
UDR = 'e';
while ( !( UCSRA & (1<<UDRE)) );
UDR = 'l';
while ( !( UCSRA & (1<<UDRE)) );
UDR = 'l';
while ( !( UCSRA & (1<<UDRE)) );
UDR = 'o';
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -