首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

12312键盘中断

12312键盘中断

zigbee 13213SRB的开发板,看了硬件结构图板子上的SW1 - SW4 对应KBI引脚的2-5,但是在设置KBI1PE时,只有我设置它的值0x08时按SW2才进入中断函数,设置其他的值除0x40外时按reset都能进入中断函数,但是按SW1- SW4都不会进入中断函数.为什么会这样呢?知道的人帮帮我?谢谢了!!
珍惜一切!
你用的是什么程序? 你可以用beekit.对对应的SW进行设置,SW1-SW4分别为:0x04,0x08,0x10,0x20. Reset SW对应的是PTDD: 0x08.
我也碰到一个问题,一直进不了中断,大家能否帮我看看
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;

}
你可以用MAP文件看一下你的中断矢量地址对不对。
海纳百川  有容乃大
返回列表