我在 TM4C 上有一个有趣的计时器问题、我一直在尝试解决这个问题。
TIMER_CFG_A_ACT_TOGGLE 的工作方式与预期完全相同、但 TIMER_CFG_A_ACT_SETCLTO 不执行任何操作。 输出保持低电平。 在尝试 TIMER_CFG_A_ACT_SETTOGTO 和 TIMER_CFG_A_ACT_CLRTOGTO 后、超时操作似乎正常、但立即设置和清除不起作用。
#include #include #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/sysctl.h" #include "driverlib/timer.h" #include "inc/hw_memmap.h" int main (void) { SysCtlClockFreqSet (SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480、120000000); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM); SysCtlPeripheralEnable (SYSCTL_Periph_TIMER5); while (!SysCtlPeripheralReady (SYSCTL_Periph_TIMER5)); while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOM)); GPIOPinTypeTimer (GPIO_PORTM_BASE、GPIO_PIN_6); GPIOPinConfigure (GPIO_PM6_T5CCP0); while (1) { TimerConfigure (TIMER5_base、TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_ONE_SHOT | TIMER_CFG_A_ACT_setto); TimerLoadSet (TIMER5_base、TIMER_A、2400); TimerEnable (TIMER5_base、TIMER_A); SysCtlDelay (400000); } 返回0; }