📄 cap.c
字号:
#include "DSP28_Device.h"
interrupt void T4_ISR( void ) ;
Uint16 LoopCount ;
Uint16 ConversionCount ;
float Voltage1[10] ;
Uint16 Voltage2[10] ;
void delay_loop(void) ;
short aa;
short adclo;
main()
{
InitSysCtrl() ;
//EALLOW ;
//SysCtrlRegs.HISPCP.all = 0x3 ;
//EDIS ;
//the three sentences up are inserted in the afternoon of 9.2
//InitGpio() ;
DINT ;
IER = 0x0000 ;
IFR = 0x0000 ;
InitPieCtrl() ;
InitPieVectTable() ;
//InitAdc() ;
EALLOW ;
//PieVectTable.T1UFINT = &TI_ISR ;
PieVectTable.T4UFINT = &T4_ISR ;
EDIS ;
//PieCtrl.PIEIER2.bit.INTx6 = 1 ;
PieCtrl.PIEIER5.bit.INTx3 = 1 ;
//IER |= M_INT2 ;
IER |= M_INT5 ;
EINT ;
ERTM ;
LoopCount = 0 ;
ConversionCount = 0 ;
aa=0;
adclo=0;
// AdcRegs.MAX_CONV.all = 0x0001 ;
// AdcRegs.CHSELSEQ1.bit.CONV00 = 0x1 ;
// AdcRegs.CHSELSEQ1.bit.CONV01 = 0x2 ;
// AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1 ;
// AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1 ;
//EvaRegs.T1CMPR = 0x0080 ;
EvbRegs.T4CMPR = 0x0080 ;
//EvaRegs.T1PR = 0x00FF ;
EvbRegs.T4PR = 0xFFFF ;
//EvaRegs.EVAIFRA.bit.T1UFINT=0;
EvbRegs.EVBIFRB.bit.T4UFINT = 1 ;
//EvaRegs.EVAIMRA.bit.T1UFINT = 1 ;//这个是我加的,因为我发现例子程序没有使能计数器下溢中断位
EvbRegs.EVBIMRB.bit.T4UFINT = 1 ;
//9.2_afternoom_modified EvaRegs.GPTCONA.bit.T1TOADC = 1 ;//中断条件选择,1:下溢中断启动;2:周期中断启动;3:比较器中断启动
//EvaRegs.T1CON.all = 0x1042 ;
EvbRegs.T4CON.all = 0x1042 ;
//GpioDataRegs.GPFDAT.all = 0x0000 ;
delay_loop() ;
while( 1 )
{
LoopCount++;
}
}
interrupt void T4_ISR( void )
{
short counter_i ;
IFR=0x0000;
PieCtrl.PIEACK.all=0xffff;
//EvaRegs.EVAIFRA.bit.T1UFINT=1;
EvbRegs.EVBIFRB.bit.T4UFINT = 1 ;
aa++;
GpioDataRegs.GPFTOGGLE.all = 0xFFFF;
for( counter_i = 0 ; counter_i < 1000 ; counter_i ++ ) {}
//////////////////////////////////////////////////////////////////////////////
/*
while(AdcRegs.ADC_ST_FLAG.bit.SEQ1_BSY==0)
{
AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
}
//Voltage1[ ConversionCount ] =((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
//AdcRegs.RESULT1 >> 4 ;
//Voltage1[ 0 ] =((float)AdcRegs.RESULT1)*3.0/65520.0+adclo;
Voltage1[ 0 ] =((float)AdcRegs.RESULT0)*3.0/65520+adclo;
Voltage1[ 1 ] =((float)AdcRegs.RESULT1)*3.0/65520+adclo;
Voltage1[ 3 ] =((float)AdcRegs.RESULT3)*3.0/65520+adclo;
if( ConversionCount == 9 )
{
ConversionCount = 0 ;
}
else ConversionCount ++ ;
*/
////////////////////////////////////////////////////////////////////////////////
//AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
//AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
EINT;
}
void delay_loop()
{
short i;
for (i = 0; i < 1000; i++) {}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -