Hello,
I've been trying to setup ECAP1 in delta-mode to capture a square signal, but the capture events are not changing, I only read 0, could you have a look at the code below please, maybe you can spot something?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_ECAP0_1_2, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);//Select Pin E4 ECAP1/* ECAP1 */HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) & (~(SYSCFG_PINMUX1_PINMUX1_31_28))) | (SYSCFG_PINMUX1_PINMUX1_31_28_ECAP1 << SYSCFG_PINMUX1_PINMUX1_31_28_SHIFT);ECAPCaptureLoadingEnable(SOC_ECAP_1_REGS);ECAPOperatingModeSelect(SOC_ECAP_1_REGS, ECAP_CAPTURE_MODE);ECAPPrescaleConfig(SOC_ECAP_1_REGS, 0);//no prescaleECAPCapeEvtPolarityConfig(SOC_ECAP_1_REGS, 1, 1, 1, 1);//rising, rising, rising, rising edges so that after 3 rising edges I have full rotationECAPCaptureEvtCntrRstConfig(SOC_ECAP_1_REGS, 1, 1, 1, 1 );//reset counter each time rising edge is foundECAPContinousModeConfig(SOC_ECAP_1_REGS); //set ecap in continuous mode to measure speed continuouslyECAPIntDisable(SOC_ECAP_1_REGS, ECAP_CEVT1_INT | ECAP_CEVT2_INT | ECAP_CEVT3_INT | ECAP_CEVT4_INT | ECAP_CNTOVF_INT | ECAP_PRDEQ_INT | ECAP_CMPEQ_INT);ECAPSyncInOutSelect(SOC_ECAP_1_REGS, ECAP_SYNC_IN_DISABLE, ECAP_SYNC_OUT_DISABLE);ECAPCounterConfig(SOC_ECAP_1_REGS, 0);//capture time base =>reset ecapECAPCounterControl(SOC_ECAP_1_REGS, ECAP_COUNTER_FREE_RUNNING);//timer base counter to increase |
Thank you in advance, |
David. |