DS1302時鐘芯片調(diào)試經(jīng)驗
這幾天,著手把以前用DS12C887時鐘芯片做的萬年歷,改成用DS1302來做,以前寫DS12C887的代碼時感覺蠻輕松,但是寫DS1302感覺有些棘手,在調(diào)試的過程中更是不順的種種。開始寫代碼,一開始用開發(fā)板做實(shí)驗,用LCD1602做顯示,這個還是很輕松就搞定了(一天過去了)。
然后自己用DS1302芯片焊了塊板子,然后用杜邦線連接到開發(fā)板上面進(jìn)行測試,不過LCD1602什么都沒有顯示,(以為程序有問題不停改來改去花了很多時間,然后才確定肯定是硬件問題而不是軟件問題,以為數(shù)據(jù)都沒有寫進(jìn)DS1302中), 經(jīng)過分析可能是開發(fā)板上面的某些芯片可能會對SPI的數(shù)據(jù)傳輸造成一些影響(一天過去了)
自己又焊了一塊單片機(jī)的板子,把LCD1602給放上去然后連接好DS1302,一上電時鐘開始走了,頓時感覺輕松了,結(jié)果仔細(xì)一看,時間全部都是亂的,我又開始懷疑是程序問題,我開始修改程序,但是怎么樣都沒有結(jié)果(感覺很久沒有寫程序,放這10多天的假已經(jīng)沒有感覺,感覺無從下手,很是郁悶),找不到問題只能又把LCD1602放到開發(fā)板上面去做測試,一試還是可以在開發(fā)板上面正常工作,難道是芯片的問題,或者是和晶振沒有接電容的關(guān)系,馬上開始查資料,換芯片,結(jié)果還是一樣,于是乎真的就傻眼了(一天過去了)
第二天一開始就先在百度上面搜原因和解決方法,最后也沒有收到一個解決的方法,我準(zhǔn)備在進(jìn)行一次測試,把LCD1602從開發(fā)板上門取下來,然后放到自己做的單片機(jī)板子上面,一上電,上面都沒有LCD1602亮的不亮,一看引腳,原來插錯了,于是就重新插,結(jié)果只有背光亮,屏幕沒有反應(yīng)了,試了幾次看樣子的果斷被燒壞了(感覺太背時了)。
一想就氣憤,調(diào)了這么久沒有結(jié)果還把東西燒了,覺得不爽還想繼續(xù),但是沒有LCD1602(這個感覺比較熟悉),只好硬著頭皮用LCD12864,還 是先在開發(fā)板上面做測試,結(jié)果屏幕一片空白,又開始了不斷修改程序,結(jié)果還是空白的說(一天又過去了),
已經(jīng)是第五天了,已經(jīng)快失去耐心了,決定將程序從頭到尾仔細(xì)進(jìn)行分析(這之間看了很多不同的人的不同程序),后來發(fā)現(xiàn)開發(fā)板的DS1302和 LCD12864的片選CS引腳重疊,仔細(xì)一想肯定是這個問題,然后將cs引腳斷開,終于程序開始正常運(yùn)行和顯示了(感覺對這個又開始有那么一點(diǎn)感覺了),開始把東西移植到焊接的板子上面,結(jié)果讀回來的值和LCD1602的一樣,我想了很久沒有想到方法,只能將它顯示的數(shù)字都抄下來,看看是否有規(guī)律可尋,將數(shù)據(jù)改寫成2進(jìn)制,左看右看也沒有看出個所以然來。(一天真的是很快)
晚上睡覺前想了很久很久,還是沒有一個可行的方案,早上一開始時就想還是從百度好好找找答案吧,看了好幾篇帖子,還是沒有結(jié)果,不過還是在不停的找著, 頓時感覺就是他了,看之后就更加肯定了,他顯示出的問題和我的一模一樣,看樣子還難倒不少人,而且有些是高手也被這個問題難住了,我馬上把線改短,一試就OK了....