共2条 1/1
1
跳转至
页
2131,uc,os 2131+uc/os中的时钟问题
问
1. OSTimeDly(OS_TICKS_PER_SEC/50); 是延时20ms吗?
2. #define OS_TICKS_PER_SEC 200 /* Set the number of ticks*/
/* in one second*/
这个什么意思?一秒钟200个时钟周期???
3. target.c中初始了time0,在 uc/ os系统中有用time0吗?用户可以使用time0吗?
4.
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
DelayNS(50); 是延时20ms吗??
是怎样计算的?
这个计算方法对吗?
1
------------- * 50000 * 50ms=4.5 * 50ms~=22.5ms
11.0592*1000
答 1: re建议你好好看看系统时钟中断的作用,
time0既然作为系统的时钟中断用,当然不能用作其它的了。。。
//////////////////////////////////////////
4.
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
DelayNS(50); 是延时20ms吗??
是怎样计算的?
这个计算方法对吗?
1
------------- * 50000 * 50ms=4.5 * 50ms~=22.5ms
11.0592*1000
////////////////////////////
这样计算是不对的。。。c指令不是汇编指令,一条指令转化为汇编时候
可能是多条汇编指令,,,
精确延时可以用定时器。。。
答 2: 谢谢 !
time0作为系统的时钟中断用?
具体在哪个文件实现的? target.c中
void Timer0_Exception(void)
{
T0IR = 0x01;
VICVectAddr = 0; //interrupt cl ose 通知中断控制器中断结束
OSTimeTick();
}
好像与系统有关.
不明白 uc/ os是怎么用time0的,看了Jean J. Labr osse的书,也没明白.
能不能介绍几个相关资料?
关于问题1,2,
#define OS_TICKS_PER_SEC 200
是一秒钟1个节拍,即间隔5ms,Jean J. Labr osse的书P340页说:"将PC的时钟频率从标准的18.20648 Hz改为200Hz."
这里的PC的时钟频率是指硬件定时器还是晶振?在ZLG的 ARM开发板上是多少呢?
如果问题2解决,则很容易理解了:
OS_TICKS_PER_SEC/50=200/50=4个时钟节拍
5ms*4=20ms.
OSTimeDly(OS_TICKS_PER_SEC/50); 延时20ms
1. OSTimeDly(OS_TICKS_PER_SEC/50); 是延时20ms吗?
2. #define OS_TICKS_PER_SEC 200 /* Set the number of ticks*/
/* in one second*/
这个什么意思?一秒钟200个时钟周期???
3. target.c中初始了time0,在 uc/ os系统中有用time0吗?用户可以使用time0吗?
4.
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
DelayNS(50); 是延时20ms吗??
是怎样计算的?
这个计算方法对吗?
1
------------- * 50000 * 50ms=4.5 * 50ms~=22.5ms
11.0592*1000
答 1: re建议你好好看看系统时钟中断的作用,
time0既然作为系统的时钟中断用,当然不能用作其它的了。。。
//////////////////////////////////////////
4.
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
DelayNS(50); 是延时20ms吗??
是怎样计算的?
这个计算方法对吗?
1
------------- * 50000 * 50ms=4.5 * 50ms~=22.5ms
11.0592*1000
////////////////////////////
这样计算是不对的。。。c指令不是汇编指令,一条指令转化为汇编时候
可能是多条汇编指令,,,
精确延时可以用定时器。。。
答 2: 谢谢 !
time0作为系统的时钟中断用?
具体在哪个文件实现的? target.c中
void Timer0_Exception(void)
{
T0IR = 0x01;
VICVectAddr = 0; //interrupt cl ose 通知中断控制器中断结束
OSTimeTick();
}
好像与系统有关.
不明白 uc/ os是怎么用time0的,看了Jean J. Labr osse的书,也没明白.
能不能介绍几个相关资料?
关于问题1,2,
#define OS_TICKS_PER_SEC 200
是一秒钟1个节拍,即间隔5ms,Jean J. Labr osse的书P340页说:"将PC的时钟频率从标准的18.20648 Hz改为200Hz."
这里的PC的时钟频率是指硬件定时器还是晶振?在ZLG的 ARM开发板上是多少呢?
如果问题2解决,则很容易理解了:
OS_TICKS_PER_SEC/50=200/50=4个时钟节拍
5ms*4=20ms.
OSTimeDly(OS_TICKS_PER_SEC/50); 延时20ms
共2条 1/1
1
跳转至
页
回复
有奖活动 | |
---|---|
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |