锦锐科技CA51F7系列笔记

news2024/10/21 13:43:37

1、PWM

(1)芯片一共有6个PWM通道(PWM0~PWM5)

(2)IRCH时钟IRCH 频率为 16MHz

(3)IRCL时钟(IRCL频率为100KHz)

(4)PFG时钟(PWM0的时钟固定为PFG)

(5)PWM1~5可以选择IRCH、IRCL和PFG时钟作为时钟源

(6)例程:
 

#define PWMxDIV 100    //分频比,根据时钟源可以算出频率

#define PWMxDUT 50     //50除以100为占空比

PWMxDIVH = PWMxDIV / 256

PWMxDIVL = PWMxDIV % 256

PWMxDUTH = PWMxDUT / 256

PWMxDUTL = PWMxDUT % 256

PWMDIV和PWMDUT是两个16位的数值(0到65535)。为了将它们储存在8位寄存器里面,需要将它们分为高8位部分和低8位部分

高8位部分(高字节):这是通过除以256得到的。是由于256是2的8次方,除以256相当于向右移动8位。

低8位部分(低字节):这是通过对256取余数 (% 256) 得到的

例如:

  • PWMxDIV = 100:

    • 高字节 (PWMxDIVH): 100 / 256 = 0
    • 低字节 (PWMxDIVL): 100 % 256 = 100
  • PWMxDUT = 50:

    • 高字节 (PWMxDUTH): 50 / 256 = 0
    • 低字节 (PWMxDUTL): 50 % 256 = 50

这样,你就可以将16位的值(100和50)分成两个8位的值,分别存储在8位的寄存器中。这个操作使得处理较大的数值在硬件资源有限的微控制器上成为可能。

(7)P07C = 0x3C,强灌电流

2、GPIO

例如, P00 设置为推挽输出,程序如下:
P00F = 2;
P00 设置为开漏输出,程序如下:
P00F = (1<<5)|2;
P00 设置为开漏输出,并且打开上拉,程序如下:
P00F = (1<<7) (1<<5) 2;
P00 设置为输入功能,并且打开上拉,程序如下:
P00F = (1<<7) 1;

LED1输出高电平,LED输出低电平,LED3悬浮输入,则D5亮红灯,其他灯不亮

void LED1_light()
{
    P14F = 2;
    P13F = 2;
    P12F = ~((1<<7) | (1<<6)) | 1;
    P14 = 1;
    P13 = 0;
    P12 = 0;
}

要让灯光按顺序亮,需要加入定时器中断和灯光扫描函数,这样能在快速不断的打开关闭IO口的时候,实现好几个灯同时点亮的效果。

void fun_led_scan()
{
    static unsigned char ledIndex = 0;
    ledIndex ++;
    if(ledIndex >= 6)
    {
        ledIndex = 0;
    }
    switch(ledIndex)
    {
        case 0:
            if(bLED1)
                LED1_light();
            break;

        case 1:
            if(bLED2)
                LED2_light();
            break;

        case 2:
            if(bLED3)
                LED3_light();
            break;

        case 3:
            if(bLED4)
                LED4_light();
            break;

        case 4:
            if(bLED5)
                LED5_light();
            break;

        case 5:
            if(bLED6)
                LED6_light();
            break;

        default:
            LEDall_OFF();
            ledIndex = 0;
            break;
     }
}

unsigned char bTimeBase_Onetime;

void TIMER0_ISR (void) interrupt 1
{
    bTimeBase_Onetime = 1;
    TH0 = TH_VAL;
    TL0 = TL_VAL;
    
    fun_led_scan();
}

3、中断

定时器0有4种模式,用户手册里面的东西太繁琐

定时器1有4种模式,用户手册里面的东西太繁琐

直接例程里面的代码拿来用就是。1ms中断(模式0),10ms中断(模式1),100us中断(模式2)

4、adc

例程直接拿来用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript 命令模式实战:打造可撤销的操作命令

