NK-RTU980 CAP

news/2024/4/30 8:26:35/文章来源:https://blog.csdn.net/professionalmcu/article/details/126589756

        BSP包中有两个CAP相关的例程,两个例程的区别为获取的图像数据的存储格式不同,planar例程是先存储所有像素点的Y,再存U,再存V。packed例程是每个像素的YVU连续存储。

一、硬件电路

处理器为NUC980DR61Y,封装为64pin,只有CAP0接口,所以Sensor接在处理器的CAP0接口:

硬件连接如下: 

CMOS的所需的24MHz工作时钟由处理器PC.3输出。

二、例程修改

1、添加void CAP0_IRQHandler(void)函数

/*------------------------------------------------------------------------------------------*/
/*  CAP_IRQHandler                                                                          */
/*------------------------------------------------------------------------------------------*/
void CAP0_IRQHandler(void)
{uint32_t u32CapInt;u32CapInt = CAP0->INT;if( (u32CapInt & (CAP_INT_VIEN_Msk | CAP_INT_VINTF_Msk )) == (CAP_INT_VIEN_Msk | CAP_INT_VINTF_Msk)){CAP_InterruptHandler();CAP0->INT |= CAP_INT_VINTF_Msk;        /* Clear Frame end interrupt */u32EscapeFrame = u32EscapeFrame+1;}if((u32CapInt & (CAP_INT_ADDRMIEN_Msk|CAP_INT_ADDRMINTF_Msk)) == (CAP_INT_ADDRMIEN_Msk|CAP_INT_ADDRMINTF_Msk)){CAP0->INT |= CAP_INT_ADDRMINTF_Msk; /* Clear Address match interrupt */}if ((u32CapInt & (CAP_INT_MEIEN_Msk|CAP_INT_MEINTF_Msk)) == (CAP_INT_MEIEN_Msk|CAP_INT_MEINTF_Msk)){CAP0->INT |= CAP_INT_MEINTF_Msk;    /* Clear Memory error interrupt */}if ((u32CapInt & (CAP_INT_MDIEN_Msk|CAP_INT_MDINTF_Msk)) == (CAP_INT_MDIEN_Msk|CAP_INT_MDINTF_Msk)){CAP0->INT |= CAP_INT_MDINTF_Msk;    /* Clear Motion Detection interrupt */}CAP0->CTL = CAP0->CTL | CAP_CTL_UPDATE;
}

2、注册IRQ_CAP0中断

    sysInstallISR(IRQ_LEVEL_1, IRQ_CAP0, (PVOID)CAP0_IRQHandler);sysSetLocalInterrupt(ENABLE_IRQ);sysEnableInterrupt(IRQ_CAP0);

3、使能时钟

    /* Init Engine clock and Sensor clock */CAP_SetFreq(CAP0,48000000,24000000);

4、添加Sensor

例程中包含了三款Sensor的初始化代码,而我们项目中用到的sensor型号没在例程中,所以需要编写Sensor的初始化代码。

修改XXX_SnrReset()函数:

static void XXX_SnrReset(void)
{/* PB4 reset:	H->L->H 	*/outpw(REG_SYS_GPB_MFPL,(inpw(REG_SYS_GPB_MFPL) & ~0x000F0000));GPIO_SetMode(PB,1<<4,GPIO_MODE_OUTPUT);PB4=1;Delay(100);PB4=0;Delay(100);PB4=1;
}

例程中所用RESET管脚为PE10,改为PB4。关于GPIO相关的寄存器,参看文档<DS_NUC980_Series_EN_Rev1.24.pdf>。

修改XXX_SnrPowerDown()函数:

static void MT9V024_SnrPowerDown(BOOL bIsEnable)
{/* PB6 power down, HIGH for power down */outpw( REG_SYS_GPB_MFPL,(inpw(REG_SYS_GPB_MFPL) & ~0x0F000000));GPIO_SetMode(PB,1<<6,GPIO_MODE_OUTPUT);PB6=0;if(bIsEnable)PB6=1;elsePB6=0;
}

例程中所用power down管脚为PC0,改为PB6。高电平进入power down模式。

修改I2C SCL和SDA管脚,SCL改为PA1,SDA改为PA0:

		SWI2C_Open(eDRVGPIO_GPIOA,eDRVGPIO_PIN1,eDRVGPIO_GPIOA,eDRVGPIO_PIN0,Delay);

根据Sensor的手册修改g_XXX_VGA_RegValue[]寄存器列表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4228.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python--转换wrf输出的风场数据为网页可视化的json格式

前言&#xff1a; 一般网页可视化风场中的数据都是json格式&#xff0c;而如果我们希望将wrf模式模拟输出的风场数据在网页中进行展示&#xff0c;这就需要先将wrfoutput数据转换为网页可以识别的json格式。 这里主要需要用到json库&#xff0c;主要的实现方式就是将读取的风场…

微信网课答案公众号题库接口使用

微信网课答案公众号题库接口使用 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

亚马逊审核 美国站安全带ASTMF1772安全绳攀岩绳EN892认证流程

1 登山锁扣定义 登山用锁扣是一种带弹簧门的金属环状物&#xff0c;用于在攀岩和登山时快速可逆地连接各部件&#xff0c;是安全系统关键的一部分。 登山用锁扣可用于将绳索固定到设备上&#xff0c;或者将两件或多件设备连接在一起。它们通常由铝或钢制成。这种锁扣具有不同…

ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜

如何解决ps2021 新版 AI神经滤镜不能用? 网上买正版&#xff0c;更新下就好了&#xff0c;盗版的都会有各种这样的问题。ps2021神经AI滤镜是需简要上传云端&#xff0c;由Adobe官方服务器人工智能运算的。 Ps2021版本新增了Ai神经元滤镜&#xff0c;它不是与软件一起安装的&…

