📄 avrisr.c
字号:
// AVRisr.c
/* AVR ISR */
#include "includes.h"
/*************************************************************************************************************/
void IsrEint0(void)
{
}
/*************************************************************************************************************/
void IsrEint1(void)
{
}
/*************************************************************************************************************/
SIGNAL(SIG_OUTPUT_COMPARE2)
//void OSIntTimer2(void)
{
static unsigned char keycode=0;
static unsigned char keypre=0;
static unsigned char keynow=0;
static unsigned char status=0;
keynow=PINC&0b11111000;
if(keynow!=keypre)
{
//有键按下
keypre=keynow;//保存本次按键端口值
status=0x11;
}
else
{
if(status==0x11)
{
status=0x22;
}
else
if(status==0x22)
{
status=0x33;
}
else
if(status==0x33)
{
status=0x00;
if((keypre & 0b00001000)==0)
{
if(keycode==STATUS_LOOP){keycode=STATUS_LOOP1;}
else
if(keycode==STATUS_LOOP1){keycode=STATUS_LOOP2;}
else
if(keycode==STATUS_LOOP2){keycode=STATUS_LOOP3;}
else
if(keycode==STATUS_LOOP3){keycode=STATUS_LOOP4;}
else
if(keycode==STATUS_LOOP4){keycode=STATUS_LOOP5;}
else
if(keycode==STATUS_LOOP5){keycode=STATUS_LOOP6;}
else
if(keycode==STATUS_LOOP6){keycode=STATUS_LOOP7;}
else
if(keycode==STATUS_LOOP7){keycode=STATUS_LOOP8;}
else
if(keycode==STATUS_LOOP8){keycode=STATUS_LOOP9;}
else
if(keycode==STATUS_LOOP9){keycode=STATUS_LOOP;}
else
{keycode=STATUS_LOOP;}
//send message
MailBoxMsg[0]=keycode;
MailBoxMsg[1]=status;
MailBoxMsg[2]=PINC;
OSMboxPost(MailBox,(void *)MailBoxMsg);
}
}
else
{
status=0x00;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -