找回密码
 立即注册
查看: 81|回复: 5

isp中软件延时计算器自动生成的c代码在c251中报错

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:84
  • 最近打卡:2026-07-05 07:15:59

5

主题

45

回帖

161

积分

注册会员

积分
161
发表于 2026-6-26 00:26:39 | 显示全部楼层 |阅读模式
已经后半夜了,keil c251 编译报错,因为keil比较笨,它提示往往不直接指出问题所在

所以,我把工程导入vs code,提示是 两个i下面都有红色波浪号。怀疑会不会计算器当时针对C51设计,我现在用的是AI8051U,C251会不会有问题

  1. // 延时 20ms (用于主机发送起始信号)
  2. void Delay20ms(void)                //@30.000MHz
  3. {
  4.     unsigned long edata i;
  5.     _nop_();
  6.     _nop_();
  7.     i = 149998UL;
  8.     while (i) i--;
  9. }
复制代码
问,针对用的是AI8051U,C251,软件延时代码正确的表达是什么样子的?


回复

使用道具 举报 送花

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

830

主题

1万

回帖

2万

积分

管理员

积分
23929
发表于 2026-6-26 07:55:04 | 显示全部楼层

添加 #include <intrins.h> → 为 _nop_() 函数提供声明


截图202606260754293797.jpg
回复

使用道具 举报 送花

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

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-6-26 08:45:07 | 显示全部楼层
还要注意指令集和频率
让延时精准
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:295
  • 最近打卡:2026-07-03 15:36:22
已绑定手机

22

主题

663

回帖

2480

积分

金牌会员

积分
2480
发表于 2026-6-26 10:47:41 | 显示全部楼层

void _nop_(void);

void Delay20ms(void)                //@30.000MHz
{
    unsigned long edata i;
    _nop_();
    _nop_();
    i = 149998UL;
    while (i) i--;
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:393
  • 最近打卡:2026-07-04 17:13:30

83

主题

7888

回帖

1万

积分

超级版主

积分
16827
发表于 2026-6-26 11:07:15 | 显示全部楼层
edata用于C251,C51不要用edata。
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:84
  • 最近打卡:2026-07-05 07:15:59

5

主题

45

回帖

161

积分

注册会员

积分
161
发表于 2026-6-26 19:35:25 | 显示全部楼层
Ayb_*** 发表于 2026-6-26 10:47
void _nop_(void);

void Delay20ms(void)                //@30.000MHz

感谢层主回复,也感谢姚工第一个回复
其实,在工程多文件的相关一个.h中我早已声明,我后来做了在c251中删除其他只留下延时这部分,编译完全通过,我认为不是延时代码原因
而keil中编译报错,提示信息不足以排查错误,这才是老大难问题,大家有什么这方面经验分享吗?

  1. #ifndef __DHT11_H__
  2. #define __DHT11_H__
  3. #include <intrins.h> // 包含nop指令需要的头文件
  4. // 1. 先定义类型,解决报错根源
  5. #ifndef uint8
  6.     typedef unsigned char uint8;
  7. #endif
复制代码

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 07:47 , Processed in 0.070757 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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