打印

XT2,怎么设置初值 定时也为0.5S。。。(怎么算呢?)

[复制链接]
1989|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
胡斯哲|  楼主 | 2013-3-27 18:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 胡斯哲 于 2013-3-28 09:12 编辑

在默认情况下设置  时钟为800KHz
那么执行一条语句:for(i=0;i<200;i++);
延时为200*1/800000=0.00025 s 吗 ?
如果是LFXT1CLK时,延时为200*1/32768=0.006s ?
如果是XT2时(8分频),延时为200*1/8000000/8=0.00002s?

还有如果是TIME_A,时钟为LFXTCLK时,设置CCR0=16384,定时时间为16384*1/32768=0.5S?
如果是XT2,怎么设置初值  定时也为0.5S。。。(怎么算呢?)
问题比较多  麻烦知道的人解释一下


相关帖子

沙发
胡斯哲|  楼主 | 2013-3-27 21:41 | 只看该作者

使用特权

评论回复
板凳
胡斯哲|  楼主 | 2013-3-27 22:40 | 只看该作者
自己给自己顶个。。。。。。。。。。

使用特权

评论回复
地板
jlass| | 2013-3-28 10:17 | 只看该作者
第一种是指令延时,没有问题。

但是后面的几种应该都属于定时器计数,或者是采样计数,用不到for指令的。

使用特权

评论回复
5
jlass| | 2013-3-28 10:20 | 只看该作者
本帖最后由 jlass 于 2013-3-28 13:05 编辑

在默认情况下设置  时钟为800KHz

突然发现这主频也太慢了吧,你的第一种是指令延时么?
感觉你把指令延时和定时器搞混了

使用特权

评论回复
6
胡斯哲|  楼主 | 2013-3-28 10:36 | 只看该作者
jlass 发表于 2013-3-28 10:17
第一种是指令延时,没有问题。

但是后面的几种应该都属于定时器计数,或者是采样计数,用不到for指令的。[ ...

终于等到高人回答了
前面的for指令是对的?
后面是定时的  怎么算定时长度不知道怎么弄
看到一个程序 选择了XT2  再八分频 他把CCR0设为62500  定时为0.5s  不知道这个0.5怎么来的   

使用特权

评论回复
7
jlass| | 2013-3-28 13:07 | 只看该作者
本帖最后由 jlass 于 2013-3-28 13:53 编辑

选择了XT2  再八分频

估计就是XT2的时钟除以8而已
寄存器的部分还得你自己看看。

给你完整的说一下吧
一般的定时有两种
1、指令延时
假设你的芯片主频是100M,那么每一条单指令运行时间为1/100M,所以循环运行100次就是1ns。
2、定时器计时
假如你的芯片的定时器时钟是100K,直接配置定时器的计数值为100,再把定时器打开,那么等到了1ms的时候定时器就会给你一个标志位或者中断。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:读书喝茶,不争朝夕

141

主题

1431

帖子

6

粉丝