智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1912|回复: 4
打印 上一主题 下一主题

[采集类] 还是K60DMA的问题模拟she 这样写有错吗 都是只给数组的第一个元素赋值,其余都为0

[复制链接]

10

主题

42

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1087
威望
546
贡献
273
兑换币
336
注册时间
2015-1-9
在线时间
134 小时
跳转到指定楼层
1#
发表于 2015-1-22 21:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
void dma_init()         
    {
        SIM_SCGC6|=SIM_SCGC6_DMAMUX_MASK;//打开DMA多路复用器时钟
        SIM_SCGC7|=SIM_SCGC7_DMA_MASK;//打开DMA模块时钟
        DMAMUX_CHCFG0=DMAMUX_CHCFG_SOURCE(50);//DMA通道0对应50号DMA请求,即PORTB        
        
        DMA_TCD0_CITER_ELINKNO=DMA_CITER_ELINKNO_CITER(157);//当前主循环次数,采集点数
        DMA_TCD0_BITER_ELINKNO=DMA_BITER_ELINKNO_BITER(157);//起始主循环次数,采集点数
        DMA_TCD0_SADDR=(uint32)&GPIOE_PDIR;                          //设置源地址GPIO口,PORTB
        DMA_TCD0_SOFF=0;                                             //每次传送源地址不变
        
        DMA_TCD0_NBYTES_MLNO=DMA_NBYTES_MLNO_NBYTES(1);//每次读取一字节
        DMA_TCD0_SLAST=0;//主循环结束后源地址0回写tcd
        DMA_TCD0_DLASTSGA=0;//主循环结束后目的地址0回写tcd
        DMA_TCD0_DADDR=(uint32)Image_Original;//设置目的地址,video数组第一个元素
        DMA_TCD0_DOFF=1;//每次写目的地址加1
        DMA_TCD0_ATTR=DMA_ATTR_SSIZE(0)+DMA_ATTR_DSIZE(0);//源数据宽度8bit,目的数据宽度8bit
        DMA_TCD0_CSR=DMA_CSR_DREQ_MASK;//DMA通道0主循环结束后停止硬件请求
        DMA_TCD0_CSR|=DMA_CSR_INTMAJOR_MASK;//使能DMA0中断
        DMAMUX_CHCFG0|=DMAMUX_CHCFG_ENBL_MASK;//DMA通道0使能
        DMA_ERQ&=~DMA_ERQ_ERQ5_MASK ;//The DMA request signal for the corresponding channel is enabled
    }


void DMA0_isr(void)//DMA0中断服务函数
{
  DMA_INT|=DMA_INT_INT0_MASK;                     //清除通道0中断
  Sample_point++;
}


////////////////////////////////////////////////////////////
// 中断服务函数,场中断为PTA181的IO中断;
//  等待改为输入捕捉
//
///////////////////////////////////////////////////////////
void PORTA_isr(void)//场中断PTB21 中断号87
{
  if(send_F==1)
  {
  send_F=0;
  PORTA_PCR14 |= PORT_PCR_ISF_MASK;        //清标志位
  Sample_point=SampleRow;//赋地址指针
  enable_irq(0);         //使能DMA完成中断
   enable_irq(88); //使能行中断
  }
}
/////////////////////////////////////////////////////////////
//
//行中断,PTB22
//
///////////////////////////////////////////////////////////
void PORTB_isr(void)//行中断PB22 中断号88
{
  static uint16 ui_SampleRow=0;   //采集的行数
  PORTB_PCR22 |= PORT_PCR_ISF_MASK;//清行中断标志位;
  
  if(ui_SampleRow==*Sample_point) //判断是否为采集的行
  {
   DMA_ERQ|=DMA_ERQ_ERQ0_MASK;//使能通道0硬件DMA请求
  }
  ui_SampleRow++;//行计数
  if(ui_SampleRow>=160)
  {
   uc_ImageOver=1;
   ui_SampleRow=0;    //清采集图像上行
   disable_irq(88); //关行中断
   uc_ImageOver=0;
   send_F=1;
}
}

回复

使用道具 举报

10

主题

42

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1087
威望
546
贡献
273
兑换币
336
注册时间
2015-1-9
在线时间
134 小时
2#
 楼主| 发表于 2015-1-23 10:53:48 | 只看该作者
没人知道吗?
回复

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

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

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
3#
发表于 2015-1-23 13:12:58 | 只看该作者
:lol:lol
回复

使用道具 举报

10

主题

42

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1087
威望
546
贡献
273
兑换币
336
注册时间
2015-1-9
在线时间
134 小时
4#
 楼主| 发表于 2015-1-23 15:53:11 | 只看该作者
Quixote 发表于 2015-1-23 13:12

求解答啊

回复

使用道具 举报

14

主题

69

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1489
威望
734
贡献
437
兑换币
458
注册时间
2013-10-22
在线时间
159 小时
5#
发表于 2015-4-24 17:56:50 | 只看该作者
我和你一样的问题 你解决了没哦 楼楼
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 00:30 , Processed in 0.117073 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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