• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: SMT計算周期後的結果資料處理?
#6
版主
版主


查看用戶資訊
這可能要配合軟體及示波器一起來除錯。

首先,請先檢測一下 ZCD_Out 的輸出波形與 AC 是不是同步的,因為 ZCD 會有一個 0.75V 的遲滯帶,所以請檢查 ZCD_Out 的方波輸出是否很乾淨?

2. Duty & Period 依你的應用所需是不是都要量測每一個輸入的週期? 可否需要週期時再測量或測量周期功能是在背景下完成的。
可以在 SMT1_PR_ACQ_ISR( ) 中斷函數裡加入一個 I/O Toggle Output 功能,進入中斷 I/O 腳輸出 High, 離開中斷前將 I/O 腳變成 Low 準位。這樣就可以了解,多久中斷一次,有沒有與 ZCD 的輸入同步,中斷處理花了多少時間? 有這些資訊才可以做出一個好的週期量測。

以上是我的建議。

發表於: 2021/4/29 11:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SMT計算周期後的結果資料處理?
#5
中級會員
中級會員


查看用戶資訊
正確量測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;
void SMT1_PR_ACQ_ISR(void)
{
    
    
// Disabling SMT1 period acquisition interrupt flag bit.
    
PIR8bits.SMT1PRAIF 0;
    
acqGate true;
    
freqHolder SMT1PR;
    
SMT1_ManualTimerReset();
}

發表於: 2021/4/28 19:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SMT計算周期後的結果資料處理?
#4
版主
版主


查看用戶資訊
參照:

ben.huang wrote:
感謝Ryan大
在您的範例中為何要把SMT Timer Period 設成0xFFFFF0呢?
SMT Timer Period真正的用途是?


1. 我忘記了,那應該是 MCC 自訂的數值,應不用理會它。
2. SMT Timer Period 是何? SMT 裡並沒有標示有此名稱的暫存器。如要硬指定的話,SMT1TMR 這 24-bit 的計數器是比較適合的。

發表於: 2021/4/20 14:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SMT計算周期後的結果資料處理?
#3
中級會員
中級會員


查看用戶資訊
感謝Ryan大
在您的範例中為何要把SMT Timer Period 設成0xFFFFF0呢?
SMT Timer Period真正的用途是?

發表於: 2021/4/20 11:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: SMT計算周期後的結果資料處理?
#2
版主
版主


查看用戶資訊
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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


SMT計算周期後的結果資料處理?
#1
中級會員
中級會員


查看用戶資訊
使用SMT去計算ZCD_out的Period time得出兩個byte的值(SMT1CPR)但隨時在變化,不知道這兩個byte的值要怎麼轉換成ms?

發表於: 2021/4/20 10:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

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... ]

教育訓練中心

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