找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1495|回复: 4
打印 上一主题 下一主题
收起左侧

单片机C语言用unsigned long类型的变量就不正常呢

[复制链接]
跳转到指定楼层
楼主
ID:608872 发表于 2021-5-19 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC这个变量用unsigned long只能进入一次if(ADC==65000)函数,用unsigned int类型就正常进入呢?ADC=65000不也是在unsigned long 取值范围内吗

unsigned long ADC;
void main ()
{  
        ADC_init(); //初始化ADC
           lcd_init() ;//初始化LCD      
        while (1)
                {
                        ADC++;
                        if(ADC==65000)
                        {
                         ADC=0;
                         ADC_duqu();
                         ADC_zhuanhuan();
                         LCD_shuaxin();
                         write_com(0x80+guangbiao);  //光标定位
                        }
                  KEY();
                        MOS_A_Trigger();
                        MOS_M_Trigger();
                }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:236035 发表于 2021-5-19 15:49 | 只看该作者
判断值改为    if(ADC>=65000) 再试下
回复

使用道具 举报

板凳
ID:894154 发表于 2021-5-19 16:56 | 只看该作者
unsigned long ADC=0;if(ADC>=65000) 一般变量不赋初值的话,我的理解应该会是一个随机的值吧
回复

使用道具 举报

地板
ID:608872 发表于 2021-5-19 17:07 | 只看该作者
ly1972001 发表于 2021-5-19 15:49
判断值改为    if(ADC>=65000) 再试下

unsigned long        改为>=可以,但LCD1602刷新速度比unsigned int 快了10倍以上,为什么++速度变快了呢
回复

使用道具 举报

5#
ID:608872 发表于 2021-5-19 17:09 | 只看该作者
ANT1987 发表于 2021-5-19 16:56
unsigned long ADC=0;if(ADC>=65000) 一般变量不赋初值的话,我的理解应该会是一个随机的值吧

单赋值0不行,必须加上>=才可以,但++的速度比原来快了10倍以上是咱回事
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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