工具/软件:
操作系统:FreeRTOS
SDK:mcu_plus_sdk_am243x_08_06_00_45
您好、
如果在创建任务之前启动计时器、则 DAC 模块的输出周期是稳定的、如图 1 所示。

为什么在任务创建后启动计时器时 DAC 模块的输出周期不稳定、如图 2 所示。

原因可能是什么?
此致
uint32_t gv_TaskStack[122880/sizeof (uint32_t)]__attribute__((aligned (32)));
SemaphoreP_Object gv_stObjectSem;
int main (void){
DAC_Init;// DAC 模块初始化
// TMR3_Start
TimerP_START (gTimerBaseAddr[CONFIG_TIMER3]);
TaskP_Params stTaskParams;
//为任务创建其信标
SemaphoreP_constructBinary (&gv_stObjectSem、0);
//创建任务
TaskP_Params_init (&stTaskParams);
stTaskParams.name =“Task1";“;
stTaskParams.STACKSIZE = 122880;
stTaskParams.stack =(uint8_t*) gv_TaskStack;
stTaskParams.priority = 26;
stTaskParams.taskMain =(TaskP_FxnMain) Task1;
TaskP_Construct (&gv_stTaskObj、&stTaskParams);
//如果在此处启动计时器、则 ADC 模块的输出周期将不稳定
// TimerP_START (gTimerBaseAddr[CONFIG_TIMER3]);
}
void ISR_TIMER3 (void){
Semaphore_post (&gv_stObjectSem);
}
// 收到中断时回调以调用
void TimerP_isr3 (void *args)
{
void ISR_TIMER3 (void * args);
ISR_TIMER3 (args);
TimerP_clearOverflowInt (gTimerBaseAddr[CONFIG_TIMER3]);
HwiP_clearInt (CONFIG_TIMER3_INT_NUM);
}
void Task1 (void *pvdArgs){
SemaphoreP_Pend (&gv_stObjectSemCNC、SystemP_WAIT_FOREVER);
DAC_Output (049152);// DAC 模块输出 5V 的电压
ClockP_USleep (200);
DAC_Output (032767);// DAC 模块输出 0V 的电压
}