SYDTEK系列芯片低速PWM的三个模式和用法
SYD8801的pwm只能够挂在32.768Khz上,所以速度不是很快,但是他依旧支持三种模式,SYD8811和SYD8821就都有高速的PWM,挂在MCU的时钟上,这里以SYD8801作为说明,介绍三种PWM
SYD8801 PWM使用说明
Syd8801的PWM模块支持三种模式:闪光、PWM、呼吸灯,他们的时序如下:
使用内部定时器的话必须经过校准,对于外设驱动代码使用LPOCaliWaitUS函数进行校准,如果代码中包含了《syd_ble_keil.lib》库,则调用LPOCalibration函数进行校准。使用内部32.768Khz时钟的PWM程序如下:
static voidtimer2_callback(void);
uint8_t j=0;
int main()
{
uint8_t i=0;PWM_PARAMETER pwm_parameter;if(LPOCaliWaitUS(1000)){ //这是内部RC32k晶振的校准函数 for(i=0;i<6;i++){led_turn(LEDALL);delay_ms(300);}}else{for(i=0;i<20;i++){led_turn(LEDALL);delay_ms(300);}}//Flash modepwm_parameter.MODE=flash_mode;pwm_parameter.T1=0x10; //16 * 1/32=0.5s 实测0.768563250pwm_parameter.T2=0x20; //32 * 1/32=1s 实测1.585201375pwm_parameter.T3=0x0000;pwm_parameter.N1=0x80; pwm_parameter.N2=0x80;
pwm_enable(PWM_0,pwm_parameter);
//Breath mode timing pwm_parameter.MODE=breath_mode;pwm_parameter.BR_TH_MAX=0x28; //255/2=125.5mspwm_parameter.BR_TH_MIN=0x02; //2/2=1mspwm_parameter.T4=0x28; //255/2=125.5ms pwm_parameter.BR_SP=0x0f; //255/32=7.96876ms
pwm_enable(PWM_1,pwm_parameter);
//PWM mode timingpwm_parameter.MODE=pwm_mode;pwm_parameter.PWM_M=0xff; pwm_parameter.PWM_N=0xCF;
pwm_enable(PWM_2,pwm_parameter);
timer_2_enable(0x7D00,timer2_callback); // 32000 /31.25 ms = 976.5625 mswhile(1){if(j>180){ //最晚三分钟必须再校准一次j=0;LPOCaliWaitUS(1000);}}
}
static voidtimer2_callback(void)
{
j++;
}
这里要注意的是:这是因为现在使用的是内部的时钟基准,没有校准过的内部的时钟存在着很大的误差,所以调用LPOCaliWaitUS函数校准,并且3分钟必须校准一次。
如果这里使用32.768Khz的外部晶振则不需要校准,下面是使用外部32.768Khz的程序:
int main()
{
uint8_tdata;PWM_PARAMETERpwm_parameter;BBRFWrite(0x7F,0x00); // switch Bank A BBRFRead(0x03,&data); //读回要配置的寄存器BBRFWrite(0x03,data | 0x04); //置位B_M2_32KXtal_EN,打开外部晶振BBRFWrite(0x7F,0x02); // switch Bank CBBRFRead(0x00,&data); BBRFWrite(0x00,data | 0x01); //置位RG_CLK32K_SEL,使定时器使用外部32k晶振//Flashmodepwm_parameter.MODE=flash_mode;pwm_parameter.T1=0x10; //16 * 1/32=0.5spwm_parameter.T2=0x20; //32 * 1/32=1spwm_parameter.T3=0x0000;pwm_parameter.N1=0x80; //永久重复,没有T3pwm_parameter.N2=0x80; //永久重复
pwm_enable(PWM_0,pwm_parameter);
//Breathmode timing pwm_parameter.MODE=breath_mode;pwm_parameter.BR_TH_MAX=0x28; //40/2=20mspwm_parameter.BR_TH_MIN=0x0A; //10/2=1mspwm_parameter.T4=0x28; //40/2=20mspwm_parameter.BR_SP=0x0f; //15/32ms=0.46875ms
pwm_enable(PWM_1,pwm_parameter);
//PWMmode timingpwm_parameter.MODE=pwm_mode;pwm_parameter.PWM_M=0xff; //255/32ms=7.96875mspwm_parameter.PWM_N=0xCF; //207/32ms=6.46875ms
pwm_enable(PWM_2,pwm_parameter);
while(1){}
}
最后注意一点:PWM和定时器是独立的单元,也就是说SYD8801有三路定时器,三路PWM
SYDTEK系列芯片低速PWM的三个模式和用法相关推荐
- 安霸Ambarella三款CV系列芯片对比--CV2S、CV22S、CV25S
Ambarella是一家高清影像芯片研发商,主要提供低功耗.高清视频压缩与图像处理的解决方案.致力于提供超低码率与极小功耗下的高画质影像技术.今天就来简单说一下Ambarella三款CV系列芯片–CV ...
- 中科蓝讯AB536X系列芯片PWM使用说明
AB536X 支持 3 个定时器(Timer3,Timer4,Timer5,)PWM 输出,每个定时器支持 3 路 PWM 输出 ,分别是 PWM0 ,PWM1,PWM2,其中每个定时器支持 3 路周 ...
- 崩坏三x86架构闪退_不给X86留活路?苹果下一代M系列芯片竟然这么强
前阵子苹果发布了M1芯片(4大+4小核中央处理器.8核图形处理器. 16核架构的神经网络)和新一代Mac系列电脑,综合体验秒杀同属低功耗版(U系列和Y系列)的英特尔X86处理器,在部分跑分和视频渲染等 ...
- 乐鑫各系列芯片规格对比与主打市场分析,ESP8266/ESP32/ESP32-S2/ESP32-S3/ESP32-C3
首先,介绍下乐鑫公司: 乐鑫科技(股票代码:688018)是一家全球化的无晶圆厂半导体公司,成立于 2008 年,在中国.捷克.印度.新加坡和巴西均设有办公地,团队来自 20 多个国家和地区.乐鑫多年 ...
- 基于STM32系列芯片的 IAP实现的探索
基于STM32系列芯片的 IAP实现的探索 什么是IAP? 如何实现IAP? 第一步:学习官方源代码 第二步:了解STM32芯片基本硬件参数 第三步.搞清除STM32内置Flash 第四步. STM3 ...
- 要闻君说:台积电将为iPhone生产5纳米A系列芯片?腾讯云TStack与银河麒麟完成互认证……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 安霸Ambarella CV系列芯片
安霸Ambarella CV系列芯片 关于Ambarella(安霸半导体) Ambarella 的产品广泛应用于人类和计算机视觉领域,包括视频安防.高级驾驶辅助系统(ADAS).电子后视镜.行车记录仪 ...
- STM32 CM0+系列芯片的NRST模式之坑
因项目需要,ST那边给了一块NUCLEO-G031K8开发板,板子上一颗STM32G031K8T6U的CM0+芯片,看原理图芯片的NRST脚是连了外部按键复位电路(如图1).按理来说开发板的RST功能 ...
- STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现
STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 文章目录 STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 1 51单片机和STM32的不同点 2 寄存器 2 ...
最新文章
- E667:Fsync failed(how to solve)
- C语言数组测试函数,(完整word版)C语言数组与函数阶段测试题答案---(20200807070313)(8页)-原创力文档...
- Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件
- 回顾国产手机4年沉浮,仍然只是靠这三招翻身
- harbor登录验证_Harbor 源码浅析
- 《大型网站技术架构》1:概述
- c语言 显示 图形界面,「分享」C语言如何编写图形界面
- 【LeetCode】剑指 Offer 25. 合并两个排序的链表
- 有些投资人从机构出来,自己单干做投资,募资一毛钱都没募到
- CSS兼容性问题总结及解决方法
- 部署和调优 2.1 squid正向代理
- 当我们调用yield,它究竟做了什么
- 极光短信验证码JAVA_Android如何集成极光短信验证
- matlab 点云曲率,点云数据的主曲率和主方向估计方法
- VIS2020 长论文摘要机翻
- LODOP设计打印模板
- 2022“美亚杯”第八届中国电子数据取证大赛-团队赛题目
- Moniter和Lock
- Java开发必须会的技能!java页面导出数据到excel
- python xarray选中一年并删除其时间维度,返回所选年份数据
热门文章
- 小公司的坑,能躲一个是一个!
- MSDN Library for Visual Studio 2008 SP1 下载
- 大数据量树形数据表格展示, 虚拟表格,el-table, umy-ui, 表格懒加载
- 大数据Hadoop之——数据分析引擎Apache Pig
- 315M/433M无线红外探测器人体感应
- 如何寻找外链资源?SEO优化最全的外链资源
- guile学习(三)快捷键ctrl+d,以及一个数包含的偶数的阶乘的和怎么计算
- SitePoint播客#22:Bing的Boondoggles
- 利用pyecharts绘制分级地图的案例
- Spring 事务隔离