锦锐科技CA51F7系列笔记

server/2024/10/15 18:15:13/

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 / 256PWMxDIVL = PWMxDIV % 256PWMxDUTH = PWMxDUT / 256PWMxDUTL = 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.ppmy.cn/server/132307.html

相关文章

智能叉车管理系统,提高仓库安全性

在N2023B智能叉车系统的深入应用中&#xff0c;人脸识别认证技术不仅成功解决了人员使用混乱的问题&#xff0c;还进一步提升了仓库与物流中心的安全性与管理效率。系统通过高精度的人脸识别算法&#xff0c;能够在毫秒级时间内完成员工的身份验证&#xff0c;确保只有经过授权…

Kubernetes(K8s)的简介

一、Kubernetes的简介 1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应…

CC2530定时器1实现查询定时1-2

1源码 #include "iocc2530.h"void led_init(){P1SEL &~0xff;//通用ioP1DIR |0x01;//输入输出P1_00;//灭灯 }void T1_init(){T1CTL 0x0d;//设置分频&#xff0c;和模式(128分频&#xff0c;0x0000~0xffff) // 最大计数值定时时长/定时器计数周期0.25/&#xff08…

【揭秘】短剧小程序爆火背后:狗血剧情背后的百万商机!

近年来&#xff0c;随着移动互联网的迅猛发展&#xff0c;短视频和短剧逐渐成为人们日常娱乐消遣的新宠儿。尤其是一些充满戏剧冲突、情节紧凑的短剧&#xff0c;在各大社交平台上迅速走红&#xff0c;吸引了大量年轻用户的关注。今天我们就来揭开这些短剧小程序爆火的秘密&…

基于YOLOv11的车辆行人实时检测系统(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)

上百种【基于YOLOv8/v10/v11的目标检测系统】目录&#xff08;pythonpyside6界面系统源码可训练的数据集也完成的训练模型&#xff09;-CSDN博客 ............................................................................................ 摘要&#xff1a; 本文提出了…

鸿蒙--播放器状态控制

各个页面共享同一个播放状态,而且可以互相控制,如果传递来传递去会非常的麻烦,但是他们都是Tabs组件内的,我们在index页面提供一个状态,在各个组件接收即可 创建两个子组件,一个是播放控制的子组件,一个是背景播放的子组件 背景播放组件

部署私有仓库以及docker web ui应用

官方地址&#xff1a;https://hub.docker.com/_/registry/tags 一、拉取registry私有仓库镜像 docker pull registry:latest 二、运⾏容器 docker run -itd -v /home/dockerdata/registry:/var/lib/registry --name "pri_registry1" --restartalways -p 5000:5000 …

专题:贪心算法(已完结)

1.分发饼干 方法一&#xff1a;用最大的胃口 找到最大的饼干&#xff08;先遍历胃口&#xff09; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 主要思路 用最大的饼干找最大的胃口sort(g.begin(),g.end());so…