• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (Eigen)




Re: 16F685無法校準TMR1問題(續)
#1
資深會員
資深會員


一、用32768,一般就是來數 2秒、1秒、0.5秒、0.25秒

別用 32768 來數 0.1 0.2 0.3秒之類 ,自找麻煩。

二、要數0.1秒、0.2秒 用 osc 來數,別自找麻煩外掛 32768

三、振盪器一定有誤差,但是 ppm 等級,一年誤差是以秒計。

誤差太多,不是振盪器壞了,就是程式有bug。

bug 是依你程式產生的,而不是依你的想像力。

發表於: 2023/5/12 16:38
頂部


Re: 16F685一直無法校準TMR1
#2
資深會員
資深會員


程式沒有寫的很仔細,原理看的懂即可。

32768 數65536 = 2sec 中斷一次

如果要 1sec 中斷一次

tmr1_isr:
bcf PIR1,TMR1IF
bsf tmr1h,7

如果要 0.5sec 中斷一次
bcf PIR1,TMR1IF
bsf tmr1h,7
bsf tmr1h,6


這樣候做法最簡單。

如果你要中斷特定時間,

那就要

tmr1_isr:
bcf pri1,tmr1if

bcf t1con,tmr1on :停止計數

movlw 數值_LOW
addwf TMR1L,F

BTFSC STATUS,C ;要對稱,無論有無C,這段的執行時間都是四個cycle
MOVLW 數值_HIGH+1
BTFSS STATUS,C
MOVLW 數值_HIGH

這個部份用c 是很困難的,不確定執行的指令是否有刻意浪費時間。

addwf tmr1h,f

bcf t1con,tmr1on :重新計數 從off 譬 on 這 8個cycle 也要納入時間考量 ,你設定的數值才會是『準』的 ,用c 你很難估這段時間



直接填tmr1l tmr1h 時間幾乎肯定會錯。

發表於: 2023/4/5 17:17
頂部


Re: 16F685一直無法校準TMR1
#3
資深會員
資深會員


參照:

if(PIR1.TMR1IF){
TMR1H=T1HVAL;
TMR1L=T1LVAL;
PIR1.TMR1IF=0;
//其他動作...
}


這種寫法就會讓時間錯亂~~
除非你都有沒其它『中斷源』了

不能直接改 tmr1h tmr1l ,程式不是依你想像的方式在運作

發表於: 2023/3/31 22:22
頂部


Re: 16F685一直無法校準TMR1
#4
資深會員
資深會員


32768hz 的osc 如果真的這麼爛,那現在的電子錶是如何做到這麼準的?

所以,真的很不準?還是你程式有bug而不自知?

就我的經驗,程式去修改 TMR1H,TMR1L ,不讓系統自己跳,有很大的機率會讓時間錯亂~~

除示你能完全掌握每行指令的時間,且時間一致,一般人不學 asm ,不專精這塊,很難會準的。

程式並不是以『你以為』的方式的跑,而是code 一行一行往下跑。

發表於: 2023/3/30 0:21
頂部


Re: 16F685斷電EEPROM內容就毀損
#5
資深會員
資深會員


eeprom 不容易壞

所以最有可能的情況是 插拔的過程中,程式執行了讀寫 eeprom 的程式。

一般對策就是在開機時加入延時ex: 送電後delay 1sec 後才開始執行

這樣就不會插拔電源時造成程式誤動作。

發表於: 2022/8/26 19:04
頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#6
資深會員
資深會員


long long time ago, 我用 pic 一個帶lcd 的簡易demo board ,做過一個 測速器

單純用16f pic mcu,pwm輸出給 ir led, 再由另一隻pin 接ir 接收器,

從反射回來的波形,可以精確量測0~99999 rpm。

(實測過 20000rpm,在4000rpm的5葉片上,都貼上反射鋁箔,反射的頻率就會變成5倍,利用這樣的方式,模擬出 20000rpm的機器,驗證程式)

當時主要是要做 led 恒溫控制,要監控/測試 散熱風扇的轉速變化/性能。

市售的測速器無法接電腦記錄,只好自己動手做。



以6000 rpm為例, 相當於 1秒 100次,=10ms 一個pulse

以60000 rpm為例,相當於1秒 1000次,=1ms 1個pulse

16次= 16ms 處理一次。不是什麼大問題

但是 240rpm, =1秒4次 一次250ms

如果抓 16次,就要 4sec。這時就要調整 capture 的數量。




實作羅輯並不難

time0_isr{
定時觸發 uart 將資料丟出。
}


