硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2494|回复: 2
收起左侧

[μCOS-III] ucosiii SysTick_Handler

[复制链接]

1

主题

0

回帖

1

积分

新手上路

积分
1
发表于 2017-9-20 15:49:46 | 显示全部楼层 |阅读模式
刚学习移植ucos iii,使用bsp_DelayMS()函数时,发现SysTick_Handler并没有执行;

void bsp_InitTimer(void)
{
        uint8_t i;

        /* 清零所有的软件定时器 */
        for (i = 0; i < TMR_COUNT; i++)
        {
                s_tTmr.Count = 0;
                s_tTmr.PreLoad = 0;
                s_tTmr.Flag = 0;
                s_tTmr.Mode = TMR_ONCE_MODE;        /* 缺省是1次性工作模式 */
        }

        /*
                配置systic中断周期为1ms,并启动systick中断。

            SystemCoreClock 是固件中定义的系统内核时钟,对于STM32F4XX,一般为 168MHz

            SysTick_Config() 函数的形参表示内核时钟多少个周期后触发一次Systick定时中断.
                    -- SystemCoreClock / 1000  表示定时频率为 1000Hz, 也就是定时周期为  1ms
                    -- SystemCoreClock / 500   表示定时频率为 500Hz,  也就是定时周期为  2ms
                    -- SystemCoreClock / 2000  表示定时频率为 2000Hz, 也就是定时周期为  500us

            对于常规的应用,我们一般取定时周期1ms。对于低速CPU或者低功耗应用,可以设置定时周期为 10ms
    */
        SysTick_Config(SystemCoreClock / 1000);
        //NVIC_SetPriority(SysTick_IRQn, 0x0);

#if defined (USE_TIM2) || defined (USE_TIM3)  || defined (USE_TIM4)        || defined (USE_TIM5)
        bsp_InitHardTimer();
#endif
}


源文件没有红色部分,我加上了也是无法进去中断,想请教一下需要设置其他什么地方吗?
回复

使用道具 举报

17

主题

121

回帖

172

积分

初级会员

积分
172
发表于 2017-9-20 23:13:19 | 显示全部楼层
只能说你版主的裸机emWin和uCOS搞混了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107048
QQ
发表于 2017-9-21 01:54:26 | 显示全部楼层
uCOS-III的系统时钟节拍需要使用滴答定时器,已经被他给占用了。

而我们的这个bsp_timer.C文件也是用了滴答定时器,所以使用uCOS-III就不能在使用此文件中此部分函数了。

你说的bsp_DelayMS使用uCOS-III的自己的延迟函数即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 13:59 , Processed in 0.315184 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表