Board logo

标题: 12312键盘中断 [打印本页]

作者: cherishsue    时间: 2007-6-5 16:08     标题: 12312键盘中断

zigbee 13213SRB的开发板,看了硬件结构图板子上的SW1 - SW4 对应KBI引脚的2-5,但是在设置KBI1PE时,只有我设置它的值0x08时按SW2才进入中断函数,设置其他的值除0x40外时按reset都能进入中断函数,但是按SW1- SW4都不会进入中断函数.为什么会这样呢?知道的人帮帮我?谢谢了!!
作者: jimmytan    时间: 2007-6-5 16:50

你用的是什么程序? 你可以用beekit.对对应的SW进行设置,SW1-SW4分别为:0x04,0x08,0x10,0x20. Reset SW对应的是PTDD: 0x08.
作者: knightccc    时间: 2007-6-5 18:48

我也碰到一个问题,一直进不了中断,大家能否帮我看看
void KBIInit(void) {

PB0IE = 1; /* Enable KBI PB0 */
PB1IE = 1;
PB2IE = 1;
PB3IE = 1;
PB0PU = TRUE;
PB1PU = TRUE;
PB2PU = TRUE;
PB3PU = TRUE;

}

我的中断程序
interrupt void KBIIsr(void) {

UINT8 u8keys;


u8keys = ~PTAD;

// Still in debounce time - just return
//if (gu16timerEvents[1] != 0) {
//KBI1SC_KBACK = 1;
//return;
//}

if ((u8keys & KBI_SW1) == KBI_SW1) {
LED1=LED_ON;
//gu16timerEvents[1] = gu16msTimer + KBI_DEBOUNCE;
//gu16Events |= KBI2_EVENT;
}

if ((u8keys & KBI_SW2) == KBI_SW2) {
LED2=LED_ON;
//gu16timerEvents[1] = gu16msTimer + KBI_DEBOUNCE;
//gu16Events |= KBI3_EVENT;
}

if ((u8keys & KBI_SW3) == KBI_SW3) {
LED3=LED_ON;
//gu16timerEvents[1] = gu16msTimer + KBI_DEBOUNCE;
//gu16Events |= KBI4_EVENT;
}

if ((u8keys & KBI_SW4) == KBI_SW4) {
//gu16timerEvents[1] = gu16msTimer + KBI_DEBOUNCE;
//gu16Events |= KBI5_EVENT;
}

KBI1SC_KBACK = 1;

}
作者: strongchen    时间: 2007-6-6 09:42

你可以用MAP文件看一下你的中断矢量地址对不对。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0