?? key._c
字號:
//帶中斷的4×4鍵盤
//IDD-AVR application builCer : 2007-6-2 15:38:00
// Target : M16
// Crystal: 1.0000Mhz
#include <iom16v.h>
#include <macros.h>
#include "config.h"
#include "nrf905.h"
typedef unsigned char uint8; //可移植的8位無符號變量
typedef unsigned int uint16; //可移植的16位無符號變量
void delay_us(uint8 n)
{
uint8 i;
for(i=n;i>0;i--)
;
}
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
uint8 key_buf,i;
GICR=0x00; //關(guān)閉中斷使能
//GIFR=0x40; //清除中斷標(biāo)識位
DDRC=0xf0; //行列反轉(zhuǎn)讀取鍵盤的值
PORTC=0x0f;
if((~PINC)&0x01)
key_buf=0;
else if((~PINC)&0x02)
key_buf=1;
else if((~PINC)&0x04)
key_buf=2;
else if((~PINC)&0x08)
key_buf=3;
DDRC=0x0f;
PORTC=0xf0;
delay_us(30);
if((~PINC)&0x10)
key_buf+=0;
else if((~PINC)&0x20)
key_buf+=4;
else if((~PINC)&0x40)
key_buf+=8;
else if((~PINC)&0x80)
key_buf+=12;
else
key_buf=16;
if(key_buf!=16)
{
key=key_buf;
RfSendProc();
key_buf=16;
while((~PINC)&0xf0) ;//檢測按鍵是否釋放,若沒有釋放就一直循環(huán)
}
DDRC=0xf0;
PORTC=0x0f;
GICR=0x40; //中斷復(fù)位
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -