打印
[STM8]

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

[复制链接]
1182|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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,因为我这里没有示波器这样高级的玩意,没办法自己捉程序测试时间.........

使用特权

评论回复
5
bqyj| | 2021-2-3 23:48 | 只看该作者
用定时器

使用特权

评论回复
6
jiahy|  楼主 | 2021-2-3 23:49 | 只看该作者
能尽量不用定时器就不用定时器

使用特权

评论回复
7
tian111| | 2021-2-3 23:51 | 只看该作者
为什么

使用特权

评论回复
8
jiahy|  楼主 | 2021-2-3 23:53 | 只看该作者
目前需要最低功耗不想再开外围设备

使用特权

评论回复
9
jiahy|  楼主 | 2021-2-3 23:55 | 只看该作者
该芯片主要运行在停机模式不知对定时器影响如何

使用特权

评论回复
10
jiahy|  楼主 | 2021-2-3 23:56 | 只看该作者

使用特权

评论回复
11
supernan| | 2021-2-3 23:58 | 只看该作者
找找论坛里面吧!

使用特权

评论回复
12
jiahy|  楼主 | 2021-2-4 21:22 | 只看该作者
搜索了一下关键字,应该是没有的了。因此只能期望大家有没有看过外网或官网什么的,有见过类似的程序......

使用特权

评论回复
13
stly| | 2021-2-4 21:26 | 只看该作者
你需要的延时是什么级别的?

使用特权

评论回复
14
pengf| | 2021-2-4 21:28 | 只看该作者
us就不考虑了,一个时钟周期都远不止了

使用特权

评论回复
15
houcs| | 2021-2-4 21:30 | 只看该作者
ms可以做到

使用特权

评论回复
16
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);
}

使用特权

评论回复
17
jiahy|  楼主 | 2021-2-4 21:35 | 只看该作者
先谢了,目前没示波器,所以才想要现成的程序。这个程序只能等我有示波器再玩了......

使用特权

评论回复
18
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........

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

使用特权

评论回复
19
lium| | 2021-2-4 21:39 | 只看该作者
还没有接触过stm8系列的

使用特权

评论回复
20
llia| | 2021-2-4 21:41 | 只看该作者
还没有遇到过  帮楼主顶一下

使用特权

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

本版积分规则

862

主题

9861

帖子

4

粉丝