完善资料让更多小伙伴认识你,还能领取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,这一句应该放在哪里?还是这句不需要? 除了这四句,还需要什么配置么? |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
607 浏览 0 评论
1660 浏览 0 评论
2102 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1550 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1398 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1800浏览 29评论
2827浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1753浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1671浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1686浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 03:34 , Processed in 0.817293 second(s), Total 67, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1746