[ݳXȲέp


[求]推薦入門時鐘ic

非8051系列的單晶片軟硬體請在此區討論(CPU介面周邊,或MICRO CHIP等....)

版主: charlesliao

[求]推薦入門時鐘ic

文章andy50223 發表於 週一 1月 27, 2014 6:21 pm

小弟最近在做一些小玩具
其中一個功能是時鐘
而因為利用C語言寫單晶做時鐘的話無法準確的計數
而之前聽到有時鐘IC
但因為從來沒碰過
想請站上的前輩推薦一下有哪些IC比較適合使用
不論資料是串或併聯
只要可以有時間的訊號(時 分 秒)都可以
在此先感謝前輩們的推薦
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週二 1月 28, 2014 11:31 am

> 而因為利用C語言寫單晶做時鐘的話無法準確的計數
為蝦咪?和 C 有啥關係呢?
如果是 crystal 不夠準,換成時鐘 IC 也會有相同的問題吧!
市電 60Hz 亦可參考,早年很多時鐘就是這樣做出來的。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週二 1月 28, 2014 1:59 pm

xaudio 寫:> 而因為利用C語言寫單晶做時鐘的話無法準確的計數
為蝦咪?和 C 有啥關係呢?
如果是 crystal 不夠準,換成時鐘 IC 也會有相同的問題吧!
市電 60Hz 亦可參考,早年很多時鐘就是這樣做出來的。


因為主程式的部分要執行其他的動作
例如點矩陣掃描與顯示的控制
也是有想過抓555輸入的1Hz訊號
只是怕當如果時鐘進入背景模式(點矩陣顯示其他資料)的時候會造成無法持續計數的問題
還是小弟的功力太弱無法達到並序執行的效果 :cry:
還請Xaudio前輩指導一下
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週二 1月 28, 2014 2:16 pm

這個還不必牽涉 multithreading,計數的工作放在中斷就萬無一失了。
每次中斷遞增計數,主程式可以隨時讀取。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週二 1月 28, 2014 2:39 pm

謝謝Xaudio前輩
那如果放在中斷那麼程式其他運算的行數是否會影響到中斷發生的時間呢@@?
比較怕假如CODE太長(單晶為串序執行)會延遲到中斷的發生時間
會有這樣的疑慮嗎?
另外中斷的部分是用timer中斷對吧!?
(我是用C寫PIC18F4520做控制的)
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週二 1月 28, 2014 2:52 pm

應該說中斷會影響前景程式的執行時間如 delay loop,因為中斷優先執行。
時脈可用 system clock 也可以外接。
這種計數工作一般很簡短,事實上你可以練一下功,把 LED 和鍵盤都做成中斷驅動。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週二 1月 28, 2014 4:39 pm

謝謝Xaudio前輩
看來過年回鄉下有功課可做了 :D
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

PIC C18 timer中斷

文章andy50223 發表於 週日 2月 09, 2014 4:30 pm

想請問一下前輩們

MCU:PIC18F4520
軟體:MPLAB IDE 8.90
語言:C語言

假如我用timer1做為中斷利用外掛的32.768KHz做為震盪頻率
我在下WriteTimer1(tmr1_val)的函數指令時
如果照直接思考的一秒中斷一次(tmr1_val=0X8000)
這樣似乎會照成主程式只能動一次後卻無法讀取timer1中斷中所改變的變數的值
是因為tmr1_val所跑的時間太長所造成的嗎?
假如說我改變tmr1_val的值讓中斷發生的頻率增加
另外增加一個類似儲頻的判斷式讓我要達到的時鐘功能可以正常運作
這樣可行嗎?
假如中斷發生的頻率越快是不是可以達到越準確的時間計數?
如果是這樣外部的石英晶體是不是可以換頻率更高的?
P.S.下面附上電路圖
謝謝
.jpg
電路圖
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週日 2月 09, 2014 6:18 pm

石英晶體的準確性分兩方面,一是出廠誤差,一是溫度係數。
切割方式不同頻率特性也不一樣,32768Hz 常用於 RTC,誤差小但容易受溫度影響。
http://www.seraphim.com.tw/upfiles/c_su ... 074072.pdf

振盪用 timer / counter 硬體除頻產生中斷,接下來才是軟體除頻 (不只一個)。
中斷頻率要配合 LED 和鍵盤掃描速率,後面軟體除頻產生秒、分、時、日、月、年。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週二 2月 11, 2014 1:09 am

xaudio 寫:
振盪用 timer / counter 硬體除頻產生中斷,接下來才是軟體除頻 (不只一個)。
中斷頻率要配合 LED 和鍵盤掃描速率,後面軟體除頻產生秒、分、時、日、月、年。


意思是指我中斷的頻率要跟我掃描的頻率一樣嗎??
我在MBI5026(16位元串列傳輸恆流控制 負責點矩陣的資料傳送)
這個部分跟點矩陣位置掃描(ABCD訊號腳接到74238)的部分
中間有用到DELAY副程式的部分
這樣會因為程式的長度而影響到掃描頻率跟資料傳送頻率
這樣的話是需要再加上另一個timer中斷做這個部分嗎?
還是可以用示波器量出頻率之後再把相對應的頻率計算出後填到writetimerX()的函數中?
謝謝
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週二 2月 11, 2014 7:54 am

假設 LED 矩陣為 8 x 8,每秒更新 25 次,中斷頻率 = 8 x 25 = 200Hz。
第 1 次中斷更新第 1 組 8 點,第 2 次中斷更新第 2 組 8 點 ... 第 8 次中斷更新第 8 組 8 點。
需要設一個 0~7 的計數器記錄更新位置,中斷程式避免乘除法,update = (update + 1) & 7。
LED 掃描 25 次就是 1 秒 (中斷 200 次),時間也在中斷程式計算。

用這種架構 LED 掃描在背景執行,寫好你會發現 delay loop 全都不見了。
主程式做完硬體初始化之後就閒著無事,多出來的 CPU time 是很好用的,想做什麼就做什麼。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週二 2月 11, 2014 11:58 pm

謝謝Xudio前輩
delay loop真的全部不見了 :D
只是我還有一個小問題
是把矩陣掃描跟時鐘計數放在同一個timer中斷嗎?
我現在把點矩陣的掃描跟時鐘的計數放在同一個timer中斷
我的中斷計數為16個計數
中斷頻率=32768/16=2048Hz
所以當中斷2048次之後會增加一秒
只是實測的時候發現當我利用碼表計算時間每當電路增加10秒時碼表的計數已經到12秒了(手邊沒示波器)
是因為我把時鍾計數跟掃描放在同一個中斷的關西嗎??
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週三 2月 12, 2014 11:29 am

寫程式的功力還不錯嘛! :D
時間誤差太大了,正常情況一天頂多幾秒而已,我想可能的原因有兩個。

最可能的還是 timer / counter 設定不正確,多檢查幾次。(每個人都有腦筋不清楚的時候)

其次是受雜訊影響,振盪電路相當敏感,佈線很重要。
電路板是自己 layout 的還是萬用板 (手工搭棚)?
手工搭棚比較容易出問題,整理一下電線,看看 bypass 電容位置是否合適。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

Re: [求]推薦入門時鐘ic

文章andy50223 發表於 週四 2月 13, 2014 1:25 pm

謝謝Xaudio前輩
我是用雕刻機做的板子@@
不知道會不會因為佈線影響到震盪
這幾天出門上課
等回家再仔細研究一下 :)
andy50223
 
文章: 99
註冊時間: 週三 12月 08, 2010 7:38 pm
來自: Taichung,Taiwan

Re: [求]推薦入門時鐘ic

文章xaudio 發表於 週四 2月 13, 2014 2:11 pm

之前沒有細看電路,剛剛才研究了一下,LED 矩陣是 (16 + 16) x 16 吧!
中斷頻率 2048Hz 換算 Frame Rate = 128FPS。
不需要這麼高的速度,算法似乎有問題。
32FPS 應該夠快了,中斷頻率 = 16 * FPS = 16 * 32 = 512Hz。
xaudio
 
文章: 1843
註冊時間: 週六 12月 11, 2010 1:51 am

下一頁

回到 其他類單晶片--相關的軟硬體討論區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客