📄 example_280xecap_apwm.c
字号:
#include "DSP280x_Device.h" // DSP280x Headerfile Include File
#include "DSP280x_Examples.h" // DSP280x Examples Include File
// Global variables
Uint16 direction = 0;
Uint32 TSt1=0x00000000;
Uint32 TSt2=0x00000000;
Uint32 TSt3=0x00000000;
Uint32 TSt4=0x00000000;
Uint32 period1=0x00000000;
Uint32 period2=0x00000000;
Uint32 period3=0x00000000;
void main(void)
{
InitSysCtrl();
InitECap1Gpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
ECap1Regs.ECCTL2.bit.CAP_APWM=0; // Disable APWM mode
ECap1Regs.CAP1 = 0x00000000; // Set CAP1 innitial value
ECap1Regs.CAP2 = 0x00000000; // Set CAP1 innitial value
ECap1Regs.CAP3 = 0x00000000;
ECap1Regs.CAP4 = 0x00000000;
ECap1Regs.ECCLR.all = 0x0FF; // Clear pending interrupts
ECap1Regs.ECCTL1.all=0xc100; //设置对外部输入时钟预不分频
ECap1Regs.ECCTL2.all=0x0097;
ECap1Regs.ECEINT.all=0x003E; //cap1-4使能中断且溢出中断使能
ECap1Regs.ECFLG.all=0x003E;
for(;;)
{
do
{ }
while(ECap1Regs.ECFLG.bit.CEVT1==0);
TSt1=ECap1Regs.CAP1;
ECap1Regs.ECFLG.bit.CEVT1=0;
do
{ }
while(ECap1Regs.ECFLG.bit.CEVT2==0);
TSt2=ECap1Regs.CAP2;
ECap1Regs.ECFLG.bit.CEVT2=0;
do
{ }
while(ECap1Regs.ECFLG.bit.CEVT3==0);
TSt3=ECap1Regs.CAP3;
ECap1Regs.ECFLG.bit.CEVT3=0;
do
{ }
while(ECap1Regs.ECFLG.bit.CEVT4==0);
TSt4=ECap1Regs.CAP4;
ECap1Regs.ECFLG.bit.CEVT4=0;
period1=TSt2-TSt1;
period1=TSt3-TSt2;
period1=TSt4-TSt3;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -