ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

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

[复制链接]
88|5
 楼主 | 2019-3-13 10:16 | 显示全部楼层 |阅读模式
目前使用STM8L的低速时钟作为主时钟(一切为了低功耗)我目前看外面软件延时全都以全速16MHz来计算的.....

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2019-3-13 11:01 | 显示全部楼层
找找论坛里面吧!
 楼主 | 2019-3-13 11:19 | 显示全部楼层

搜索了一下关键字,应该是没有的了。因此只能期望大家有没有看过外网或官网什么的,有见过类似的程序......
| 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);
}
 楼主 | 2019-3-13 14:09 | 显示全部楼层
mohanwei 发表于 2019-3-13 12:22
你需要的延时是什么级别的?us就不考虑了,一个时钟周期都远不止了
ms可以做到
void delay_ms(volatile uns ...

先谢了,目前没示波器,所以才想要现成的程序。这个程序只能等我有示波器再玩了......
 楼主 | 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........

大家认为这样计算可以么?
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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