CH571F 开启蓝牙运行速度变慢

工程师好:

    我现在有一个需求,在CH571F上动态刷新数码管,刷新时间为1ms,使用TMOS新建一个1ms的任务循环执行,未初始化蓝牙时数码管使用正常,没有闪屏,但是初始化蓝牙库以后数码管有微微闪屏,连接蓝牙后闪屏很严重,并且在开启10个TOMS taskID后蓝牙找不到,感觉蓝牙任务压根就没有执行,这时候其他任务正常,请问闪屏和找不到蓝牙是什么情况?程序是直接在Peripheral例程上修改

正常:

    //GAPRole_PeripheralInit();
    //Peripheral_Init();
    Display_Task_Init();

非正常:

    GAPRole_PeripheralInit();
    Peripheral_Init();

    Display_Task_Init();


数码管刷新任务:


void Display_Task_Init(void)
{
    Led_GPIO_Init();
    Display_TaskID = TMOS_ProcessEventRegister(Display_ProcessEvent);
    tmos_start_reload_task(Display_TaskID, DISPLAY_TEST_EVT, 1);
    Display_Numx(9999);
}


    if ( events & DISPLAY_TEST_EVT )
    {
        //Led_Display_Scan(Rope_Status.Led_Status);
        Led_Display_Scan(1);

      return (events ^ DISPLAY_TEST_EVT);
    }


你可以把刷数码管的操作, 放在定时器中断中运行, 这种可以保证实时性.


中断函数中,尽量不要有耗时操作,

通常情况下, 对于以ms为单位的定时中断中运行数个us的代码, ,对ble的影响,可以忽略不计.


另外为加快代码运行速度,你可以把对应的函数 放到ram里, 比如上面你的刷数码管的函数.



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