[STM8] STM8L低速时钟LSI下的软件延时程序

[复制链接]
 楼主| jiahy 发表于 2021-2-3 23:35 | 显示全部楼层 |阅读模式
请教大家有没有见过STM8L低速时钟LSI下的软件延时程序?
xxrs 发表于 2021-2-3 23:39 | 显示全部楼层

你有什么打算呢?或者你想知道什么?
 楼主| jiahy 发表于 2021-2-3 23:44 | 显示全部楼层
目前使用STM8L的低速时钟作为主时钟(一切为了低功耗)我目前看外面软件延时全都以全速16MHz来计算的.....
 楼主| jiahy 发表于 2021-2-3 23:45 | 显示全部楼层
目前我用芯片的主时钟为38kHz,因为我这里没有示波器这样高级的玩意,没办法自己捉程序测试时间.........
bqyj 发表于 2021-2-3 23:48 | 显示全部楼层
用定时器
 楼主| jiahy 发表于 2021-2-3 23:49 | 显示全部楼层
能尽量不用定时器就不用定时器
tian111 发表于 2021-2-3 23:51 | 显示全部楼层
为什么
 楼主| jiahy 发表于 2021-2-3 23:53 | 显示全部楼层
目前需要最低功耗不想再开外围设备
 楼主| jiahy 发表于 2021-2-3 23:55 | 显示全部楼层
该芯片主要运行在停机模式不知对定时器影响如何
 楼主| jiahy 发表于 2021-2-3 23:56 | 显示全部楼层
supernan 发表于 2021-2-3 23:58 | 显示全部楼层
找找论坛里面吧!
 楼主| jiahy 发表于 2021-2-4 21:22 | 显示全部楼层
搜索了一下关键字,应该是没有的了。因此只能期望大家有没有看过外网或官网什么的,有见过类似的程序......
stly 发表于 2021-2-4 21:26 | 显示全部楼层
你需要的延时是什么级别的?
pengf 发表于 2021-2-4 21:28 | 显示全部楼层
us就不考虑了,一个时钟周期都远不止了
houcs 发表于 2021-2-4 21:30 | 显示全部楼层
ms可以做到
chenjunt 发表于 2021-2-4 21:32 | 显示全部楼层

void delay_ms(volatile unsigned char ms)
{
      while(ms--)
      {
             nop();//这里放若干个空指令
             ...
      }
}

然后在main函数里:
while(1)
{//用示波器观察IO翻转的脉宽,调整nop个数
      SetPA1;
      delay_ms(10);
      ClrPA1;
      delay_ms(100);
}
 楼主| jiahy 发表于 2021-2-4 21:35 | 显示全部楼层
先谢了,目前没示波器,所以才想要现成的程序。这个程序只能等我有示波器再玩了......
 楼主| jiahy 发表于 2021-2-4 21:37 | 显示全部楼层
在外面找到一个这样的程序。
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........

大家认为这样计算可以么?
lium 发表于 2021-2-4 21:39 | 显示全部楼层
还没有接触过stm8系列的
llia 发表于 2021-2-4 21:41 | 显示全部楼层
还没有遇到过  帮楼主顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部