应用场景:
CC2541 使用 P00 与P01 外接 触摸芯片,把 P00、P01配置成外部的IO中断 (下降沿触发)。
Interrupt group 5 的中断优先级,已配置成最高的优先级。如下:
IP0 |= BV(5);
IP1 |= BV(5); //Interrupt group 5, 最高优先级
问题:
在极短的时间内,短按触摸 IC (使用示波器观察,已发出下降沿的信号)。但 CC2541 并没有接收到中断的标志。
如果较长时间内,短按触摸 IC, CC2541 才有中断的标志。
请问 CC2541 边沿触发的中断条件是:需要多长的持续时间? 电平?
能否提高 IO 的速度?或者配置中断的响应时间?
谢谢~!
Kevin Qiu1:
你说的较长时间大概是多长时间,关于中断看下手册7.4节:www.ti.com.cn/…/swru191f.pdf
CC2541 不能配置IO的速度
dasfe dfasf:
回复 Kevin Qiu1:
中午好,较长的时间大概是 50ms ~ 150ms。
Kevin Qiu1:
回复 dasfe dfasf:
时间是是有点长,估计是外部触摸IC的原因,先单独测下中断的响应
外部中断的一个完整例子#include <ioCC2540.h>#define RLED P1_0#define led2 P1_1#define uchar unsigned char#define uint unsigned int/*****************************************//函数声明*****************************************/void Delay(uint n);/*****************************************//io及LED初始化*****************************************/void Init_IO_AND_LED(void){P1DIR = 0X03; //0为输入(默认),1为输入RLED = 1;led2 = 1;P0INP &= ~0X0c;//有上拉、下拉P1INP &= ~0X40; //选择上拉P0IEN |= 0X30;//P04 P05PICTL |= 0X02;//下降沿EA = 1;IEN1 |= 0X20;// P0IE = 1;P0IFG |= 0x00;//P12 P13};/*****************************************//主函数*****************************************/void main(void){Init_IO_AND_LED();while(1){};}/*****************************************//延时*****************************************/void Delay(uint n){uint ii;for(ii=0;ii<n;ii++);for(ii=0;ii<n;ii++);for(ii=0;ii<n;ii++);for(ii=0;ii<n;ii++);for(ii=0;ii<n;ii++);}#pragma vector = P1INT_VECTOR__interrupt void P1_ISR(void){if(P0IFG>0)//按键中断{P0IFG = 0;RLED = !RLED;}P0IF = 0;//清中断标志}