TMOS插入任务问题

在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 \r\n");


      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。


我下的是CH573EVT,开发板是CH573F-R0-1V2,例程核对过是:CyclingSensor例程,是任务创建失败了,但是找不到原因,没打印也没闪灯,警告提示:函数指针不对


这个警告:warning: passing argument 1 of 'TMOS_ProcessEventRegister' from incompatible pointer type [-Wincompatible-pointer-types]


传递的函数指针类型不符??,要怎么修正?可能任务创建失败就是这个问题


把修改过后的工程发我邮箱我帮你看一下hy@wch.cn,你这边的错误应该是传参的错误,把LED_TASK_ID

的定义看看。


j_0020.gif运行起来了,但是这个警告怎么都消除不了:warning: passing argument 1 of 'TMOS_ProcessEventRegister' from incompatible pointer type [-Wincompatible-pointer-types]。 求大神指点原因。谢谢。


SM7DBJ80~@~4O9R}}3`UZ3J.png 以上是被警告的语句


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


只有登录才能回复,可以选择微信账号登录