打印
[STM8]

请教大家有没有见过STM8L低速时钟LSI下的软件延时程序?

[复制链接]
1429|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
目前使用STM8L的低速时钟作为主时钟(一切为了低功耗)我目前看外面软件延时全都以全速16MHz来计算的.....

目前我用芯片的主时钟为38kHz,因为我这里没有示波器这样高级的玩意,没办法自己捉程序测试时间.........
不知大家有没有见过以 38kHz 时钟的软件延时程序呢?(能尽量不用定时器就不用定时器,一来目前需要最低功耗不想再开外围设备,二来该芯片主要运行在停机模式不知对定时器影响如何.......)



沙发
零三翟邢止胃| | 2019-3-13 11:01 | 只看该作者
找找论坛里面吧!

使用特权

评论回复
板凳
zgjzgjkyo|  楼主 | 2019-3-13 11:19 | 只看该作者

搜索了一下关键字,应该是没有的了。因此只能期望大家有没有看过外网或官网什么的,有见过类似的程序......

使用特权

评论回复
地板
mohanwei| | 2019-3-13 12:22 | 只看该作者
你需要的延时是什么级别的?us就不考虑了,一个时钟周期都远不止了
ms可以做到
void delay_ms(volatile unsigned char ms)
{
      while(ms--)
      {
             nop();//这里放若干个空指令
             ...
      }
}

然后在main函数里:
while(1)
{//用示波器观察IO翻转的脉宽,调整nop个数
      SetPA1;
      delay_ms(10);
      ClrPA1;
      delay_ms(100);
}

使用特权

评论回复
5
zgjzgjkyo|  楼主 | 2019-3-13 14:09 | 只看该作者
mohanwei 发表于 2019-3-13 12:22
你需要的延时是什么级别的?us就不考虑了,一个时钟周期都远不止了
ms可以做到
void delay_ms(volatile uns ...

先谢了,目前没示波器,所以才想要现成的程序。这个程序只能等我有示波器再玩了......

使用特权

评论回复
6
zgjzgjkyo|  楼主 | 2019-3-13 15:37 | 只看该作者
mohanwei 发表于 2019-3-13 12:22
你需要的延时是什么级别的?us就不考虑了,一个时钟周期都远不止了
ms可以做到
void delay_ms(volatile uns ...

在外面找到一个这样的程序。
IAR FOR STM8精确延时函数(16M晶振)
asm("nop");     //一个asm("nop")函数经过示波器测试代表100ns

那我可以这样推算。16MHz/38kHz ≈ 421.05倍

也就是在38Khz情况下。一个nop为
100ns x 421.05 = 0.042105ms
也就是1ms ≈ 23~24个nop。那么考虑到程序时间,保守取23个nop为1ms........

大家认为这样计算可以么?

使用特权

评论回复
7
磨砂| | 2019-4-2 11:26 | 只看该作者
还没有接触过stm8系列的

使用特权

评论回复
8
晓伍| | 2019-4-2 11:28 | 只看该作者
还没有遇到过  帮楼主顶一下

使用特权

评论回复
9
八层楼| | 2019-4-2 11:30 | 只看该作者
可以自己根据具体情况写一个

使用特权

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

本版积分规则

53

主题

213

帖子

4

粉丝