请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C129EXL 工具/软件:TI-RTOS
我正在使用计时器模块。 我使用 XGCONF 来配置定时器。 ISR 函数用于每1秒切换 LED 的状态。 LED 往往会持续发光、而不是闪烁1秒钟。 我无法在代码中找到问题。
/* === empty_min.c ==== /* /* XDCtools 头文件*////---------------- // BIOS 头文件 //--------------- #include #include #include #include ///---------------------- // TivaWare 头文件 //--------------- #include #include #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "inc/hw_ints.h" #include "driverlib/interrupt.h" #include "driverlib/timer.h" /*头文件 #include /* TI-RTOS 头文件*/ #include /*板头文件*/ #include "Board.h" #define TASKSTACKSIZE 128 Task_Structure0Struct; Char task0Stack[TASKSTACKSIZE]; void Timer_ISR (void);
/* === 心跳 Fxn ==== *切换 Board_LED0。 Task_sleep 由 arg0确定、而 arg0 *是为心跳任务实例配置的。 // void 心跳 Fxn()//这是 ISR 函数 { GPIO_TOGGLE (Board_LED0); } /* ===== main ==== */ int main (void) { Task_Params taskParams; /*呼叫板初始化函数*/
Board_initGeneral(); Board_initGPIO(); /*构造心跳任务线程*/ Task_Params_init (&taskParams); taskParams.STACKSIZE = TASKSTACKSIZE; taskParams.stack =_task0Stack; Task_construct(&task0Struct,(Task_FuncPtr)心跳 BeatFxn、&taskParams、NULL); /*打开用户 LED */ GPIO_WRITE (Board_LED0、Board_LED_ON); /*启动 BIOS */ BIOS_start(); 返回(0); }