智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4577|回复: 12
打印 上一主题 下一主题

冷火MCF52255摄像头DMA

[复制链接]

10

主题

159

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2674
威望
1404
贡献
390
兑换币
914
注册时间
2012-12-25
在线时间
440 小时
跳转到指定楼层
1#
发表于 2014-1-20 12:09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include"DMA.h"
  2. void DMA_Init()
  3. {
  4.         MCF_GPIO_PTJPAR=0x00;//GPIO
  5.         MCF_GPIO_DDRTJ=0x00;//input
  6.        
  7.         MCF_GPIO_PTCPAR|=MCF_GPIO_PTCPAR_DTIN3_DTIN3;//DTIM3触发
  8.         MCF_DMA_DSR(3) |= MCF_DMA_DSR_DONE;//清零标志位
  9.         // Enable DMA master access in both supervisor and user mode
  10.         MCF_SCM_MPR = MCF_SCM_MPR_MPR(0x05);//DMA可挂载总线
复制代码
最近在搞冷火DMA,用的是数字摄像头OV7620,准备用PCLK分频后的脉冲去触发DMA传输,代码参考的是论坛之前的一个帖子跟网友金刀丸同学的,现在是用20K的PWM去触发,但是一直没成功!我看数据手册的时候好像说是要配置DTER寄存器里面的位CAP才能触发DMA,但我见他们的代码里都没有体现,希望大家能帮我看一下是哪里的问题,谢谢了,大家多多交流
回复

使用道具 举报

10

主题

159

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2674
威望
1404
贡献
390
兑换币
914
注册时间
2012-12-25
在线时间
440 小时
2#
 楼主| 发表于 2014-1-20 12:10:21 | 只看该作者
#include"DMA.h"
void DMA_Init()
{
        MCF_GPIO_PTJPAR=0x00;//GPIO
        MCF_GPIO_DDRTJ=0x00;//input
       
        MCF_GPIO_PTCPAR|=MCF_GPIO_PTCPAR_DTIN3_DTIN3;//DTIM3触发
        MCF_DMA_DSR(3) |= MCF_DMA_DSR_DONE;//清零标志位
        // Enable DMA master access in both supervisor and user mode
        MCF_SCM_MPR = MCF_SCM_MPR_MPR(0x05);//DMA可挂载总线
        //dtim3 trigger DMA3
        MCF_SCM_DMAREQC = MCF_SCM_DMAREQC_DMAC3(0x7);//中断触发源
        MCF_DMA_SAR(3) = (uint32)MCF_GPIO_SETTJ;//源地址     
        MCF_DMA_DAR(3) = (uint32)&IMG_BUFF[0]; //数组首地址           
        MCF_DMA_BCR(3) = 99;//传送数据量
        MCF_DMA_DCR(3) = //MCF_DMA_DCR_INT   //不触发DMA中断
                MCF_DMA_DCR_SSIZE(1)    //ssize : byte   
              | MCF_DMA_DCR_DSIZE(1)    //dsize : byte
              | MCF_DMA_DCR_DINC     //目的地址自增(自增一个byte)
               //| MCF_DMA_DCR_SINC     //源地址保持不变
              | MCF_DMA_DCR_D_REQ    //传输完毕后,关闭dma请求
                                                              //Disable request. DMA hardware automatically clears the corresponding DCRn[EEXT] bit
                                                                //when the byte count register(BCR) reaches zero.
              //| MCF_DMA_DCR_EEXT     //外部触发dma
              | MCF_DMA_DCR_CS;   //一个请求触发一次,周期窃取

        //DTMR 配置   
        MCF_DTIM_DTMR(3) =  0;    //清空dtmr寄存器

        MCF_DTIM_DTMR(3) = MCF_DTIM_DTMR_CE_RISE //上升沿捕捉
                                     | MCF_DTIM_DTMR_CLK_DTIN ;   //外部时钟源
          
        MCF_DTIM_DTXMR(3) |=  MCF_DTIM_DTXMR_DMAEN;   //dma请求使能
        //***********************
        MCF_DTIM_DTER(3)|=MCF_DTIM_DTER_CAP;//***********************
        //***********************
        //MCF_DTIM_DTXMR(3) |=  MCF_DTIM_DTXMR_HALTED;  //挂起状态停止计数
            
        //MCF_DTIM_DTXMR(3) &=  ~MCF_DTIM_DTXMR_MODE16;
          
        //MCF_DTIM_DTMR(3) &=  ~MCF_DTIM_DTMR_FRR;  //Restart  

        //MCF_DTIM_DTMR(3) |=  MCF_DTIM_DTMR_OM;   //OutputMode

        //MCF_DTIM_DTMR(3) |= MCF_DTIM_DTMR_PS(0x5);//
        MCF_INTC0_IMRL&=~MCF_INTC_IMRL_MASKALL;
        MCF_INTC0_IMRL&=~MCF_INTC_IMRL_INT_MASK12;//
        MCF_INTC0_ICR12=MCF_INTC_ICR_IP(6)+MCF_INTC_ICR_IL(6);
       
       
    //MCF_DTIM_DTMR(3) |= MCF_DTIM_DTMR_RST;  
        MCF_DMA_DCR(3)|= MCF_DMA_DCR_EEXT;//启动DTMR
        MCF_DMA_DCR(3)|= MCF_DMA_DCR_START;

}
回复 支持 反对

使用道具 举报

27

主题

150

帖子

0

精华

会长

Rank: 8Rank: 8

积分
3077

优秀会员奖章活跃会员奖章

威望
1484
贡献
901
兑换币
931
注册时间
2013-6-7
在线时间
346 小时
毕业学校
燕山大学
3#
发表于 2014-1-20 12:23:17 | 只看该作者
哎,程序被你曝光了,都说过了我这个不是用外部触发的,而是DTIM参考比较方式触发的,所以不用PWM波来触发
回复 支持 反对

使用道具 举报

10

主题

159

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2674
威望
1404
贡献
390
兑换币
914
注册时间
2012-12-25
在线时间
440 小时
4#
 楼主| 发表于 2014-1-20 12:31:29 | 只看该作者
金刀丸 发表于 2014-1-20 12:23
哎,程序被你曝光了,都说过了我这个不是用外部触发的,而是DTIM参考比较方式触发的,所以不用PWM波来触 ...

里面只有中断优先级的程序是参考你的,其它都是参考论坛上那个帖子的
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
502
威望
256
贡献
156
兑换币
159
注册时间
2013-8-6
在线时间
45 小时
毕业学校
安徽大学
5#
发表于 2014-2-20 09:47:19 | 只看该作者
13760271915 发表于 2014-1-20 12:31
里面只有中断优先级的程序是参考你的,其它都是参考论坛上那个帖子的

这个实验成功没有?
回复 支持 反对

使用道具 举报

10

主题

159

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2674
威望
1404
贡献
390
兑换币
914
注册时间
2012-12-25
在线时间
440 小时
6#
 楼主| 发表于 2014-2-20 10:21:48 | 只看该作者
zhua 发表于 2014-2-20 09:47
这个实验成功没有?

我上面不是写着没触发成功吗
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
502
威望
256
贡献
156
兑换币
159
注册时间
2013-8-6
在线时间
45 小时
毕业学校
安徽大学
7#
发表于 2014-2-20 10:40:31 | 只看该作者
穂佳的UART中有一个DMA示例你见过没有?
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
502
威望
256
贡献
156
兑换币
159
注册时间
2013-8-6
在线时间
45 小时
毕业学校
安徽大学
8#
发表于 2014-2-20 10:53:25 | 只看该作者
13760271915 发表于 2014-2-20 10:21
我上面不是写着没触发成功吗

穂佳的UART中有一个DMA示例你见过没有?
回复 支持 反对

使用道具 举报

20

主题

236

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1941

活跃会员奖章优秀会员奖章

威望
1004
贡献
557
兑换币
499
注册时间
2013-10-14
在线时间
190 小时
毕业学校
河北联合大学
9#
发表于 2014-2-26 19:57:40 | 只看该作者
coldfire把我逼疯了
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
威望
203
贡献
112
兑换币
119
注册时间
2013-10-14
在线时间
32 小时
10#
发表于 2014-3-10 09:18:16 | 只看该作者
触发dma请求 cap 必须置1 在Ds 中有个逻辑表……怎么都不看啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 17:24 , Processed in 0.057281 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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