|
我的T12代碼修改:1. sys_monitor.c 文件里Normal_SetTemp();
這個(gè)函數(shù)的最小溫度設(shè)定值錯(cuò)誤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在編譯的時(shí)候會(huì)將0xfd的字符(有些漢字含該字符的內(nèi)碼)過濾,而導(dǎo)致程序出錯(cuò).特別是在做液晶漢字顯示時(shí)。
對(duì)于受到影響的漢字你可以直接用兩個(gè)\x轉(zhuǎn)義符把編碼直接寫上�;蛘哳~外寫一個(gè)\xFD補(bǔ)上被濾掉的。例如 “數(shù)字電路”這個(gè)字符串直接寫的話 “數(shù)”會(huì)出問題。那么你可以寫 “數(shù)”的編碼是0xCA 0xFD"\xCA\xFD字電路"或者寫"數(shù)\xFD字電路"。
4. Key_Scan(); 屏蔽按鍵掃描程序,避免了用編碼器調(diào)節(jié)溫度時(shí),烙鐵嘴號(hào)號(hào)跟著溫度一起變得的bug
5,外部中斷4關(guān)掉沒用
6,Set 改為有符號(hào)數(shù),這樣就可以限制調(diào)溫0~最大值內(nèi)變化,不會(huì)往小處調(diào)溫度時(shí)調(diào)到0度就會(huì)截至,不會(huì)一下就變成最大值
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)改為L(zhǎng)ib\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,“分”漢字庫(kù)重復(fù) Beat_GUI\img.c(829) : "分",95*/ 刪掉一個(gè)
14,LQ12864.C\434行 OLED_Set_Pos(x , y); 多余的刪掉
15,測(cè)室溫部分的上偏電阻由75k改為10k經(jīng)典配置,以使溫度顯示穩(wěn)定,不亂跳。
//NTC溫度表,依次為-10℃~50℃對(duì)應(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
}; |
評(píng)分
-
查看全部評(píng)分
|