32768 osc 輸入 timer1
time1_isr{
timer1 中斷,表示2秒內沒有軟體重置計數器 =>轉速為0

capture prescale =1, 2秒=>理論可抓到 >30rpm
}

capture_isr{

reset timer1 (timer1=0)( 這要以asm 寫,才能夠精確計算重置timer1的誤差)

跟據 capture prescale 調整ccpr的值,然後輸出顯示。 (用左移,計算出一個 pulse = 多少 timer1)

更新 time0_uart 的資料 (利用 定時器,定時輸出 轉速值)


跟據 capture的時間,調整 capture prescale
if bit7=1 or bit6=1 capture prescale =1
else if bit5=1 capture prescale =4
else capture prescale =16

}

發表於: 2021/5/27 14:22
頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#7
資深會員
資深會員


long long time ago, 我用 pic 一個帶lcd 的簡易demo board ,做過一個 測速器

單純用16f pic mcu,pwm輸出給 ir led, 再由另一隻pin 接ir 接收器,

從反射回來的波形,可以精確量測0~99999 rpm。

(實測過 20000rpm,在4000rpm的5葉片上,都貼上反射鋁箔,反射的頻率就會變成5倍,利用這樣的方式,模擬出 20000rpm的機器,驗證程式)

當時主要是要做 led 恒溫控制,要監控/測試 散熱風扇的轉速變化/性能。

市售的測速器無法接電腦記錄,只好自己動手做。



以6000 rpm為例, 相當於 1秒 100次,=10ms 一個pulse

以60000 rpm為例,相當於1秒 1000次,=1ms 1個pulse

16次= 16ms 處理一次。不是什麼大問題

但是 240rpm, =1秒4次 一次250ms

如果抓 16次,就要 4sec。這時就要調整 capture 的數量。




實作羅輯並不難

time0_isr{
定時觸發 uart 將資料丟出。
}


32768 osc 輸入 timer1
time1_isr{
timer1 中斷,表示2秒內沒有軟體重置計數器 =>轉速為0

capture prescale =1, 2秒=>理論可抓到 >30rpm
}

capture_isr{

reset timer1 (timer1=0)( 這要以asm 寫,才能夠精確計算重置timer1的誤差)

跟據 capture prescale 調整ccpr的值,然後輸出顯示。 (用左移,計算出一個 pulse = 多少 timer1)

更新 time0_uart 的資料 (利用 定時器,定時輸出 轉速值)


跟據 capture的時間,調整 capture prescale
if bit7=1 or bit6=1 capture prescale =1
else if bit5=1 capture prescale =4
else capture prescale =16

}

發表於: 2021/5/27 14:22
頂部


Re: SAME54 - 請教測量外部輸入的方波頻率
#8
資深會員
資深會員


頻率 = plus / △t

一般人的羅輯是 一秒幾次

機器的運作則是 χ個plus 要幾秒。 χ 和輸入的頻率有關

輸入的頻率慢,χ 大 會導致反應太慢 ,

χ 小,在頻率快的情況下,又會一直計算。


你的羅輯一樣是 一秒幾次

發表於: 2021/5/25 9:44
頂部


Re: web:bit 和 bbc micro:bit 有什麼不同?
#9
資深會員
資深會員


我也從沒聽過,是前天小朋友在問,我才第一次聽到。

基本上我是不反對小朋友學這些 Hardware/firmware/software

只是這套 web:bit ,我稍稍餵狗查了一下,發現應該是從 bbc micro:bit 改來的

而這些的原形是 arduino,只是在設定操作的sotware上更加人性化,更適合初學者

這讓我想起小學玩過的『動動腦』電子玩具, micro:bit 基本上就是這個世代的 『動動腦』

只是這和我用 鍵盤一個字一個字寫 asm 相去甚遠。

要玩我手上有一堆 demoboard ,但是小孩不適合也不感辦。

想了解一下,有沒有人對 mirobit webbit 這有較深入的研究。

(我是想直接從 英國買套件回來,怕和現在台灣的 web bit 不相容,1000多元的玩具,真的不貴)

發表於: 2020/5/8 17:03
頂部


web:bit 和 bbc micro:bit 有什麼不同?
#10
資深會員
資深會員


web:bit 和 bbc micro:bit 有什麼不同?

小朋友現在電腦課在上 web:bit,我稍微上網查一下

發現這和 bbc micro:bit 很類似

有高手了解這兩套有什麼同異嗎?

大家對現在國中電腦課上這種產品有什麼看法?

發表於: 2020/5/8 12:21
頂部



(1) 2 3 4 ... 139 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------