硬汉嵌入式论坛

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

[有问必答] 请问,如果在调用UCOS时钟滴答前进行硬件初始化需要用到延时,一般如何做?

[复制链接]

27

主题

82

回帖

163

积分

初级会员

积分
163
发表于 2015-8-18 10:23:40 | 显示全部楼层 |阅读模式
谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2015-8-18 10:46:40 | 显示全部楼层
使用uCOS-III+emWin例程里面的这个函数即可,但是一定要先初始化:
    CPU_Init(); 先初始化
     bsp_Init();
    BSP_Tick_Init();  滴答时钟初始化
==========================================================
1.png
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
 楼主| 发表于 2015-8-18 11:01:28 | 显示全部楼层
我实验了一下
代码有点不一样,我是用UCOSII
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2015-8-18 11:07:54 | 显示全部楼层

回 sss3s 的帖子

sss3s:我实验了一下
代码有点不一样,我是用UCOSII

 (2015-08-18 11:01) 
一样,请使用我做的uCOS-II例程。
CPU_Init(); 函数是在uC/CPU里面
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
 楼主| 发表于 2015-8-18 11:29:14 | 显示全部楼层
CPU_Init(); 先初始化
  BSP_Tick_Init();  滴答时钟初始化
  bsp_Init();

好想要这样才可以
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2015-8-18 11:30:44 | 显示全部楼层

回 sss3s 的帖子

sss3s:  CPU_Init(); 先初始化
  BSP_Tick_Init();  滴答时钟初始化
  bsp_Init();

好想要这样才可以
....... (2015-08-18 11:29) 
不需要。这样的话,还是滴答定时器先初始化了。
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
 楼主| 发表于 2015-8-18 12:27:50 | 显示全部楼层
CPU_Init(); 先初始化
  bsp_Init();
  BSP_Tick_Init();  滴答时钟初始化

这样的确不行,死在while(1)里了
void bsp_DelayUS(uint32_t n)
{
    uint32_t ticks;
    uint32_t told;
    uint32_t tnow;
    uint32_t tcnt = 0;
    uint32_t reload;
      
    reload = SysTick->LOAD;               
    ticks = n * (SystemCoreClock / 1000000);     /* DèòaμĽúÅÄêy */  
   
    tcnt = 0;
    told = SysTick->VAL;             /* ¸Õ½øèëê±μļÆêyÆ÷Öμ */

    while (1)
    {
        tnow = SysTick->VAL;  
        if (tnow != told)
        {   
            /* SYSTICKêÇò»¸öμY¼õμļÆêyÆ÷ */   
            if (tnow < told)
            {
                tcnt += told - tnow;   
            }
            /* ÖØDÂ×°ÔØμY¼õ */
            else
            {
                tcnt += reload - tnow + told;   
            }        
            told = tnow;

            /* ê±¼ä3¬1y/μèóúòaÑó3ùμÄê±¼ä,ÔòíË3ö */
            if (tcnt >= ticks)
            {
                break;
            }
        }  
    }
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2015-8-18 12:37:38 | 显示全部楼层

回 sss3s 的帖子

sss3s:CPU_Init(); 先初始化
  bsp_Init();
  BSP_Tick_Init();  滴答时钟初始化

这样的确不行,死在while(1)里了
....... (2015-08-18 12:27) 
错了,这个不是我给你指示的函数,这个函数使用的滴答定时器。
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
 楼主| 发表于 2015-8-18 13:23:17 | 显示全部楼层
在 V5-810_uCOS-II实验_uCOS-II+STemWin+FatFs综合 中只找到上面的哪个
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2015-8-18 14:13:44 | 显示全部楼层

回 sss3s 的帖子

sss3s:
在 V5-810_uCOS-II实验_uCOS-II+STemWin+FatFs综合 中只找到上面的哪个
看uCOS-III的,二楼发的截图就是uCOS-III
1.png
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
 楼主| 发表于 2015-8-18 15:34:12 | 显示全部楼层
老大,我错了[s:123]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 21:43 , Processed in 0.207546 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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