| 10 | 1/1 | 返回列表 |
| 查看: 1766 | 回復(fù): 9 | ||
愛(ài)蓉新蟲(chóng) (初入文壇)
|
[求助]
關(guān)于飛思卡爾單片機(jī)的TPM輸入捕捉功能 已有1人參與
|
|
找不到哪里可以請(qǐng)教一些關(guān)于單片機(jī)的知識(shí),發(fā)到這里不知道可不可以= = 用MC9S08JM60的板子寫(xiě)了個(gè)程序,目的是測(cè)兩個(gè)信號(hào)之間的時(shí)間差,想法是利用板子的兩個(gè)按鍵(PTBD4&PTBD5)來(lái)提供下降沿,按下按鍵,輸入電平從高變?yōu)榈,提供下降沿,利用TPM1的通道1和2來(lái)捕捉下降沿,分別利用兩個(gè)LED(PTBD0&PTBD1)來(lái)顯示進(jìn)入了中斷, 如果進(jìn)入中斷,則點(diǎn)亮對(duì)應(yīng)的LED。 這樣,通過(guò)兩次中斷,分別去讀對(duì)應(yīng)的計(jì)數(shù)器的值,可以計(jì)算出兩個(gè)信號(hào)(兩個(gè)下降沿)之間的時(shí)間差,應(yīng)該是一個(gè)很簡(jiǎn)單的程序,卻不知道哪里出了問(wèn)題,LED不會(huì)亮,應(yīng)該是沒(méi)進(jìn)中斷。 程序附在下面,希望好心的老師同學(xué)可以幫幫忙看看,謝謝。! #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */ void PTBDD_INIT(void); long i,j,c,x; void main(void) { DisableInterrupts;//關(guān)閉中斷 SOPT1=0x03;//關(guān)狗 PTBDD_INIT(); //對(duì)管腳初始化 x=TPM1SC; TPM1SC_TOF=0;//對(duì)TPM1SC溢出標(biāo)志清除 TPM1SC_TOIE=0; //TPM1中斷禁止 TPM1SC_CPWMS=0;//加法計(jì)數(shù)器方式 TPM1SC_CLKSB=0; //總線(xiàn)時(shí)鐘 TPM1SC_CLKSA=1; TPM1SC_PS0=0;//1分頻 TPM1SC_PS1=0; TPM1SC_PS2=0; TPM1CNT=0x0000;// TPM計(jì)數(shù)器清零 TPM1MOD=0x0000; //自由計(jì)數(shù)模式 TPM1C1SC_CH1F=0; TPM1C2SC_CH2F=0; TPM1C1SC_CH1IE=1; //1.2通道中斷使能 TPM1C2SC_CH2IE=1; TPM1C1SC_MS1B=0; //通道輸入捕捉 TPM1C1SC_MS1A=0; TPM1C2SC_MS2B=0; TPM1C2SC_MS2A=0; TPM1C1SC_ELS1B=1;//下降沿捕捉 TPM1C1SC_ELS1A=0; TPM1C2SC_ELS2B=1; TPM1C2SC_ELS2A=0; EnableInterrupts; /* enable interrupts */ /* include your code here */ for( ; ; ) { //__RESET_WATCHDOG(); /* feeds the dog */ } /* loop forever */ /* please make sure that you never leave main */ } void PTBDD_INIT(void){ PTBDD_PTBDD4=0; PTBDD_PTBDD5=0; PTBDD_PTBDD0=1; PTBDD_PTBDD1=1; PTBD_PTBD0=1; PTBD_PTBD1=1; } void interrupt 10 tpm_isr1(){ i=TPM1C1VH*256+TPM1C1VL; PTBD_PTBD0=0; TPM1C1SC=TPM1C1SC&0x48; //TPM1頻道1中斷標(biāo)識(shí)清除 } void interrupt 11 tpm_isr2(){ j=TPM1C2VH*256+TPM1C2VL; PTBD_PTBD1=0; TPM1C2SC=TPM1C2SC&0x48; //TPM1頻道2中斷標(biāo)識(shí)清除 } |
新蟲(chóng) (初入文壇)
金蟲(chóng) (小有名氣)

新蟲(chóng) (初入文壇)
金蟲(chóng) (小有名氣)

新蟲(chóng) (初入文壇)
新蟲(chóng) (初入文壇)
金蟲(chóng) (小有名氣)
|
一步一步來(lái)吧: 1. 每次按鍵的時(shí)候,用示波器或者萬(wàn)用表測(cè)量看高低電平是否正確 2. 如果上一步正確,在中斷中設(shè)置斷點(diǎn),看是否每次都能進(jìn)入中斷,如果不能進(jìn)入,則檢測(cè)IO口中斷配置是否有問(wèn)題 3. 如果上一步正確,那么繼續(xù)運(yùn)行的時(shí)候LED燈就應(yīng)該是常亮的。如果燈不亮,那么檢測(cè)單片機(jī)是否正確輸出了低電平。 進(jìn)一步應(yīng)該能確定問(wèn)題所在 |

新蟲(chóng) (初入文壇)
金蟲(chóng) (小有名氣)

| 10 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 招08考數(shù)學(xué) +4 | laoshidan 2026-03-20 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 306求調(diào)劑 +6 | chuanzhu川燭 2026-03-18 | 6/300 |
|
|
[考研] 求調(diào)劑 +6 | 十三加油 2026-03-21 | 6/300 |
|
|
[考研] 275求調(diào)劑 +6 | shansx 2026-03-22 | 8/400 |
|
|
[考研] 考研調(diào)劑 +4 | 來(lái)好運(yùn)來(lái)來(lái)來(lái) 2026-03-21 | 4/200 |
|
|
[考研]
|
酥酥魚(yú).. 2026-03-21 | 3/150 |
|
|
[考研] 一志愿重慶大學(xué)085700資源與環(huán)境總分308求調(diào)劑 +7 | 墨墨漠 2026-03-20 | 7/350 |
|
|
[考研] 求調(diào)劑 +3 | .m.. 2026-03-21 | 4/200 |
|
|
[考研] 0805材料320求調(diào)劑 +3 | 深海物語(yǔ) 2026-03-20 | 3/150 |
|
|
[考研] 085601調(diào)劑 358分 +3 | zzzzggh 2026-03-20 | 4/200 |
|
|
[考研] 332求調(diào)劑 +4 | ydfyh 2026-03-17 | 4/200 |
|
|
[考研] 考研調(diào)劑求學(xué)校推薦 +3 | 伯樂(lè)29 2026-03-18 | 5/250 |
|
|
[考研] 一志愿蘇州大學(xué)材料求調(diào)劑,總分315(英一) +5 | sbdksD 2026-03-19 | 5/250 |
|
|
[考研] 0817 化學(xué)工程 299分求調(diào)劑 有科研經(jīng)歷 有二區(qū)文章 +22 | rare12345 2026-03-18 | 22/1100 |
|
|
[考研] 081700化工學(xué)碩調(diào)劑 +3 | 【1】 2026-03-16 | 3/150 |
|
|
[考研] 一志愿福大288有機(jī)化學(xué),求調(diào)劑 +3 | 小木蟲(chóng)200408204 2026-03-18 | 3/150 |
|
|
[考研] 344求調(diào)劑 +6 | knight344 2026-03-16 | 7/350 |
|
|
[考研] 312求調(diào)劑 +8 | 陌宸希 2026-03-16 | 9/450 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] [導(dǎo)師推薦]西南科技大學(xué)國(guó)防/材料導(dǎo)師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|