找回密码
 立即注册
查看: 134|回复: 12

delay不准,主频用的12m,实际用delay要大4倍 | 已解决

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:775
  • 最近打卡:2026-07-05 01:03:41
已绑定手机

158

主题

1956

回帖

2367

积分

金牌会员

积分
2367
发表于 2026-6-15 10:20:43 | 显示全部楼层 |阅读模式
delay不准, 也找不到原因了.
12m主频, 然后用软件生成的软件延时也不准
应该是时钟的问题, 万用表测试 主时钟100分频, 也能得到120khz


截图202606151017556038.jpg
截图202606151020019863.jpg
截图202606151020236432.jpg





回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2026-07-03 08:57:36

830

主题

1万

回帖

2万

积分

管理员

积分
23929
发表于 2026-6-15 10:51:34 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:775
  • 最近打卡:2026-07-05 01:03:41
已绑定手机

158

主题

1956

回帖

2367

积分

金牌会员

积分
2367
发表于 2026-6-15 10:35:02 | 显示全部楼层
已解决,我用的xdata , 把delay_ms里面的uint16_i 改成 uint16 data_i; 就好了  
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-07-04 00:01:55
已绑定手机

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-6-15 10:36:06 | 显示全部楼层
程序中有没有调整时钟操作
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-07-04 00:01:55
已绑定手机

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-6-15 10:40:13 | 显示全部楼层
vb2*** 发表于 2026-6-15 10:35
已解决,我用的xdata , 把delay_ms里面的uint16_i 改成 uint16 data_i; 就好了

Xdata类型访问速度比较慢
软件ISP默认用快的
data或edata
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:712
  • 最近打卡:2026-07-03 09:07:06
已绑定手机

50

主题

2691

回帖

9338

积分

论坛元老

积分
9338
发表于 2026-6-15 10:42:17 | 显示全部楼层
烧录附件例子里的hex文件到芯片里试试。
  1. #include "stc8h.h"
  2. void Delay1000ms(void)        //@12.000MHz
  3. {
  4.         unsigned char data i, j, k;
  5.         _nop_();
  6.         _nop_();
  7.         i = 61;
  8.         j = 225;
  9.         k = 62;
  10.         do
  11.         {
  12.                 do
  13.                 {
  14.                         while (--k);
  15.                 } while (--j);
  16.         } while (--i);
  17. }
  18. void main()
  19. {
  20.     P_SW2 |= 0x80;  //扩展寄存器访问使能
  21.     P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  22.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  23.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  24.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  25.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  26.     P5M1 = 0x00;   P5M0 = 0x10;   //设置为准双向口,P54推挽输出
  27.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  28.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  29.    
  30. //    P5SR &= ~0x10;
  31.     while(1)
  32.     {
  33.         P54 = 0;
  34.         Delay1000ms();
  35.         P54 = 1;
  36.         Delay1000ms();
  37.     }
  38. }
复制代码

截图202606151042019166.jpg

IO口测试-1S延时.zip

14.43 KB, 下载次数: 4

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2026-07-04 10:53:37
已绑定手机

5

主题

331

回帖

6374

积分

论坛元老

积分
6374
发表于 2026-6-15 10:45:32 | 显示全部楼层
看来是变量所在的区域影响,查到速度排名:data>idata>xdata。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:775
  • 最近打卡:2026-07-05 01:03:41
已绑定手机

158

主题

1956

回帖

2367

积分

金牌会员

积分
2367
发表于 2026-6-15 11:48:18 | 显示全部楼层
神*** 发表于 2026-6-15 10:51
用最新软件生成

深圳国芯人工智能有限公司-工具软件

我用的6.96g  , 刚看了6.96x 都有加data了.
好评
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:775
  • 最近打卡:2026-07-05 01:03:41
已绑定手机

158

主题

1956

回帖

2367

积分

金牌会员

积分
2367
发表于 2026-6-15 11:48:50 | 显示全部楼层
狂热*** 发表于 2026-6-15 10:36
程序中有没有调整时钟操作

和频率没关系,我测了频率是对的..  xdata和data的问题
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:775
  • 最近打卡:2026-07-05 01:03:41
已绑定手机

158

主题

1956

回帖

2367

积分

金牌会员

积分
2367
发表于 2026-6-15 11:49:31 | 显示全部楼层
乘风*** 发表于 2026-6-15 10:42
烧录附件例子里的hex文件到芯片里试试。

感谢老哥, 已经解决了.  是xdata的问题 . 用data好了.
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 14:04 , Processed in 0.078293 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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