OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9932|回复: 33

原子个 能不能解释下ucos系统上 你用库函数编写时 系统时钟设置是什么意思啊? 因为我在还没开始ucos运行时 要用到延时函数

[复制链接]

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
发表于 2013-4-6 11:13:17 | 显示全部楼层 |阅读模式

但是我是用直接操作寄存器的 编写的  但是在还没开始运行ucos时  要用到delay 函数,那我ucos的/systick函数,应该怎么设置,

我有看到你用库函数设置的系统时钟, 那我用寄存器操作 ,得怎么设置呢?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-6 15:21:53 | 显示全部楼层
在ucosii下,用我们战舰板的SYSTEM文件夹,非常好使。
详细的介绍在《stm32开发指南》有。
这里附上战舰STM32开发板的第一个UCOSII实验,给你参考。



实验53 UCOSII实验1-任务调度.rar

130.66 KB, 下载次数: 1260

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-6 15:51:18 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥   那用寄存器操作  时钟设置是不是和你这个一样呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-6 17:21:47 | 显示全部楼层
回复【3楼】电子好学者:
---------------------------------
我上面的代码,就是寄存器版本的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-6 18:45:13 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
谢啦 我好好看下
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-6 19:28:52 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
那你任务延时是用 delay_ms() 也可以起到任务切换做用?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-6 22:46:25 | 显示全部楼层
是的
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-7 14:06:48 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
能做到1ms 延时的任务吗?  看了你那个 延时介绍 还是模糊         OS_TICKS_PER_SEC  设定时钟节拍    1000/OS_TICKS_PER_SEC   你说系统节拍5ms  中断  那OS_TICKS_PER_SEC 设为200  那最小任务 就要大于5ms  那我要1ms  设成1000? 但是网上看了下  说OS_TICKS_PER_SEC  设在100到200呀
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-7 14:50:50 | 显示全部楼层
回复【8楼】电子好学者:
---------------------------------
1ms也可以啊,只要你不嫌弃CPU很大一部分时间花在任务切换上。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-7 15:00:20 | 显示全部楼层
那我 是要把 OS_TICKS_PER_SEC 设成一千?  还有你这个ucos 能在 mini板上跑吗?  我是用你这个改代码 写个程序 在我的mini板上跑


还有我把那个设成一千了我在还没   OSInit(); //初始化UCOSII     延时delay_ms(10000);    但是我单步调试的时候 程序会死在

while(1)
{
tnow=SysTick->VAL;
if(tnow!=told)
{     
if(tnow<told)tcnt+=told-tnow;//这里注意一下SYSTICK是一个递减的计数器就可以了.
else tcnt+=reload-tnow+told;     
told=tnow;
if(tcnt>=ticks)break;//时间超过/等于要延迟的时间,则退出.
}  
};

OSSchedUnlock(); //开启ucos调度 


但是 我那个延时ms 是还没开启 ucos的呀   怎么会进入到 ucos的 系统延时函数呢?
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-7 15:08:15 | 显示全部楼层
用ucos 就已经定义了    但是我可以再还没初始化 ucos 时 调用 delay_ms 来延时吗?  我调用了 一直在while(1)里 , 是不可以 ?还是调用错了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-7 15:15:47 | 显示全部楼层
回复【11楼】电子好学者:
---------------------------------
你延时10000ms是多少秒钟?
你的代码执行1句需要多久》?
那么你得执行多少步?
算过么?
不是不出来,是不到时间,怎么能出来!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-7 15:24:17 | 显示全部楼层
不是10s吗?  我遇到这个是用 快速执行的  然后再下面一句 设置断点
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-7 19:13:59 | 显示全部楼层
没认真看 粗心了  你那还写着要小于1864  那我得好好琢磨下
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-8 19:22:05 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
原子哥 你那个基于ucos的delay_ms延时不准确, 我是 delay_ms(1000); 那是一秒吧  但是 我和秒表启动  就这起码延时了 8秒左右
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-8 19:50:12 | 显示全部楼层
回复【15楼】电子好学者:
---------------------------------
那是你不会用吧...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-8 19:52:48 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
还真不敢说会用 我仿真都是那个软件仿真  原子哥 能否赐教下
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-8 19:59:00 | 显示全部楼层
软件仿真,战舰板的ucosii实验,第一个,实测图如下:



误差我就不计算了,你有时间自己慢慢算。


我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-8 20:01:21 | 显示全部楼层
嗯  刚看到了 看那个sec  是一样的吧  软件仿真差这么多  呵呵 谢啦!
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-4-16 15:51:42 | 显示全部楼层
 原子哥 我是初学者 既然你的系统延时函数用作任务调度了 那我正任务中要延时怎么办 如果不用软件延时 我看你写的通用定时器都是中断功能的 要是用作延时功能该怎么配置 能提供参考代码吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-16 16:44:32 | 显示全部楼层
请先看看我们的《STM32开发指南》SYSTEM文件夹介绍,特别是delay.c的介绍。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-16 22:16:51 | 显示全部楼层
回复【21楼】正点原子:
---------------------------------
原子哥  你那个战舰版的 串口通信可以再ucos里应用 那有没有相关例子呢?ucos  这种中断优先级是比任务优先级高的吧! 我串口接收来数据了,那就会进入串口中断,  那相应的串口任务该怎么写呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-16 23:02:49 | 显示全部楼层
回复【22楼】电子好学者:
---------------------------------
串口通信当然可以用在ucosii里面,我们的system文件夹,加入ucosii之后,就支持了的.
串口中断代码,参考我们system文件夹里面的usart.c
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-18 11:29:58 | 显示全部楼层
回复【23楼】正点原子:
---------------------------------
原子哥  系统上电的瞬间的时候  I/O 口会先输出个高电平吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-18 15:13:51 | 显示全部楼层
应该不会
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-18 19:15:00 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
知道了 网上查了下 默认是浮空输入状态
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-18 20:50:37 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
原子哥  你那个串口 怎么以字符形式发送啊  我发送 1  要‘1’却不能 0x01
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-18 21:12:47 | 显示全部楼层
USART1->DR='1'
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-18 21:15:09 | 显示全部楼层

我接收 也只能以单字符判断,为什么不能用数字 ,我看DR是八位寄存器 ,应该能接收 0x11;这样的吧  0x11叫一个字节
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
发表于 2013-4-18 22:02:45 | 显示全部楼层
纯水一下,原子辛苦了~~
1 和 '1' 是不一样的
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
 楼主| 发表于 2013-4-19 09:11:03 | 显示全部楼层
回复【30楼】Alexinx:
---------------------------------
是啊  但是为什么0x01  表示一个字节吧,DR是八位 不是可以存储 0x01吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-19 11:04:58 | 显示全部楼层
回复【31楼】电子好学者:
---------------------------------
好好了解下什么是ASCII,以及其内码编码规则.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2013-6-8
在线时间
0 小时
发表于 2013-6-9 12:00:36 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子大哥,我用了SYSTEM中得Delay函数,它是用滴答滴定时器写的,那在UCOS里的LCD_int函数里的延时函数也任务切换,程序就死了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-9 15:01:23 | 显示全部楼层
要用我们战舰板的SYSTEM文件,才不会死机.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 22:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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