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的三个模式和用法相关推荐

  1. 安霸Ambarella三款CV系列芯片对比--CV2S、CV22S、CV25S

    Ambarella是一家高清影像芯片研发商,主要提供低功耗.高清视频压缩与图像处理的解决方案.致力于提供超低码率与极小功耗下的高画质影像技术.今天就来简单说一下Ambarella三款CV系列芯片–CV ...

  2. 中科蓝讯AB536X系列芯片PWM使用说明

    AB536X 支持 3 个定时器(Timer3,Timer4,Timer5,)PWM 输出,每个定时器支持 3 路 PWM 输出 ,分别是 PWM0 ,PWM1,PWM2,其中每个定时器支持 3 路周 ...

  3. 崩坏三x86架构闪退_不给X86留活路?苹果下一代M系列芯片竟然这么强

    前阵子苹果发布了M1芯片(4大+4小核中央处理器.8核图形处理器. 16核架构的神经网络)和新一代Mac系列电脑,综合体验秒杀同属低功耗版(U系列和Y系列)的英特尔X86处理器,在部分跑分和视频渲染等 ...

  4. 乐鑫各系列芯片规格对比与主打市场分析,ESP8266/ESP32/ESP32-S2/ESP32-S3/ESP32-C3

    首先,介绍下乐鑫公司: 乐鑫科技(股票代码:688018)是一家全球化的无晶圆厂半导体公司,成立于 2008 年,在中国.捷克.印度.新加坡和巴西均设有办公地,团队来自 20 多个国家和地区.乐鑫多年 ...

  5. 基于STM32系列芯片的 IAP实现的探索

    基于STM32系列芯片的 IAP实现的探索 什么是IAP? 如何实现IAP? 第一步:学习官方源代码 第二步:了解STM32芯片基本硬件参数 第三步.搞清除STM32内置Flash 第四步. STM3 ...

  6. 要闻君说:台积电将为iPhone生产5纳米A系列芯片?腾讯云TStack与银河麒麟完成互认证……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  7. 安霸Ambarella CV系列芯片

    安霸Ambarella CV系列芯片 关于Ambarella(安霸半导体) Ambarella 的产品广泛应用于人类和计算机视觉领域,包括视频安防.高级驾驶辅助系统(ADAS).电子后视镜.行车记录仪 ...

  8. STM32 CM0+系列芯片的NRST模式之坑

    因项目需要,ST那边给了一块NUCLEO-G031K8开发板,板子上一颗STM32G031K8T6U的CM0+芯片,看原理图芯片的NRST脚是连了外部按键复位电路(如图1).按理来说开发板的RST功能 ...

  9. STM32F103系列芯片的地址和寄存器映射原理、LED轮流闪烁实现

    STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 文章目录 STM32F103系列芯片的地址和寄存器映射原理.LED轮流闪烁实现 1 51单片机和STM32的不同点 2 寄存器 2 ...

最新文章

  1. E667:Fsync failed(how to solve)
  2. C语言数组测试函数,(完整word版)C语言数组与函数阶段测试题答案---(20200807070313)(8页)-原创力文档...
  3. Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件
  4. 回顾国产手机4年沉浮,仍然只是靠这三招翻身
  5. harbor登录验证_Harbor 源码浅析
  6. 《大型网站技术架构》1:概述
  7. c语言 显示 图形界面,「分享」C语言如何编写图形界面
  8. 【LeetCode】剑指 Offer 25. 合并两个排序的链表
  9. 有些投资人从机构出来,自己单干做投资,募资一毛钱都没募到
  10. CSS兼容性问题总结及解决方法
  11. 部署和调优 2.1 squid正向代理
  12. 当我们调用yield,它究竟做了什么
  13. 极光短信验证码JAVA_Android如何集成极光短信验证
  14. matlab 点云曲率,点云数据的主曲率和主方向估计方法
  15. VIS2020 长论文摘要机翻
  16. LODOP设计打印模板
  17. 2022“美亚杯”第八届中国电子数据取证大赛-团队赛题目
  18. Moniter和Lock
  19. Java开发必须会的技能!java页面导出数据到excel
  20. python xarray选中一年并删除其时间维度,返回所选年份数据

热门文章

  1. 小公司的坑,能躲一个是一个!
  2. MSDN Library for Visual Studio 2008 SP1 下载
  3. 大数据量树形数据表格展示, 虚拟表格,el-table, umy-ui, 表格懒加载
  4. 大数据Hadoop之——数据分析引擎Apache Pig
  5. 315M/433M无线红外探测器人体感应
  6. 如何寻找外链资源?SEO优化最全的外链资源
  7. guile学习(三)快捷键ctrl+d,以及一个数包含的偶数的阶乘的和怎么计算
  8. SitePoint播客#22:Bing的Boondoggles
  9. 利用pyecharts绘制分级地图的案例
  10. Spring 事务隔离