一. 前言 在前端开发中&#xff0c;命令模式&#xff08;Command Pattern&#xff09;作为一种行为型设计模式&#xff0c;可以帮助我们将请求封装成一个对象&#xff0c;从而实现调用对象和执行对象之间的解耦&#xff0c;方便扩展和修改。 本文将和大家分享 JavaScript 中的…

实战子网掩码划分问题

拓扑要求总部有2个业务段&#xff0c;分部也有3个业务 还有互联地址段&#xff0c;还有管理地址段&#xff01;&#xff01;&#xff01;&#xff01; 23117 个段 192.168.1.0/24 怎么划分呢&#xff1f; 1 根据要求划分地址段 192.168.1.0/24 要划分7个网段那就…

linux------缓冲区与C库的原理

前言 一、缓冲区 缓冲区的作用是提高效率&#xff0c;因为将数据写入到设备&#xff0c;是需要调用系统接口的&#xff0c;如果每次写入缓冲区的数据就调用一次系统调用&#xff0c;涉及到系统调用这时操作系统就会介入&#xff0c;用户态转为内核态&#xff0c;这个过程需要时…

自然语言到 SQL 的曙光:我们准备好了吗?

发布于&#xff1a;2024 年 10 月 08 日 各位读者&#xff0c;国庆假期已过&#xff0c;我们打工人要开启奋斗新征程了&#xff0c;今天小编也是刚上班假期综合征还没过去&#xff0c;就被抓过来读论文&#xff0c;还好我在假期没闲着&#xff0c;整理了几篇关于 NL2SQL 的最新…

周易解读:两仪01

两 仪01 上一节里面&#xff0c;我们讲解了太极的知识。关于太极呢&#xff0c;它是可以有着多方面的含义。在这里呢&#xff0c;我们主要地&#xff0c;选取它的宇宙生成中的一种含义&#xff0c;认为太极是有所萌动&#xff0c;有所积累&#xff0c;但是呢&#xff0c;就是…

【YOLOv11】实战一:在LabVIEW 中使用OpenVINO实现YOLOv11

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f4d1;推荐文章&#xff1a;『LabVIEW人工智能深度学习指南』 &#x1f37b;本文由virobotics(仪酷…

单体应用、SOA 和微服务架构的区别

在软件架构的发展历程中&#xff0c;单体应用、面向服务架构&#xff08;SOA&#xff09;和微服务架构都有着各自的特点和适用场景。了解它们之间的区别&#xff0c;有助于我们在不同的项目需求下做出更合适的架构选择。 一、单体应用 &#xff08;一&#xff09;定义与特点 …

DAY8 Final等

Final关键字 final修饰静态变量&#xff0c;这个变量今后被称为常量&#xff0c; 可以记住一个固定值&#xff0c;并且程序中不能修改了&#xff0c;通常这个值作为系统的配置信息。常量的名称&#xff0c;建议全部大写&#xff0c;多个单词用下划线连接。 public static final…

PaddleOCR的包装生产日期识别_随记1

一、前言 项目难点 没有训练数据图像质量层次不齐: 角度倾斜、图片模糊、光照不足、过曝等问题严重 二.、环境搭建 本任务基于Aistudio完成, 具体环境如下&#xff1a; 操作系统: LinuxPaddleOCR: PaddleOCR_2.7text_renderer: masterpaddlepaddle-gpu2.6.0cuda版本是11.8,…

量化投资学习

1:投资定义就是付出一定的代价&#xff0c;期望能够得到一定汇报&#xff0c;可能会出现没有回报 2&#xff1a;投资分析流派 2.1:宏观策略分析法&#xff1a;从宏观经济大方向入手&#xff0c;再应用到具体股票也叫自上而下的研究方法&#xff0c;需要理解这个趋势的核心驱动…

TS中的接口、泛型、自定义类型 与vue3的使用

泛型的使用场景&#xff1a; 当我们定义了一个对象时&#xff0c;在多次传值的过程中&#xff0c;其对象中的属性值被更改了&#xff0c;以至于后期拿不到我们需要的数据。 举个例子&#xff0c;当我们使用person.name时&#xff0c;是可以使用的。但是多次传递之后&#xff…

