Other Parts Discussed in Thread: CC1352P, CC1312R7
器件型号: CC1312R
主题中讨论的其他器件: CC1352P、
尊敬的支持部门:
我正在尝试使用传感器控制器的 timer2 来处理多个事件:
a) 传感器轮询、默认为 8Hz、可扩展至 64Hz。
b) 振荡器 GPIO 64Hz。
初始化
// set enable pins as outputs
gpioCfgMode(AUXIO_O_RLED, GPIO_MODE_OUTPUT);
gpioCfgMode(AUXIO_O_GLED, GPIO_MODE_OUTPUT);
timer2SetClockSource(TIMER2_CLOCKSRC_HFDIV2);
timer2WaitForClockSource();
evhSetupTimer2Trigger(0, TIMER2_EV_ID0, 1, EVH_TIMER2_TRIG_ON_MATCH);
evhSetupTimer2Trigger(1, TIMER2_EV_ID1, 1, EVH_TIMER2_TRIG_ON_MATCH);
timer2SetInitCounterTarget(4096); // 32768/8
timer2SetInitCmpValue(0, 4096);
timer2SetInitCmpValue(1, 512); // 32768/64
timer2CfgCcChannel(0, TIMER2_CCMODE_PULSE_ON_CMP, (1 << TIMER2_EV_ID0));
timer2CfgCcChannel(1, TIMER2_CCMODE_PULSE_ON_CMP, (1 << TIMER2_EV_ID1));
//timer2ConnectEventToGpio(0, AUXIO_O_RLED);
//timer2ConnectEventToGpio(1, AUXIO_O_GLED);
timer2SetClockSource(TIMER2_CLOCKSRC_LF);
timer2WaitForClockSource();
timer2StartWithTarget(TIMER2_CNTRMODE_UP_REP);
事件处理程序 A
state.tickA += 1;
if (state.tickA == 64) {
state.tickA = 0;
}
timer2ClearEvent(TIMER2_EV_ID0);
//timer2SetNextCmpValue(0, 4096);
timer2GetCounter(state.countA);
gpioToggleOutput(AUXIO_O_RLED);
evhSetupTimer2Trigger(0, TIMER2_EV_ID0, 1, EVH_TIMER2_TRIG_ON_MATCH);
事件处理程序 B
state.tickB += 1;
if (state.tickB == 64) {
state.tickB = 0;
}
timer2ClearEvent(TIMER2_EV_ID1);
timer2GetCounter(state.countB);
gpioToggleOutput(AUXIO_O_GLED);
evhSetupTimer2Trigger(1, TIMER2_EV_ID1, 1, EVH_TIMER2_TRIG_ON_MATCH);
终端
timer2Stop();
timer2ResetCcChannel(0);
timer2ResetCcChannel(1);
timer2ClearEvent(TIMER2_EV_ID0);
timer2ClearEvent(TIMER2_EV_ID1);
timer2SetClockSource(TIMER2_CLOCKSRC_NONE);
timer2WaitForClockSource();
消息
If event trigger 0 enabled {
If event trigger 0 occurred {
Run Event Handler A Code (trigger 0)
}
}
If event trigger 1 enabled {
If event trigger 1 occurred {
Run Event Handler B Code (trigger 1)
}
}
COUNTA 和 countB 绘制相同的曲线、但它们之间的偏移是固定的。
tickA 和 tickB 相等。
我玩了周围 timer2SetNextCmpValue 但似乎不能达到以上.
在具有设置(固定间隔?)的 SCS 中是否有不同的运行示例? 与在器件上?
不确定 SCS 是否使用了实际的 timer2?
也许我错过了计时器计数器和比较值的基本概念?
非常感谢任何帮助!
信息和/或 timer2 示例似乎有限。


