找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1413|回复: 4
收起左侧

想通过复位返回到02这个数值,请问有什么办法?

[复制链接]
ID:103131 发表于 2021-5-29 21:22 | 显示全部楼层 |阅读模式
void AD_TEST(void)
{
        unsigned int GET_AD;
         unsigned int  num2;  
                   if(num == 50)
          {
                        num = 0;
                  
                         if(fuck<4)
                        
                {
                                 fuck++;
                        
                }
         fuck = iap_READ(iap_ADDRESS);
           
         }
           

        
         if(KEY==0 && locks2==2)
                   {
                            locks2=1;        
                            change2++;
                              // printf(" locks2 = %d\r\n",locks2);
                          // printf(" change2 = %d\r\n",change2);
                 
                        if(change2>3){change2=1;}
                   }        
         

                           if(KEY==1)
                        {        
                                locks2=2;        
                        }        
                                                   

                      if(change2==2)
                        {
                                 
                                                ZERO_MODE(fuck);
                                   // iap_ERASE(iap_ADDRESS);//擦除第一扇区                        
                      //  iap_PROGRAM(iap_ADDRESS, fuck);
                                                //iap_PROGRAM(iap_ADDRESS+1,change);//记录按键                                                
                                                
                        }
                                       
                                        if(change2 == 3)
                                        {
                                                num2++;
                                                        if(num2 == 80)
                           {
                                        num2 = 0;
               
                                   GET_AD = Get_AD(CHANNEL_2);
               
                                   APEI = GET_AD*15/1023+6;
                                                    //printf("GET_AD =  %d\r\n",GET_AD);
                                           }
                                                  LCD_OUT(APEI);
                                          
                                          
                                     }
                                       
                                            
            
                           
        if(fuck == 0)
                {
                    
            //LED1 = 0;
                        
                        if(!KEY)
                         {
                                while(!KEY)
                                
                                IAP_CONTR = 0x70;
                                
                         }
                        
                }
    else if(fuck == 1)
           {
                  
                 // LED1 = 1;
                   if(!KEY)
                         {
                                while(!KEY)
                                //fuck = 0;
                            IAP_CONTR = 0x70;
                                
                        
                         }
           }
        else if(fuck == 2)
          {
                  LED1 = 0;
                  if(!KEY)
                         {
                                while(!KEY)
                                 IAP_CONTR = 0x70;
                                
                         }
          }
        else if(fuck == 3)
          {
                //LED1 = 1;
                  if(!KEY)
                         {
                                while(!KEY)
                                IAP_CONTR = 0x70;
                        
                                
                         }
          }
         
                  else if(fuck == 4)
               {  
                 
                         // LED1 = 0;
                           
                           
               }
         

}




void main(void)
{        
        
        
        usart_init();      //printf("usart_init\r\n");
        time0_init();      //printf("time0_init\r\n");
        AD_init();         //printf("AD_init\r\n");
        
        //EXT_init();
        
        locks=1;
        change=1;
        locks2=1;
        change2=2;
        



        //fuck = 1;

   // change=2;
        
        // printf(">>> %c \n",iap_READ(iap_ADDRESS));
        
while(1)
        {

             KEY2_TEST2();


                  iap_ERASE(iap_ADDRESS);//擦除扇区
             iap_PROGRAM(iap_ADDRESS,1);//保存位置数据
         
    }

}


想通过复位返回到02这个数值,请问有什么办法,回答者万分感激


回复

使用道具 举报

ID:554500 发表于 2021-5-30 15:39 | 显示全部楼层
没搞明白啥问题??能说清楚点吗?
回复

使用道具 举报

ID:103131 发表于 2021-5-31 12:05 | 显示全部楼层
18701931930 发表于 2021-5-30 15:39
没搞明白啥问题??能说清楚点吗?

就是好像LED流水灯从第一颗灯,第二,第三,第四,我把第三颗灯保存起来,无论复位还是断电都是从第三颗灯开始跑,就是这样道理
回复

使用道具 举报

ID:88256 发表于 2021-5-31 13:14 | 显示全部楼层
goldbirderman 发表于 2021-5-31 12:05
就是好像LED流水灯从第一颗灯,第二,第三,第四,我把第三颗灯保存起来,无论复位还是断电都是从第三颗 ...

如果只是单纯想要第3个灯开始亮起,你可以把前面两个灯移到后面去啊,让第3个灯接在第1个灯的位置;如果不是固定第3个灯,而是需要随意调节并记住,那就需要将第几个灯开始亮起的数值保存在能断电保存的存储器上,程序复位后就先读取这个数值再控制亮灯,现在很多单片机内部都具有这类存储器,实在没有就加一片24C01之类的存储器
回复

使用道具 举报

ID:103131 发表于 2021-5-31 13:51 | 显示全部楼层
hhdsdy 发表于 2021-5-31 13:14
如果只是单纯想要第3个灯开始亮起,你可以把前面两个灯移到后面去啊,让第3个灯接在第1个灯的位置;如果 ...

可以给个例子我参考一下吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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