谣言粉碎机?Python验证股市操盘口诀

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨不追,下午大跌次日买 早上大跌不割,不涨不跌睡觉 我们随手百度,也能发现各大主流论坛,充斥着该口…

Spring入门——Eclipse实现HelloWorld程序

前言 疫情影响又延期开学&#xff0c;只能在家上上网课划划水&#xff0c;刚做完spring入门的一个小作业&#xff0c;来做个总结分享&#xff0c;我也是个刚入门的小白&#xff0c;还望大佬们指点。 步入主题 环境 eclipse/spring-tool-suite-3 jdk1.8.0_221 另外&#xff0…

Linux :mysql数据库自动备份

Linux &#xff1a;mysql数据库自动备份前言使用shell脚本进行数据库的定时备份确定备份数据库备份shell脚本定时shell脚本前言 当项目发布到服务器上后&#xff0c;接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃&#xff0c;而导致的数据丢失问…

使用上下游思维实现系统解耦

在软件开发领域&#xff0c;解耦这个词相信大家都不陌生。在面向对象的语境下&#xff0c;我们会应用SOLID原则来构建高内聚低耦合的应用&#xff0c;实现模块间的解耦&#xff1b;在复杂业务系统分析和建模时&#xff0c;会通过DDD的战略和战术设计帮助划分领域并实现分布式系…

Java毕业设计-校园活动赞助与宣传管理系统

&#x1f525;作者主页&#xff1a;疯狂行者&#x1f525; &#x1f496;✌java领域优质创作者,专注于Java技术领域技术交流✌&#x1f496; &#x1f496;文末获取源码&#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1…

(分布式缓存)Redis持久化

一、RDB持久化 首先需要在Linux系统中安装一个Redis&#xff0c;如果尚未安装的同学&#xff0c;可以参考下面链接教程安装先&#xff1a; (73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客 修改配置文件 创建一个数据 因为设置了只要5秒内有一次修改就会触发一次备份数据&am…

最全 Burp Suite 最新付费稳定版安装教程

介绍 Burp Suite是web应用程序渗透测试集成平台。从应用程序攻击表面的最初映射和分析,到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作。 平台中所有工具共享同一robust框架,以便统一处理HTTP请求、持久性、认证、上游代理、日志记录、报警和可扩…

《QDebug 2022年8月》

一、Qt Widgets 问题交流 1.QWidget鼠标事件穿透 对于一些透明或者半透明的QWidget&#xff0c;可能需要点击其下方的按钮或其他组件&#xff0c;但是QWidget本身是会接收这些鼠标事件的&#xff0c;需要一些额外的处理。下面是百度到的一些方法&#xff1a; 方式A.设置setA…

Nacos下载和安装-windows

Nacos官网&#xff1a;https://nacos.io/zh-cn/ Nacos官方文档&#xff1a;https://nacos.io/zh-cn/docs/quick-start.html 一、下载 进入nacos官网&#xff0c;选择相应版本下载 github上nacos的zip资源&#xff0c;下载速度奇慢问题。 百度网盘&#xff1a;https://pan.b…

云原生游戏第 2 讲:OpenKruiseGame 设计理念详解

后疫情时代&#xff0c;游戏行业步入高质量发展期&#xff0c;游戏云原生化势在必行。不久前&#xff0c;针对游戏行业云原生落地的难点、游戏玩家服容器化的困境等问题&#xff0c;阿里云容器服务团队通过直播课程《云原生游戏第1讲&#xff1a;游戏玩家服容器化的困境与解法》…

PMP每日一练 | 考试不迷路-9.1(包含敏捷+多选)

&#xff01;PMP最新考试通知 &#xff01; ​2022年6-8月落考考生可免费重考一次&#xff01; 11月考试可以报名 ​&#xff08;9月考试改到11月) 每日5道PMP习题助大家上岸PMP&#xff01;&#xff01;&#xff01; ​1.项目经理接到一个开发新产品的项目&#xff0c;这…

一体式城市内涝监测站

一体式城市内涝监测站 计讯物联一体式城市内涝监测站&#xff0c;智能监测城市重点区域视频监控、水位、雨量、水量、流速等&#xff0c;目标数据实时上报云端&#xff0c;相关部门远程云平台同步监控(视频图像、水雨情、积水、排水工况)&#xff0c;智能化管理系统实现城市防…

网课答案公众号题库接口使用详情

网课答案公众号题库接口使用详情 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

ATF启动(四):BL31

1、BL2跳转BL31 在上一页在bl2_main函数中的最后一句是&#xff1a; smc(BL1_SMC_RUN_IMAGE, (unsigned long)next_bl_ep_info, 0, 0, 0, 0, 0, 0); 这个是触发smc操作。这个smc的handle在bl1的阶段就被制定了。 这个handle smc id是BL1_SMC_RUN_IMAGE。对应的handle函数是…

猿创征文|全方位快速了解事务的4种隔离级别

MySQL事务隔离级别事务以及事务的隔离级别1. 概念2. 事务的特性3. 事务的隔离级别3.1 Q&#xff1a;那么为什么事务需要有隔离级别呢&#xff1f;3.2 Q&#xff1a;那么什么事务并发会产生的问题&#xff1f;总结&#xff1a;不可重复读的和幻读很容易混淆3.3 Q&#xff1a;事务…

Dubbo - 远程debug

由于Dubbo的特性是远程调用&#xff0c;因此正常来说无法在本地进行debug 因为你调用的方法在别台机器上跑&#xff0c;你只能知道给他的input和他返回的结果&#xff0c;但没办法知道这个接口内部的执行&#xff0c;所以也没办法在裡面打断点进行debug 就算在本地有dubbo代码…