智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2011|回复: 2
打印 上一主题 下一主题

请教火哥关于野火底层库DMA测两路脉冲问题

[复制链接]

5

主题

154

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
623
贡献
330
兑换币
347
注册时间
2013-7-17
在线时间
162 小时
毕业学校
JNU
跳转到指定楼层
1#
发表于 2014-3-5 21:48:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
火哥请问我为什么初始化了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;        我也屏蔽了其他的函数比如串口 但就是不进入中断 计数是有的 但是输入溢出的量没有触发中断计数少了
这可能是什么原因呢

回复

使用道具 举报

5

主题

154

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1277
威望
623
贡献
330
兑换币
347
注册时间
2013-7-17
在线时间
162 小时
毕业学校
JNU
2#
 楼主| 发表于 2014-3-5 21:49:05 | 只看该作者
初始化函数中有
/* 配置 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
回复 支持 反对

使用道具 举报

55

主题

1286

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8827

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章论坛骨干奖章

威望
4121
贡献
2694
兑换币
1967
注册时间
2012-5-8
在线时间
1006 小时
3#
发表于 2014-3-5 21:54:45 | 只看该作者
上正交解码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-5 21:34 , Processed in 0.105353 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表