如何在 sys/bios 用TSK实现对ADC的定周期read,之前用TSK timeout及timer定周期读都有问题,用timer定周期读程序跑飞,而用TSK timeout的方式,TSK总是出现堆栈溢出的问题。
希望高手能帮忙解决一下
提示的错误信息:
adc read函数及ADC配置函数:
/*ADC READ函数*/
void wvdAdcRead()
{
uint32_t aubADC_ReadData[ADC_READ];
ADCProcessorTrigger(ADC1_BASE, 2);
ADCSequenceDataGet(ADC1_BASE, 2, aubADC_ReadData);
}
/*TSK_ADC*/
void TSK_ADC(INT stacd)
{
OS_StdMail_ts *astStdMail_p;
OS_ErrCode_t aubOsRet;
OS_StdMail_ts msg;
astStdMail_p=&msg;
wuwAdcControlWaitTime = OS_TOUT_FOREVER;
wuwTempChkTime = 0;
while(1)
{
aubOsRet = OS_ReceiveMail(MBX_ID_ADC, wuwAdcControlWaitTime, astStdMail_p);
if (aubOsRet == OS_ERR_OK)
{ /* Message reception result OK */
if (astStdMail_p->uhEventCode == EV_ADC_CTRL_LOAD)
{
wuwAdcControlWaitTime = ADC_MSG_WAIT_TIME;
wvdAdcCtrlInfoNotice(TSK_ID_POWER, PM_CALLBACK_LOAD);
}
else if(astStdMail_p->uhEventCode == EV_ADC_CTRL_UNLOAD)
{
wuwAdcControlWaitTime = OS_TOUT_FOREVER;
wvdAdcCtrlInfoNotice(TSK_ID_POWER, PM_CALLBACK_UNLOAD);
}
else
{
;
}
}
else/* Message reception time-out */
{
wuwAdcControlWaitTime = ADC_MSG_WAIT_TIME;
wvdAdcRead();
}
}
}
/*ADC Configure*/