完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tiMER触发ADC配制方法一直进不去中断,麻烦看看有没有问题呢,用ADC_TRIGGER_PROCESSOR方式可以进中断,ADC_TRIGGER_TIMER方式就不行
void ADC_INIT(void) [ //初始化ADC0/PE3 //SysCtlADCSpeedSet(SYSCTL_ADCSPEED_500KSPS);//设置采样速度,默认1MHZ SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); //ADCSequenceDisable(ADC0_BASE,0); //配置前先禁止采样序列 //设置ADC参考电压为外部3V,TM4C123GH6PM只能使用内部参考电压,3.3V //ADCReferenceSet(ADC0_BASE, ADC_REF_EXT_3V);//若ADC_REF_INT,则指使用内部3V参考电压 //配置ADC采集序列,ADC_TRIGGER_PROCESSOR是软件触发,ADC_TRIGGER_TIMER是定时器触发 ADCSequenceConfigure(ADC0_BASE, 0,ADC_TRIGGER_TIMER, 0); //ADCSequenceConfigure(ADC0_BASE, 0,ADC_TRIGGER_PROCESSOR, 0); ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_CH0 );//PE3/IC ADCSequenceStepConfigure(ADC0_BASE, 0, 1, ADC_CTL_CH1 );//PE2/IB ADCSequenceStepConfigure(ADC0_BASE, 0, 2, ADC_CTL_CH2 );//PE1IA ADCSequenceStepConfigure(ADC0_BASE, 0, 3, ADC_CTL_CH3 );//PE0/VREF ADCSequenceStepConfigure(ADC0_BASE, 0, 4, ADC_CTL_CH4 );//PD3/UA ADCSequenceStepConfigure(ADC0_BASE, 0, 5, ADC_CTL_CH5 );//PD2/UB ADCSequenceStepConfigure(ADC0_BASE, 0, 6, ADC_CTL_CH6 | ADC_CTL_IE |ADC_CTL_END);//PD1/UC //ADCSequenceStepConfigure(ADC0_BASE, 0, 7, ADC_CTL_CH7 | ADC_CTL_IE |ADC_CTL_END);//PD0未使用 IntMasterEnable(); IntEnable(INT_ADC0SS0); //使能ADC采样序列中断 ADCIntEnable(ADC0_BASE, 0); //中断触发方式设置ADC_INT_SS0、ADC_INT_DMA_SS0、ADC_INT_DCON_SS0 ADCIntEnableEx(ADC0_BASE,ADC_INT_SS0);//分别代表普通序列触发、DMA触发和数字比较器触发 ADCIntClear(ADC0_BASE, 0); ADCSequenceEnable(ADC0_BASE, 0);//使能ADC采集序列 TimerControlTrigger(ADC0_BASE,TIMER_A,true); ] void ADC0IntHandler(void) [ ADCIntClear(ADC0_BASE, 0); while(!ADCIntStatus(ADC0_BASE, 0, false));//等待采集结束 ADCSequenceDataGet(ADC0_BASE, 0, ADC0_Value); if (ADC_Ready_Flag == 0) [ RMS_IC.Save[Cnt_Period] = ADC0_Value[0]; RMS_IB.Save[Cnt_Period] = ADC0_Value[1]; RMS_IA.Save[Cnt_Period] = ADC0_Value[2]; RMS_VR.Save[Cnt_Period] = ADC0_Value[3]; RMS_VA.Save[Cnt_Period] = ADC0_Value[4]; RMS_VB.Save[Cnt_Period] = ADC0_Value[5]; RMS_VC.Save[Cnt_Period] = ADC0_Value[6]; Cnt_Period++; if (Cnt_Period == 255) [ Cnt_Period = 0; ADC_Ready_Flag = 1; ] ] //TimerControlTrigger(ADC0_BASE,TIMER_A,true); ] void TIMER0(void) [ //uint32_t timer0period; SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);//使能TIMER0 //TimerConfigure(TIMER0_BASE, TIMER_CFG_ONE_SHOT);//单次计数模式 //TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC_UP);//周期性计数模式,递增计数 TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);//周期性计数模式 //timer0period=SysCtlClockGet() / 12800 ;//目标值是:系统频率/n,那每秒就进n次中断 //timer0period=SysCtlClockGet() / 50 ;//50HZ,0.02S进一次中断 TimerLoadSet(TIMER0_BASE, TIMER_A,SysCtlClockGet() / 12800-1); TimerADCEventSet(TIMER0_BASE,TIMER_ADC_TIMEOUT_A);//超时触发采样设置 TimerADCEventGet(TIMER0_BASE);//获取是否超时触发ADC //IntEnable(INT_TIMER0A);//TIMEOUT标志位触发中断 //TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); //使能TIMER0A中断 //IntMasterEnable(); TimerEnable(TIMER0_BASE, TIMER_A);//TIMER0A开始计数,当计数值等于TimerLoadSet,触发中断 ] void Timer0IntHandler(void) [ TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);//清除标志位 a[k]=k; k++; if(k==256) [ k=0; ] ] |
|
相关推荐
5 个讨论
|
|
ADCSequenceConfigure(ADC0_BASE, 0,ADC_TRIGGER_TIMER, 0);
TimerControlTrigger(ADC0_BASE,TIMER_A,true); 这两句放在ADC初始化里 TimerADCEventSet(TIMER0_BASE,TIMER_ADC_TIMEOUT_A);//超时触发采样设置,这一句应该放在定时器初始化里 TimerADCEventGet(TIMER0_BASE);//获取是否超时触发ADC,这一句应该放在哪里?还是这句不需要? 除了这四句,还需要什么配置么? |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
666 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1047 浏览 1 评论
730 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
519 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:24 , Processed in 0.781302 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号