會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





Input Capture設定問題
新會員
註冊日期:
1月15日 10:32:26
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 0 / 0
離線
各位好
我的開發環境是(MPLAB X IDE v5.30 + MCC V3)
使用開發板(PIC24FJ256GA7 Curiosity Development Board)

想使用MCCP的 Input Capture 模式做一個簡單的計頻器


目前只是在MCCP的CALL BACK函數中
將前後兩次中斷的時間戳相減透過uart丟出來觀察


uint32_t time1=0,time2=0,diff=0;
void __attribute__ ((weak)) MCCP1_CAPTURE_CallBack(void)
{
time1=time2;
time2=MCCP1_CAPTURE_Data32Read();
diff=time2-time1;
printf("interarrival: %d\n",diff);
LED2_Toggle();
// Add your custom callback code here
}

uint32_t MCCP1_CAPTURE_Data32Read( void )
{
uint32_t captureVal = 0xFFFFFFFF;

/* get the timer period value and return it */
captureVal = CCP1BUFL;
captureVal |= ((uint32_t)CCP1BUFH <<16);
return(captureVal);
}

實驗時使用了波型產生器送出一個2Hz的方波
clock的基準是4MHz 我預期每個edge的中間會讓timer counter增加 1M

結果我得到的數字都非常小,在 0 30 61這三個數字輪流跳動
接下來測試將頻率設定20Hz 得到的數字就一直為0了

請問我對這個模組的設定或是理解有誤嗎

附加檔案:



jpg  MCCP設定.jpg (85.32 KB)
76397_5e1ec02427e0c.jpg 698X499 px

jpg  uart.jpg (71.37 KB)
76397_5e1ec1840bed0.jpg 668X545 px

1月15日 15:27:52
轉換PDF檔 列印


Re: Input Capture設定問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14946
等級: 73; EXP: 74
HP : 1091 / 1818
MP : 4982 / 83994
離線
你要不要先參考一下dsPIC30F 模組教材裡面的的 Input Capture 的頻率計數器的範例。先了解一下輸入頻率跟內部時脈的關係後,再換算一下所測量到的頻率。

1月15日 16:00:07
轉換PDF檔 列印


Re: Input Capture設定問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14946
等級: 73; EXP: 74
HP : 1091 / 1818
MP : 4982 / 83994
離線
還有補抓模組只有16位元的寬度,所以說你要注意一下會不會有overflow的現象。 1MHz 應該會超出計數範圍,要不要使用預除器來降頻。

1月15日 16:06:23
轉換PDF檔 列印


Re: Input Capture設定問題
新會員
註冊日期:
1月15日 10:32:26
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 0 / 0
離線
感謝回覆

我剛剛參考過那份文件之後 才知道還需要用Timer再製造一個參考時脈

因為我使用MCC來設定,裡面time base 選項內有FOSC/2
和我前面Timer中斷實驗使用的clock source是一樣的
而且也可以選擇32bit的timer mode
所以有點混淆 不確定怎樣設定才是正確的

另外想再請問一下參考資料中的
FREQ_Meter.c 內的FCY 註解中有提到
// 因為使用頻率為將外部 7.3728 MHz * 8 的模式 , 每一指令週期需 4 個 clock // 所以 FCY = (7.3728 * 8 / 4 ) MHz = 7372800* 2
這種資訊要從哪裡找到呢

還有這些實驗專案中使用的.h檔 要從哪邊下載呢 例如 incap.h

1月15日 18:02:46
轉換PDF檔 列印


Re: Input Capture設定問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14946
等級: 73; EXP: 74
HP : 1091 / 1818
MP : 4982 / 83994
離線
dsPIC30F 的 Input Capture Module 只有 16-bit 的抓取能力,可以分別使用 16-bit 的 Timer2 或 Timer3。

要被計算的輸入脈衝是要能配合 Timer 的技術頻率的,這是有一定的比率公式。輸入脈波時間慢相對的 Timer 的頻率較要變慢。

引用:
另外想再請問一下參考資料中的
FREQ_Meter.c 內的FCY 註解中有提到
// 因為使用頻率為將外部 7.3728 MHz * 8 的模式 , 每一指令週期需 4 個 clock // 所以 FCY = (7.3728 * 8 / 4 ) MHz = 7372800* 2
這種資訊要從哪裡找到呢


因為主頻率使用了8 倍頻的 PLL,輸出頻率會提高八倍。但執行週期是主頻率的 1/4 而已。

所以周邊時脈是: (Crystal Frequency x 8) / 4
這資料要參考 Data Sheet 的 Oscillator 的章節。

1月16日 13:50:36
轉換PDF檔 列印


Re: Input Capture設定問題
新會員
註冊日期:
1月15日 10:32:26
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 0 / 0
離線
感謝協助 我會再詳細閱讀文件

1月21日 11:08:02
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project