工具/软件:TI C/C++编译器
大家好!
只需在此处输入有关我的问题的信息即可。
我在输入捕获模式下初始化计时器1通道3 (P0_7),如下所示:
PERCFG |= BV(6);//TIMER 1备用2配置
P2DIR =(P2DIR和~0xC0)| 0x80);//为计时器1指定优先级
P0SEL || BV (7);//将端口0引脚7设置为外围设备
P0DIR || BV (6);//将P0_6设置为输出并与P0_7输入中断同步...
T1CCTL3 |= BV(6);//在计时器1通道3处启用中断
T1CCTL3 |= BV(1)| BV(0);//在所有边缘捕获。
P0IEN |= BV (7);//在P0_7处启用中断。我不确定这是否是冗余声明。
T1IE = 1;//在计时器1处启用中断
然后在"hal_key.c",我为端口0编辑了ISR函数,如下所示:
HAL_ISR_FUNCTION (halKeyPort0Isr,t1_vector)
{
HAL_ENTER_ISR();
IF (P0IFG || BV (7))
{
如果(P0_6 == 1){P0_6 = 0;}否则{P0_6 = 1;}//测试代码...切换引脚输出,应与P0_7外部信号同步...
}
P0IFG = 0;//重置标记
HAL_KEY_CPU_PORT_0_IF = 0;//重置P0IF
clean_sleep_mode();
HAL_EXIT_ISR();
返回;
}
我使用示波器检查P0_7的外部输入中产生的PWM,然后与P0_6输出脉冲进行比较。
我假设P0_6应该与P0_7同步,但在这两个信号之间存在不必要的稳定高/低信号。
这不适合我的应用,因为我要通过使用中断获得外部输入的周期和占空比(T1CC3L:T1CC3H),或者不需要? 是否只需定期直接阅读登记簿?
请在此提供一些关于我的情况的见解。
我使用"simpleBLEperipheral"样本作为基础项目。
谢谢。