久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1948|回復: 7
打印 上一主題 下一主題
收起左側

程序錯誤,請教一下,這個是什么問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:97678 發表于 2020-1-9 13:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個程序里是什么錯誤?


#include "func.h"
#include "main.h"
#include "io.h"
sbit Test=P2^2;
extern u8 IsDebug;
void WaitACZero(void)
{
    int i;    //while(Zero);while(!Zero);
    i=1;
}
void Delay1ms()        //@11.0592MHz
{
    unsigned char i, j;
    i = 11;
    j = 190;
    do
    {
        while (--j);
    } while (--i);
}
u32 allWorkTime=(s32)3600*(s32)65535;
void update_allWork(void){ReadBytes(0x100,4,&allWorkTime);if(allWorkTime==0xffffffff)allWorkTime=0;}
void save_allWork(void){    WriteBytes(0x100,4,&allWorkTime);}

void update_SetTemp(void){ReadBytes(0x200,1,&SetTemp);if(SetTemp==0xff)SetTemp=0;}
void save_SetTemp(void){WriteBytes(0x200,1,&SetTemp);}
u8 t123456[6];
void update_t123456(void)
{
    u8 i;
    ReadBytes(0x300,6,t123456);
    for(i=0;i<6;i++)
    {
        if(t123456[i]==0xff || t123456[i]==0)return;
    }
    t1=t123456[0];
    t2=t123456[1];
    t3=t123456[2];
    t4=t123456[3];
    t5=t123456[4];
    t6=t123456[5];
}
void save_t123456(void)
{
    t123456[0]=t1;
    t123456[1]=t2;
    t123456[2]=t3;
    t123456[3]=t4;
    t123456[4]=t5;
    t123456[5]=t6;
    WriteBytes(0x300,6,t123456);
}
void delay_ms(u32 t)
{
    u32 i;
    for(i=t;i>0;i--)
        Delay1ms();
}

STATUS status=Reset;
STATUS status_next=Reset;

void main_control()//call for every 10ms
{
    static u16 cWaitTemp=0;
    static u16 cStarting=0;
    static u16 cT12=0,cT6=0,cKey=0,c1S=0;
    static u32 cT34=0;
    switch(status)
    {
        case Reset:
            cWaitTemp=0;cT12=0;cT6=0;cKey=0;cT34=0,c1S=0;
            Motor1_OFF;Motor2_OFF;Motor3_OFF;Motor4_OFF;
            Pump1_OFF;Pump2_OFF;Pump3_OFF;
          if(cStarting++==10){
                if(!IsDebug){
                    Pump4=1;
                    update_allWork();
                    update_SetTemp();
                    update_t123456();
                }
            }else if(cStarting==15){
                Pump4=0;
                status_next=WaitForKey;
                cStarting=0;
            }
            break;
        case WaitForKey:
            if(Key)cKey=0;else cKey++;
            if(cKey>5){ cKey=0;status_next=WaitForTemp;    }
            break;
        case WaitForTemp:
            if(Temp > SetTemp)
            {
                status_next=Starting;cWaitTemp=0;Motor4_OFF;
                Pump1_ON;Pump2_ON;
                WaitACZero();
                Motor3_ON;Motor2_ON;
            }    else if(cWaitTemp++==10){WaitACZero();Motor4_ON;}
            
            if(Key)cKey=0;else cKey++;
            if(cKey>tKey*10){ cKey=0;status_next=Reset;    }
            
            break;
        case Starting:
            if(cStarting++==t5*10)
            {
                status_next=Started;cStarting=0;
                WaitACZero();
                Motor1_ON;
                Pump3_ON;
            };
            Test=~Test;
            break;
        case Started:
            /*閥門*/
            cT12++;
            if(cT12<t1){Pump1_ON;Pump2_OFF;}
            else if(cT12<(t1+t2)){Pump1_ON;Pump2_ON;}
            else if(cT12<(t1+t2+t1)){Pump1_OFF;Pump2_ON;}
            else if(cT12<(t1+t2+t1+t2)){Pump1_ON;Pump2_ON;}
            else cT12=0;
            /**/
            cT34++;
            if(cT34<t3*10)Pump3_ON;
            else if(cT34<(t3*10+t4*10*60*10))Pump3_OFF;
            else cT34=0;
            
            
            if(Key)cKey=0;else cKey++;
            if(cKey>tKey*10){ cKey=0;status_next=Stoping;    }

            if(Temp < SetTemp-5 && Motor4==1){WaitACZero();Motor4_ON;}
            else if(Temp > SetTemp && Motor4==0){Motor4_OFF;}
            /*work*/
            if(c1S++==10){allWorkTime++;c1S=0;}
            break;
        case Stoping:
            Motor1_OFF;
            Motor4_OFF;        //Pump1_OFF;Pump2_OFF;
          Pump3_OFF;        /*閥門*/
            cT12++;
            if(cT12<t1){Pump1_ON;Pump2_OFF;}
            else if(cT12<(t1+t2)){Pump1_ON;Pump2_ON;}
            else if(cT12<(t1+t2+t1)){Pump1_OFF;Pump2_ON;}
            else if(cT12<(t1+t2+t1+t2)){Pump1_ON;Pump2_ON;}
            else cT12=0;
            /**/
            Pump4=~Pump4;
            cT6++;
            if(cT6<t6*10);
            else {
                cT6=0;
                status_next=Reset;
                if(!IsDebug)save_allWork();
            }
            break;
        default:
            break;
    }
    status=status_next;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:584814 發表于 2020-1-9 16:30 | 只看該作者
最大的錯誤是一句注釋都沒有
回復

使用道具 舉報

板凳
ID:684474 發表于 2020-1-10 09:42 | 只看該作者
報的錯誤是什么?
回復

使用道具 舉報

地板
ID:158375 發表于 2020-1-10 09:52 | 只看該作者
次大的錯誤是一句都沒有說程序是干嘛的
回復

使用道具 舉報

5#
ID:681455 發表于 2020-1-10 10:52 來自觸屏版 | 只看該作者
生成hex的時候keil下面是怎么寫的
回復

使用道具 舉報

6#
ID:282850 發表于 2020-1-10 15:32 | 只看該作者
沒看見有錯誤,很好的程序和問題。
回復

使用道具 舉報

7#
ID:282850 發表于 2020-1-10 15:34 | 只看該作者
再次看,確定是內核壞了,換一個就好。
回復

使用道具 舉報

8#
ID:155507 發表于 2020-1-10 17:28 | 只看該作者
沒有原理圖、沒有實物,誰能知道怎么來找問題
寫程序要養成良好的備注習慣,不然別人怎么看的懂你的代碼  
你這個程序不完整,沒法給你看是哪里出問題了!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视视频在线观看入口直接观看 | 欧美一区二区三区久久精品 | www.久 | 午夜久久久久 | 国产一级在线观看 | 午夜a v电影 | 97av在线 | 欧美一级淫片免费视频黄 | 一级黄色片免费在线观看 | 能看的av网站 | 性生活毛片 | 久久精品小视频 | 精精国产xxxx视频在线 | 在线日韩欧美 | 在线观看国产91 | 99久久精品国产一区二区三区 | 99精品欧美一区二区蜜桃免费 | 日本特黄a级高清免费大片 国产精品久久性 | 毛片在线视频 | 精品国产免费一区二区三区五区 | 国产综合av | 久久免费小视频 | 久久久999精品 | 久久午夜影院 | 欧美午夜在线 | 日本在线看片 | 国产乱性 | 国产九九九 | 九一精品| 日韩国产精品一区二区三区 | 久久久噜噜噜www成人网 | 伊人春色成人 | 天天想天天干 | 亚洲a视频 | 欧美精品第三页 | 欧美一级二级视频 | 日韩欧美视频在线 | 免费一级毛片 | 国产午夜亚洲精品不卡 | 久久久久国产精品一区二区 | 欧美一区免费 |