WCH沁恒单片机
直播中

张伟

7年用户 1622经验值
私信 关注
[问答]

在CH573F开发板上运行CentPeri例程,插入任务LED闪灯失败是为什么?

在CH573F开发板上运行CentPeri例程,插入任务LED闪灯任务失败,照着教程做的,就是有警告,且任务失败,没有运行起来闪LED。
任务函数:
u16 Led_Shan_task_process_event( u8 task_id , u16 events )
{


    if(events & LED_TASK_TMOS_EVENT1)  //event 处理
    {
      GPIOA_InverseBits(GPIO_Pin_4);


      GPIOB_InverseBits(GPIO_Pin_4);


      tmos_start_task(Led_Task_ID,LED_TASK_TMOS_EVENT1,1600); //重启=任务,1秒循环


      PRINT("Led_Task_ID test22222222222222222222222222 rn");


      return (events ^ LED_TASK_TMOS_EVENT1); //异或的方式清除该事件运行标志,并返回未运行的事件标志


    }


    return 0; //未知事件则丢弃
}


任务初始化:
void Led_Shan_Task_Init( void )
{


  Led_Task_ID  = TMOS_ProcessEventRegister(  Led_Shan_task_process_event  );


  tmos_start_task(Led_Task_ID,LED_TASK_TMOS_EVENT1,1600); //开启任务
}


初始化时插入闪灯任务:
       CH57X_BLEInit( );
HAL_Init( );
GAPRole_PeripheralInit( );
CyclingSensor_Init( );


Led_Shan_Task_Init();  //加入闪灯任务


        Main_Circulation();
编译时出现警告:
/APP/cyclingsensor_main.c:141:44: warning: passing argument 1 of 'TMOS_ProcessEventRegister' from incompatible pointer type [-Wincompatible-pointer-types]
   Led_Task_ID  = TMOS_ProcessEventRegister(Led_Shan_task_process_event);
我传入的就是一个函数呀,为什么会有这个警告?而且任务是失败的,没有闪起来
  
  这个tmos任务是否运行了呢,你所添加的打印有没有运行,若打印运行了灯没有闪,则需要查看gpio口是否配置为推挽输出,若没有打印则添加tmos时出现了问题,另外你说运行的CentPeri例程,从你的贴的代码看应该用的是别的EVT。
  

回帖(2)

李娜

2022-8-15 09:27:25
这个tmos任务是否运行了呢,你所添加的打印有没有运行,若打印运行了灯没有闪,则需要查看gpio口是否配置为推挽输出,若没有打印则添加tmos时出现了问题,另外你说运行的CentPeri例程,从你的贴的代码看应该用的是别的EVT。
举报

江孟琢

2022-8-15 09:27:49
把你工程中的unsigned int替换成unsigned short 或者写成u16也行,就是TMOS_ProcessEventRegister这个函数传参类型你要定义好,以及Led_Flashing_Task函数中关于events变量的类型定义。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分