讯方·智汇云校华为ICT大赛赛前辅导直播安排

华为ICT大赛赛前辅导直播安排 网络赛道在“智汇云校”视频号上观看。 直播时间&#xff1a; 网络&#xff1a;2024.10.14-10.15-10.17-10.18-10.21-10.23-10.25-10.28-10.29-10.30-11.1-11.4-11.5-11.6&#xff0c;每晚19&#xff1a;30-22&#xff1a;00 安全&#xff1a;2024…

【Next.js 入门教程系列】05-数据库

原文链接 CSDN 的排版/样式可能有问题&#xff0c;去我的博客查看原文系列吧&#xff0c;觉得有用的话&#xff0c; 给我的库点个star&#xff0c;关注一下吧 上一篇【Next.js 入门教程系列】04-构造 API 数据库 本篇包括以下内容: Setting up PrismaDefining data modelsCreat…

pinia学习笔记(1.0)

首先贴出官网地址&#xff1a;开始 | Pinia pinia作为Vue3项目中常用的状态管理工具&#xff0c;正逐渐取代vuex&#xff0c;现从0到1自己搭建pinia仓库。 首先&#xff0c;安装pinia&#xff0c;使用包管理器工具&#xff08;npm,pnpm,yarn,Bun等都可以&#xff09; 安装成…

QGIS如何在正射影像中获得绘制线段的长度信息||QGIS如何获取绘制点的经纬度(如何生成WKT属性)并且导出为CSV文件

QGIS如何在正射影像中获得绘制线段的长度信息 前置条件&#xff1a; 导入正射影像和绘制完需要计算长度的绘制线段后 1.检查菜单栏是否有数据处理&#xff08;processing&#xff09;按键&#xff0c;如果没有的话请根据以下链接打开processing工具箱&#xff1a;https://bl…

微服务架构 --- Nacos的项目实战操作

目录 一.什么是Nacos&#xff1f; 二.什么是注册中心&#xff1f; 1.注册中心的定义&#xff1a; 2.为什么需要使用注册中心&#xff1f; 3.注册中心原理&#xff1a; 三.Nacos的使用&#xff1a; 1.安装与启动Nacos&#xff1a; 2.集成 Nacos 服务注册与发现&#xff…

邀你一起共建谷歌封号申诉共享库

大家好&#xff0c;我是牢鹅&#xff01;相信很多老粉是通过谷歌封号的三篇文章《聊聊「谷歌8.3」账号封禁解析与应对思路 》和《聊聊谷歌「高风险」封号问题解析与应对思路》、《聊聊这半年来&#xff0c;谷歌为何频繁封号&#xff1f;》关注牢鹅的&#xff0c;在这将近半年的…

架构设计笔记-13-层次式架构设计理论与实践

目录 知识要点 综合知识 案例分析 1.SSM框架 2.MVC模式&#xff0c;XML 3.MVC架构脆弱性 4.容器技术的优势 5.对象关系映射ORM技术 知识要点 一般来说&#xff0c;架构可以分为表现层、中间层和持久层三个层次。 表现层&#xff1a;表现层主要负责接收用户的请求&…

【论文翻译】TITAN:用于交通流量预测的异构专家混合模型

题目A TIME SERIES IS WORTH FIVE EXPERTS: HETEROGENEOUS MIXTURE OF EXPERTS FOR TRAFFIC FLOW PREDICTION论文链接https://arxiv.org/pdf/2409.17440源码地址https://github.com/sqlcow/TITAN&#xff08;作者说论文被接受后&#xff0c;代码将更新&#xff09; 摘要 准确的…

API项目4:开发SDK

面临另一个问题 作为开发者&#xff0c;每次调用接口都需要自己生成时间戳&#xff0c;编写签名算法&#xff0c;生成随机数等等&#xff0c;这些都是相当繁琐的工作。 因此&#xff0c;要想办法让开发者能够以最简单的方式调用接口。开发者只需要关心传递哪些参数以及他们的…