Re: SMT計算周期後的結果資料處理?
|
||||
---|---|---|---|---|
中級會員
|
正確量測ZCD_out週期是否如下
Clock select FOSC/4 Prescaler 1:8 input period = 1us 所以是中斷得到的SMT1PR*1us = ZCD_out週期嗎? 實驗結果SMT1PR每次抓到的值都不一樣 無法取得AC頻率 ZCD輸入為AC 115VAC 請幫忙看看哪裡有錯 謝謝
unsigned int freqHolder = 0;
發表於: 2021/4/28 19:01
|
|||
|
Re: SMT計算周期後的結果資料處理?
|
||||
---|---|---|---|---|
版主
|
參照:
1. 我忘記了,那應該是 MCC 自訂的數值,應不用理會它。 2. SMT Timer Period 是何? SMT 裡並沒有標示有此名稱的暫存器。如要硬指定的話,SMT1TMR 這 24-bit 的計數器是比較適合的。
發表於: 2021/4/20 14:30
|
|||
|
Re: SMT計算周期後的結果資料處理?
|
||||
---|---|---|---|---|
中級會員
|
感謝Ryan大
在您的範例中為何要把SMT Timer Period 設成0xFFFFF0呢? SMT Timer Period真正的用途是?
發表於: 2021/4/20 11:56
|
|||
|
Re: SMT計算周期後的結果資料處理?
|
||||
---|---|---|---|---|
版主
|
SMT1CPR 量到的是週期 (Period)
SMT1CPW 量到的是 Duty 不管是周期或是 Duty 的測量都是使用 SMT1TMR 做為計時的依據來測量 SMT1_signal 的輸入訊號。在 SMT1_signal 的每個上升緣時做週期與 Duty 的測量。可以在 SMT1PRAIF 中斷產生時在將週期與 Duty 的值取出並存在變數裡在主程式裡取作計算,離開中斷前再將 SMT1TMR 清除做為下一個周期的計數。 因為計時依據是以 SMT1TMR 為主,這時你必須知道 SMT1TMR 的輸入時間為多少(頻率)。假設最簡單的算式是 SMT1TMR 的計時輸入是 1uS 的話。如果在中斷裡量測到的 STM1CPR 的計數數值是 34000 的話。那就用 1uS x 34000 = 34000uS 如果要換算成 mS 顯示的話。那就需要轉換成 ASCII Code 後自行補上小數點。
發表於: 2021/4/20 11:24
|
|||
|
SMT計算周期後的結果資料處理?
|
||||
---|---|---|---|---|
中級會員
|
使用SMT去計算ZCD_out的Period time得出兩個byte的值(SMT1CPR)但隨時在變化,不知道這兩個byte的值要怎麼轉換成ms?
發表於: 2021/4/20 10:51
|
|||
|