智能车制作
标题:
请教火哥关于野火底层库DMA测两路脉冲问题
[打印本页]
作者:
czr27
时间:
2014-3-5 21:48
标题:
请教火哥关于野火底层库DMA测两路脉冲问题
火哥
请问我为什么初始化了DMA计数 并修改好isr.c的中断函数,和isr.h重定义
DMA_count_Init(DMA_CH1, PTE26 ,0x4, DMA_rising);
void DMA_CH0_Handler(void)
{
DMA_IRQ_CLEAN(DMA_CH0); //清除通道传输中断标志位 (这样才能再次进入中断)
DMA_EN(DMA_CH0); //使能通道CHn 硬件请求 (这样才能继续触发DMA传输)
count_high[0]++; //记录溢出次数
}
extern void DMA_CH0_Handler(void); //DMA计数溢出中断
也EnableInterrupts; 我也屏蔽了其他的函数比如串口 但就是不进入中断 计数是有的 但是输入溢出的量没有触发中断计数少了
这可能是什么原因呢
作者:
czr27
时间:
2014-3-5 21:49
初始化函数中有
/* 配置 DMA 触发源 */
DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR,CHn) = (0
| DMAMUX_CHCFG_ENBL_MASK /* Enable routing of DMA request */
| DMAMUX_CHCFG_SOURCE((ptxn>>5)+DMA_Port_A) /* 通道触发传输源: */
);
SIM_SCGC5 |= (SIM_SCGC5_PORTE_MASK<<(ptxn>>5)); //开启PORTx端口
GPIO_PDDR_REG(GPIOx[(ptxn>>5)]) &= ~(1<<(ptxn&0x1f)); //设置端口方向为输入
PORT_PCR_REG(PORTX[(ptxn>>5)],(ptxn&0x1F))= ( 0
| PORT_PCR_MUX(1) // 复用GPIO
| PORT_PCR_IRQC(cfg & 0x03 ) // 确定触发模式
| ((cfg & 0xc0 )>>6) // 开启上拉或下拉电阻,或者没有
);
GPIO_PDDR_REG(GPIOx[(ptxn>>5)])&=~(1<<(ptxn&&0x1F)); //输入模式
/* 开启中断 */
DMA_EN(CHn); //使能通道CHn 硬件请求
DMA_IRQ_EN(CHn); //允许DMA通道传输
不懂为什么触发源一定是porta
作者:
易湘鑫
时间:
2014-3-5 21:54
上正交解码
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2