看板 Electronics 關於我們 聯絡資訊
請問各位專家,我目前想要用ECAP來做零點偵測, 我測試的方法是使用訊號產生器,產生一個方波給ECAP 然後當ECAP讀到HIGH時,GPIO1為HIGH, 讀到LOW時,GPIO1為LOW。 但是我實際執行時,卻只讀的到HIGH,GPIO1就一直保持高電位 好像沒有偵測到進ECAP那個方波的下降點,程式如下,麻煩高手幫解決 初始化 void InitECAP(void) { asm(" EALLOW"); ECap1Regs.ECEINT.all=0; ECap1Regs.ECCLR.all=0xFFFF; ECap1Regs.ECCTL1.bit.CAPLDEN=0; // Disable CAP1-CAP4 register loads ECap1Regs.ECCTL2.bit.TSCTRSTOP=0;// Make sure the counter is stopped ECap1Regs.ECCTL2.bit.CAP_APWM=0; ECap1Regs.ECCTL2.bit.CONT_ONESHT=0; ECap1Regs.ECCTL2.bit.STOP_WRAP=1; ECap1Regs.ECCTL1.bit.CAP1POL=0;// Rising edge ECap1Regs.ECCTL1.bit.CAP2POL=1;// Falling edge ECap1Regs.ECCTL1.bit.CAP3POL=0;// Rising edge ECap1Regs.ECCTL1.bit.CAP4POL=1;// Falling edge ECap1Regs.ECCTL1.bit.CTRRST1=1; ECap1Regs.ECCTL1.bit.CTRRST2=1; ECap1Regs.ECCTL1.bit.CTRRST3=1; ECap1Regs.ECCTL1.bit.CTRRST4=1; ECap1Regs.ECCTL2.bit.SYNCI_EN=0; //Disable sync-in option ECap1Regs.ECCTL2.bit.SYNCO_SEL=3; //Disable sync out signal ECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable capture units ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Start Counter ECap1Regs.ECEINT.bit.CEVT2 = 3; // 2 events = interrupt PieCtrlRegs.PIEIER4.bit.INTx1=1; IER |= M_INT4; asm(" EDIS"); } 中斷副程式 interrupt void ECAP1_INT_ISR(void) // PIE4.1 @ 0x000D70 ECAP1_INT (ECAP1) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group if( ECap1Regs.CAP1); { GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1; // Toggle the pin } if (ECap1Regs.CAP2); { GpioDataRegs.GPATOGGLE.bit.GPIO1 = 0; // Toggle the pin } ECap1Regs.ECCLR.bit.CEVT1=1; ECap1Regs.ECCLR.bit.CEVT2=1; ECap1Regs.ECCLR.bit.CEVT3=1; ECap1Regs.ECCLR.bit.CEVT4=1; ECap1Regs.ECCLR.bit.INT=1; ECap1IntCount = 0 ; asm (" ESTOP0"); // Emulator Halt instruction while(1); } 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.43.71 ※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1409983272.A.AD2.html ※ 編輯: lin3365 (140.124.43.71), 09/06/2014 14:02:53
beggerchou: 使用ECAP這根腳有沒有用電阻PULL-UP或PULL-LOW? 09/06 15:32
lin3365: 我是直接從訊號產生器給ecap這根腳 沒接電阻 09/06 15:40
beggerchou: 數位輸入腳偵測不要讓腳位處於float狀態 還有記得要 09/07 09:26
beggerchou: 跟訊號產生器共地 09/07 09:27