專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
深圳市英銳恩科技有限公司(www.traavell.com)為單片機(jī)技術(shù)服務(wù)\開(kāi)發(fā)設(shè)計(jì)和產(chǎn)品代理商,授權(quán)MDT(麥肯 MICON)單片機(jī)A級(jí)代理商,MICROCHIP產(chǎn)品全系列單片機(jī)與模擬器件授權(quán)推廣
商。同時(shí)A級(jí)代理分銷NOVACAP、Syfer、Voltronics精密可調(diào)電容、DLI寬帶隔直微波電容,專注分銷AIC沛亨半導(dǎo)體(電源管理IC)、IR(場(chǎng)效應(yīng)管)。
如:
MDT2005、MDT10P05(完全兼容PIC16C54c、PIC16F54、CF745直接替換,不要任何硬軟與軟件修改)
特性:ROM:0.5K,腳位:18PIN,I/O:13PIN,復(fù)位時(shí)間極快.2V,低電壓工作.低功耗,溫度范圍寬。
MDT2010、MDT10P10(完全兼容PIC16C56A,直接替換,不要任何硬軟與軟件修改,媲美EMC78P156,HT48R06)
特性:ROM:1K,腳位:18PINI/O:13PIN,復(fù)位時(shí)間極快.2V,低電壓工作.低功耗,溫度范圍寬。
菜鳥(niǎo)學(xué)PIC單片機(jī)(二):LCD 時(shí)鐘 (功能設(shè)計(jì)過(guò)程中的致命bug)
結(jié)合昨天LCM的驅(qū)動(dòng)編寫過(guò)程,小弟今天準(zhǔn)備利用定時(shí)器用LCM來(lái)顯示時(shí)鐘.
呵呵,下午邊調(diào)變改,有些收獲和疑問(wèn),現(xiàn)一并寫出來(lái),請(qǐng)行家指點(diǎn).
功能很明確:利用TMR0實(shí)現(xiàn)精確定時(shí),_clock子程序更新時(shí)間,LCM顯示時(shí)間
但是,遇到了一些問(wèn)題:
1.在ICD和demo板上調(diào)試運(yùn)行,結(jié)果顯示應(yīng)為
HH MM SS
00:00:00
且ss對(duì)應(yīng)下的秒?yún)^(qū)字符應(yīng)該每1秒改變一次.但是,運(yùn)行的結(jié)果如下:
1) 參考本例的源程序,其他一切不變,只是預(yù)分頻為1:8(原來(lái)設(shè)計(jì)為1:16)
那么,應(yīng)該是每0.5秒變化一次,但是據(jù)小弟多次觀察,運(yùn)行的時(shí)候,SS的秒?yún)^(qū)
為每分鐘(人工大概估計(jì))計(jì)數(shù)一次,及秒表變成了分表,另外,在每分鐘里,SS區(qū)的字符會(huì)有2到3次調(diào)變
比如0x(x為當(dāng)前計(jì)數(shù)顯示值)變成24,一晃而過(guò),又恢復(fù)顯示0x.
(a)小弟仔細(xì)檢查定時(shí),轉(zhuǎn)換,顯示的程序流程,沒(méi)有發(fā)現(xiàn)為何沒(méi)半秒顯示計(jì)數(shù)變成了每分鐘顯示計(jì)數(shù)的原因;
(b)至于SS秒?yún)^(qū)的字符會(huì)跳變,小弟認(rèn)為可能是LCM的控制問(wèn)題.
2. 在主程序main中,loop循環(huán)中的第一條指令clrwdt會(huì)引起一些問(wèn)題:
main
nop
call _init ; 調(diào)用初始化子程序
call _disp1 ; 調(diào)用顯示字符" HH MM SS "的子程序
loop clrwdt ; ★★★注意!!該語(yǔ)句的功能,小弟很疑惑
call _clock ; 調(diào)用時(shí)鐘計(jì)算子程序
call _convert ; 調(diào)用時(shí)鐘的小時(shí),分,秒的BCD碼轉(zhuǎn)換子程序
call _disp2 ; 調(diào)用轉(zhuǎn)換后的小時(shí):分:秒字符的顯示子程序
goto loop
所引起的問(wèn)題如下:
1)首先,我在ICD燒錄時(shí),在option選項(xiàng)中是關(guān)掉WDT的;
2)若去掉該語(yǔ)句,程序仍然同前文1.所描述的情況,唯一變化的是,時(shí)間顯示區(qū)的字符跳變
從SS區(qū)換成HH區(qū),即小時(shí)區(qū)下的00會(huì)在分鐘之內(nèi),好幾次跳變成52.
3)以為是偶然,于是禁用和啟用該語(yǔ)句兩次,現(xiàn)象沒(méi)變.
小弟認(rèn)為,既然分頻器給了TMR0,燒錄時(shí)也關(guān)了WDT,那么,該語(yǔ)句所起的作用是什么呢?
3. 其實(shí)該程序存在一個(gè)致命的問(wèn)題,吃晚飯時(shí),小弟想到了癥結(jié)所在.
呵呵,小弟先不點(diǎn)出來(lái),愿意和大家一起商討解決的好辦法......
請(qǐng)各位PIC單片機(jī)愛(ài)好者看過(guò)來(lái)...