智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1559|回复: 3
打印 上一主题 下一主题

[摄像头] 摄像头移植问题

[复制链接]

2

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
威望
157
贡献
69
兑换币
103
注册时间
2018-4-9
在线时间
25 小时
跳转到指定楼层
1#
发表于 2019-1-3 18:43:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20贡献
摄像头小白拜托各位大佬
如下图

回复

使用道具 举报

2

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
威望
157
贡献
69
兑换币
103
注册时间
2018-4-9
在线时间
25 小时
2#
 楼主| 发表于 2019-1-3 18:44:42 | 只看该作者
本帖最后由 小白龙悲 于 2019-1-3 18:50 编辑

F:\360MoveData\Users\Administrator\Desktop发不了图 大概的意思是能进入
void PORTD_Interrupt()
{
  int n;
  n=8;
  if((PORTD_ISFR & (1<<n)))
  {
      PORTD_ISFR |= (1<<n);
      /* 用户自行添加中断内程序 */
      SampleFlag = 1;
      DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTD_BYTE0_IN, Buffer1, PTC19, DMA_BYTE1, CAMERA_SIZE, DMA_falling_down);
      DMA_EN(DMA_CH4);
      LED_Ctrl(LED1, RVS);

  }

不能进入采集
/*************************************************************************
*
*  函数名称:DMA_PORTx2BUFF_Init
*  功能说明:DMA初始化,读取端口数据到内存
*  参数说明:DMA_CHn              通道号(DMA_CH0 ~ DMA_CH15)
*            SADDR                源地址( (void * )&PTx_BYTEn_IN 或 (void * )&PTx_WORDn_IN   )
*            DADDR                目的地址
*            PTxn                 触发端口
*            DMA_BYTEn            每次DMA传输字节数
*            count                一个主循环传输字节数
*            DMA_PORTx2BUFF_cfg   DMA传输配置
*  函数返回:无
*  备    注:
*************************************************************************/
void DMA_PORTx2BUFF_Init(DMA_CHn CHn, void *SADDR, void *DADDR, PTXn_e ptxn, DMA_BYTEn byten, u32 count, DMA_PORTx2BUFF_cfg cfg)
{
    u8 n, i, tmp;

    u8 BYTEs = (byten == DMA_BYTE1 ? 1 : (byten == DMA_BYTE2 ? 2 : (byten == DMA_BYTE4 ? 4 : 16 ) ) ); //计算传输字节数

    /* 开启时钟 */
    SIM_SCGC7 |= SIM_SCGC7_DMA_MASK;                        //打开DMA模块时钟
    SIM_SCGC6 |= SIM_SCGC6_DMAMUX_MASK;                     //打开DMA多路复用器时钟

    /* 配置 DMA 通道 的 传输控制块 TCD ( Transfer Control Descriptor ) */
    DMA_SADDR(CHn) =    (u32)SADDR;                         // 设置  源地址
    DMA_DADDR(CHn) =    (u32)DADDR;                         // 设置目的地址
    DMA_SOFF(CHn)  =    0x00u;                              // 设置源地址偏移 = 0x0, 即不变
    DMA_DOFF(CHn)  =    BYTEs;                              // 每次传输后,目的地址加 BYTEs

    DMA_ATTR(CHn)  =    (0
                         | DMA_ATTR_SMOD(0x0)                // 源地址模数禁止  Source address modulo feature is disabled
                         | DMA_ATTR_SSIZE(byten)             // 源数据位宽 :DMA_BYTEn  。    SSIZE = 0 -> 8-bit ,SSIZE = 1 -> 16-bit ,SSIZE = 2 -> 32-bit ,SSIZE = 4 -> 16-byte
                         | DMA_ATTR_DMOD(0x0)                // 目标地址模数禁止
                         | DMA_ATTR_DSIZE(byten)             // 目标数据位宽 :DMA_BYTEn  。  设置参考  SSIZE
                        );

    DMA_CITER_ELINKNO(CHn)  = DMA_CITER_ELINKNO_CITER(count); //当前主循环次数
    DMA_BITER_ELINKNO(CHn)  = DMA_BITER_ELINKYES_BITER(count);//起始主循环次数


    DMA_CR &= ~DMA_CR_EMLM_MASK;                            // CR[EMLM] = 0

    //当CR[EMLM] = 0 时:
    DMA_NBYTES_MLNO(CHn) =   DMA_NBYTES_MLNO_NBYTES(BYTEs); // 通道每次传输字节数,这里设置为BYTEs个字节。注:值为0表示传输4GB */


    /* 配置 DMA 传输结束后的操作 */
    DMA_SLAST(CHn)      =   0;                              //调整  源地址的附加值,主循环结束后恢复  源地址
    DMA_DLAST_SGA(CHn)  =   (u32)( (cfg & 0x20) == 0 ? (-count)  : 0 ); //调整目的地址的附加值,主循环结束后恢复目的地址或者保持地址
    DMA_CSR(CHn)        =   (0
                             | DMA_CSR_DREQ_MASK            //主循环结束后停止硬件请求
                             | DMA_CSR_INTMAJOR_MASK        //主循环结束后产生中断
                            );

    /* 配置 DMA 触发源 */
    DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR, CHn) = (0
            | DMAMUX_CHCFG_ENBL_MASK                        /* Enable routing of DMA request */
            //| DMAMUX_CHCFG_TRIG_MASK                        /* Trigger Mode: Periodic   PIT周期触发传输模式   通道1对应PIT1,必须使能PIT1,且配置相应的PIT定时触发 */
            | DMAMUX_CHCFG_SOURCE((ptxn >> 5) + DMA_Port_A) /* 通道触发传输源:     */
                                             );

    SIM_SCGC5 |= (SIM_SCGC5_PORTA_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));                                                      //输入模式

    /*  配置输入源   */
    SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK << ((((u32)SADDR) & 0x1ff)>>6));             //开启PORTx端口
    switch(byten)
    {
    case DMA_BYTE1:
        *((u8 *)((u32)SADDR + 4)) = 0;   //设置为输入方向。为什么加4?PDIR地址加4后,就变成对应的PDDR地址
        break;
    case DMA_BYTE2:
        *((u16 *)((u32)SADDR + 4)) = 0;
        break;
    case DMA_BYTE4:
        *((u32 *)((u32)SADDR + 4)) = 0;
        break;
    default:

        break;
    }

    /*  输入源管脚选择功能脚  */
    n = (u8)(((u32)SADDR - ((u32)(&PTA_BYTE0_IN))) & 0x3f);         //最小的引脚号
    tmp = n + (BYTEs << 3);                                         //最大的引脚号
    for(i = n; i < tmp; i++)
    {
        PORT_PCR_REG(PORTX[   ((((u32)SADDR)&0x1ff)>>6)    ], i) = (0
                | PORT_PCR_MUX(1)
                | 0X02             //输入源应该下拉,默认读取到的是0
                                                                   );
    }

    /* 开启中断 */
    //DMA_EN(CHn);                                    //使能通道CHn 硬件请求
    //DMA_IRQ_EN(CHn);                                //允许DMA通道传输
}

卡在if语句
  if(VSYN_Flag==1)  //完成一幅图像采集
      {
        VSYN_Flag = 0;
        datatrans();
        showabc();
        EnableInterrupts;     
回复

使用道具 举报

25

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2816
QQ
威望
1417
贡献
787
兑换币
915
注册时间
2017-9-21
在线时间
306 小时
3#
发表于 2019-1-5 17:13:02 | 只看该作者
贴这么多代码,一般基本没人看。头大。可以把你问题好好叙述一下,然后组织一下再问
回复

使用道具 举报

1

主题

6

帖子

0

精华

注册会员

Rank: 2

积分
94
威望
48
贡献
28
兑换币
31
注册时间
2019-1-13
在线时间
9 小时
4#
发表于 2019-1-14 11:10:28 | 只看该作者
很难理解的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 09:07 , Processed in 0.053156 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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