请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C1294XL 我正在尝试使用2个计时器创建一个周期性信号、因为我需要的引脚未作为 CCP 进行连接。 一个计时器是周期性的400us 计时器、另一个计时器在递增10us 之前等待触发。 该引脚在400us 计时器中断上变为高电平、在另一个计时器的中断上10us 后变为低电平。
问题是、信号的高电平时间大部分时间为10us、但有时会变化~+/- 4us。 (根据示波器) 它并不总是保持在10us。 发生这种情况的原因可能是什么?
为了方便测试、我附加了该项目、并发布了以下代码片段:
TimerConfigure (TIMER4_base、TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PERIODICY_UP | TIMER_CFG_B_ONE_SHOT_UP); TimerLoadSet (TIMER4_base、TIMER_A、(Board_CLOCK / TIM5_FREQ)- 1); TimerIntDisable (TIMER4_BASE、TIMER_TIMEOUT、TIMER_TIMEOUT、TIMER_TIMEOUT、TIMEOUT TimerIntEnable (TIMER4_base、TIMER_TINA_TIMEOUT); TimerLoadSet (TIMER4_base、TIMER_B、TIM5B_10US); TimerIntDisable (TIMER4_base、TIMER_TIMB_TIMEOUT); TimerIntClear (TIMER4_base、TIMER_TIMB_TIMEOUT); TimerIntEnable (TIMER4_base、 Timer_TIMB_TIMEOUT); TimerControlWaitOnTrigger (TIMER4_base、TIMER_B、true); TimerEnable (TIMER4_base、 Timer_A); TimerEnable (TIMER4_BASE、TIMER_B); void Timer5A_HWI_Fxn (UARg arg) { HWREG (0x40061040)= 0x10;// K4 //清除中断 TimerIntar (TIMER4_BASE、TIMER_TIMER_TIMEOUT); }TIMER4_BASE (TIMER4_TIMER) / TIMER4_BASE (TIMER4) TimerInter 0x400B (TIMER_TIMER_TIMER);// TIMER4_BASE (TIMER4) TimerInter 0_TIMER (TIMER_TIMER = 0x400B (TIMER_TIMER