标题: 单片机C语言用unsigned long类型的变量就不正常呢 [打印本页]

作者: yinnan128    时间: 2021-5-19 15:16
标题: 单片机C语言用unsigned long类型的变量就不正常呢
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();
                }
}



作者: ly1972001    时间: 2021-5-19 15:49
判断值改为    if(ADC>=65000) 再试下
作者: ANT1987    时间: 2021-5-19 16:56
unsigned long ADC=0;if(ADC>=65000) 一般变量不赋初值的话,我的理解应该会是一个随机的值吧
作者: yinnan128    时间: 2021-5-19 17:07
ly1972001 发表于 2021-5-19 15:49
判断值改为    if(ADC>=65000) 再试下

unsigned long        改为>=可以,但LCD1602刷新速度比unsigned int 快了10倍以上,为什么++速度变快了呢
作者: yinnan128    时间: 2021-5-19 17:09
ANT1987 发表于 2021-5-19 16:56
unsigned long ADC=0;if(ADC>=65000) 一般变量不赋初值的话,我的理解应该会是一个随机的值吧

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1