完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我设置DMA的中断在一启动就发生,可以进到中断服务程序中,说明我的各个中断寄存器的设置是没问题的,但是当我设置DMA CH1中断在transfer结束时产生时,就不能进入中断服务程序中,程序执行完后,TRANSFERSTS, RUNSTS, TRANSFER_COUNT这几位都是零,但就是不能产生中断,不知道为什么。谁能帮我看一下,程序哪里出现了问题?谢谢
DMADest = &DMABuf1[0]; //Point DMA destination to the beginning of the array DMASource = &AdcMirror.ADCRESULT0; //Point DMA source to ADC result register base DMACH1AddrConfig(DMADest,DMASource); DMACH1BurstConfig(0,0,0); DMACH1TransferConfig(159,1,1); //一个transfer包含1024个burst,每完成一次burst,源地址和目的地址先加1,然后再判断是不是需要wrap DMACH1WrapConfig(15,0,159,0); //每过16个burst,源地址卷回到&AdcMirror.ADCRESULT0,目的地址不变,wrap_step的含义是,在BEG_ADDR的基础上加减,而不是对当前的地址进行加减 DMACH1ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_DISABLE,SYNC_DISABLE,SYNC_SRC, OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_BEGIN,CHINT_ENABLE); for(i=0;i if(i==10) [ StartDMACH1();//前十次采样不准,舍弃,从第11次采样开始启动DMA ] AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; // The ADC starts manually. ] // Translate DMABuf to ADC_Result /*for (l=0; l ADC_Result[l] = (float)DMABuf1[l] * 3.0 / 4096.0; ]*/ asm (" ESTOP0"); for(;;); ] // INT7.1 interrupt void local_DINTCH1_ISR(void) // DMA Channel 1 [ // To receive more interrupts from this PIE group, acknowledge this interrupt PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;//向相应位写1对其清零 ] |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2783浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:22 , Processed in 0.623755 second(s), Total 41, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
20524