【DSP】TMS320F28035 ADC例程(软件触发+中断)
2017-08-02 21:39
603 查看
#include "DSP28x_Project.h" interrupt void adc_isr(void); Uint16 ConversionCount; Uint16 Voltage1[10]; Uint16 Voltage2[10]; main() { InitSysCtrl(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.ADCINT1 = &adc_isr; //映射ADC中断 EDIS; InitAdc(); PieCtrlRegs.PIEIER1.bit.INTx1 = 1; //使能PIE级INT1.1中断 IER |= M_INT1; //使能CPU级INT1中断 EINT; //使能总中断 ConversionCount = 0; EALLOW; AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //转换完成前一个ADC时钟周期产生EOC AdcRegs.INTSEL1N2.bit.INT1E = 1; //使能ADCINT1 AdcRegs.INTSEL1N2.bit.INT1CONT = 0; //关闭连续模式 AdcRegs.INTSEL1N2.bit.INT1SEL = 1; //将ADCINT1映射到EOC1 AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; //将ADCINA0映射到通道0 AdcRegs.ADCSOC1CTL.bit.CHSEL = 1; //将ADCINA1映射到通道1 AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0; //软件触发SOC0 AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 0; //软件触发SOC1 AdcRegs.ADCSOC0CTL.bit.ACQPS = 6; //设置窗口采样次数 AdcRegs.ADCSOC1CTL.bit.ACQPS = 6; //设置窗口采样次数 EDIS; AdcRegs.ADCSOCFRC1.all = 0x0003;//强制给通道0和1产生SOC信号 for(;;) { } } interrupt void adc_isr(void) { Voltage1[ConversionCount] = AdcResult.ADCRESULT0; Voltage2[ConversionCount] = AdcResult.ADCRESULT1; if(ConversionCount == 9) { ConversionCount = 0; } else ConversionCount++; AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //清除EOC1信号(ADCINT1) AdcRegs.ADCSOCFRC1.all = 0x0003;//强制给通道0和1产生SOC信号 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //写1清0,写0无效 }
相关文章推荐
- 【DSP】TMS320F28035 ADC例程(软件触发+查询)
- 【DSP】TMS320F28035 定时器中断例程
- 【DSP】TMS320F28035 GPIO外部中断例程
- 【DSP】TMS320F28035 ADC例程(ePWM+查询)
- 转载:深入DSP/BIOS的API函数 - 软件中断管理SWI
- STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)
- ok6410的 ADC中断触发转换 实验
- 深入DSP/BIOS的API函数 - 软件中断管理SWI
- STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- 【DSP】TMS320F28035 SCI例程(自发自收+查询)
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- 【DSP】TMS320F28035 GPIO例程
- STM32F10x_ADC三通道逐次转换(单次、单通道软件触发)
- 嵌入式软件开发培训笔记——S5PC100接口开发(GPIO输入/输出、定时器、中断、UART、ADC、IIC)
- 实验十三_编写、应用中断例程_ 1
- 中断处理程序&中断服务例程
- .net micro framework的入门例程-点灯神话-3.按键中断控制LED
- STM32之ADC单通道单次例程
- STC15单片机外部中断仅上升沿触发的方法