|
我的T12代碼修改:1. sys_monitor.c 文件里Normal_SetTemp();
這個函數(shù)的最小溫度設(shè)定值錯誤if(IronTemp.Set > MENU_DATA_Table.Temp_s.Max_Temp+50)
改為if(IronTemp.Set <50)
2. //限制通道范圍
void Channel_SetTemp(void)
if(IronTemp.Chn > 100)
{
IronTemp.Chn = 0;
}
改為 if(IronTemp.Chn<0)
{
IronTemp.Chn = 0;
}
3. Keil的編譯bug 如:str_mtitle[6].str = "控制參書"; 改為“控制參數(shù)\0xFD”
Keil過濾0xfd字符的bug引起的。keil c51在編譯的時候會將0xfd的字符(有些漢字含該字符的內(nèi)碼)過濾,而導(dǎo)致程序出錯.特別是在做液晶漢字顯示時。
對于受到影響的漢字你可以直接用兩個\x轉(zhuǎn)義符把編碼直接寫上�;蛘哳~外寫一個\xFD補(bǔ)上被濾掉的。例如 “數(shù)字電路”這個字符串直接寫的話 “數(shù)”會出問題。那么你可以寫 “數(shù)”的編碼是0xCA 0xFD"\xCA\xFD字電路"或者寫"數(shù)\xFD字電路"。
4. Key_Scan(); 屏蔽按鍵掃描程序,避免了用編碼器調(diào)節(jié)溫度時,烙鐵嘴號號跟著溫度一起變得的bug
5,外部中斷4關(guān)掉沒用
6,Set 改為有符號數(shù),這樣就可以限制調(diào)溫0~最大值內(nèi)變化,不會往小處調(diào)溫度時調(diào)到0度就會截至,不會一下就變成最大值
typedef struct
{
unsigned int Chn;
signed int Set; //
//unsigned int Feedback; //
//unsigned int Display; //
float Feedback;
float Display;
}IRONTEMP_s;
7,if(x>122){x=0;y++;}改為if(x>(128-CHINESE_WIDE)){x=0;y+=2;}
8,Lib\LQ12864.c(296) : if(x>120)改為Lib\LQ12864.c(296) : if(x>112)
9,Lib\LQ12864.c(427) :ii += 1;
Lib\LQ12864.c(490) : ii += 1;
Lib\LQ12864.c(363) : ii += 1;去掉
10,Lib\LQ12864.c(238) : if(x>122){x=0;y++;}
Lib\LQ12864.c(344) : if(x>122){x=0;y++;}
改為if(x>120){x=0;y++;}
11,\Lib\LQ12864.c(216) : if(x>128){x=0;y++;}
改為if(x>122){x=0;y++;}
12,Lib\LQ12864.c(216) : if(x>128){x=0;y++;}改為if(x>120){x=0;y++;}
13,“分”漢字庫重復(fù) Beat_GUI\img.c(829) : "分",95*/ 刪掉一個
14,LQ12864.C\434行 OLED_Set_Pos(x , y); 多余的刪掉
15,測室溫部分的上偏電阻由75k改為10k經(jīng)典配置,以使溫度顯示穩(wěn)定,不亂跳。
//NTC溫度表,依次為-10℃~50℃對應(yīng)的ADC值
unsigned int code NTCTAB[61] =
{867,860,852,844,836,828,820,811,802,793,784,774,765,755,745,734,724,714,703,692,681,670,659,
648,637,625,614,603,591,580,568,557,545,534,523,512,500 ,489,478,467,456,446,435,424,414,404,
394,384,374,364,355,346,337,328,319,310,302,294,286,278,270
}; |
評分
-
查看全部評分
|