pwm

LPC55S69之PWM

吃可爱长大的小学妹 提交于 2020-01-25 01:53:01
LPC55S69可以使用SC timer(SCT)或者ctimer来产生PWM,官方提供的ctimer例子比较好用,占空比和频率均可调。 但是,LPC55S69的SCT配置PWM在手册上没写清楚的,这里提供个例子,PWM的频率可在10Hz~1kHz之间可调,步进10Hz;占空比在1%~100%之间可调。 一、引脚。 二、外设。 三、代码。 #include "fsl_debug_console.h" #include "board.h" #include "fsl_sctimer.h" #include "pin_mux.h" #include <stdbool.h> #include "peripherals.h" int main(void) { uint8_t duty = 30; //1~100 uint32_t freq = 10; // 10Hz~1kHz,step=10Hz CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH); BOARD_InitPins(); BOARD_BootClockPLL150M(); BOARD_InitDebugConsole(); BOARD_InitBootPeripherals(); SCTIMER_StopTimer(SCT0_PERIPHERAL, kSCTIMER_Counter_L);

MPC5748G笔记 PWM pwm_pal

有些话、适合烂在心里 提交于 2020-01-18 01:31:26
文章目录 前言 eMIOS简介 新建工程 PE配置 补全代码 微信公众号 前言 MPC5748G开发环境搭建 MPC5748G S32_SDK_PA_RTM_3.0.0 GPIO 调试仿真设置 MPC5748G SDK 定时器 timing_pal MPC5748G UART uart_pal MPC5748G笔记 CAN can_pal MPC5748G笔记 以太网 LwIP 前几篇讲了开发环境的搭建, GPIO的读写操作, 调试仿真的设置, 定时器的使用, 串口的使用, CAN的收发, 以太网等, 本篇轻松一下, 看看PWM的用法. eMIOS简介 eMIOS全称 Configurable Enhanced Modular IO Subsystem , 不同于其他MCU用定时器搞PWM, MPC5748G用eMIOS, 似乎显得有些专业, 搞不懂没关系, 知道这玩意能搞PWM就可以. MPC5748G有3个eMIOS模块, 每个模块有32个通道, 均可以搞PWM: 又分了4种通道类型(X, Y, G, H): 通道和类型的对应图: 这样每个通道能实现哪些, 看一下类型可用的Mode Description就可以了, 几种类型都可以输出PWM, X和G有内部计数器. pwm_pal例程用板子的PA0的LED演示了PWM, 本篇也以此为例: 新建工程 步骤如下: 打开S32,

STM32之PWM

允我心安 提交于 2020-01-11 20:11:21
STM32 PWM PWM是脉冲宽度调制,是英文“Pulse Width Modulation” 的缩写,简称脉宽调制。用来控制电机,灯的亮暗,通过PWM配置后的引脚会输出方波。 pwm结构体初始化 //引脚和时钟的驱动就不在写出参考上两节 TIM_OCInitTypeDef TIM_OCInitStructure ; TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2 ; //选择 PWM 模式 2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable ; //比较输出使能 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High ; //输出极性高 TIM_OC2Init ( TIM3, & TIM_OCInitStructure ) ; //初始化 TIM3 OC2 TIM_OC2PreloadConfig ( TIM3, TIM_OCPreload_Enable ) ; //使能预装载寄存器 TIM_Cmd ( TIM3, ENABLE ) ; //使能 TIM3 PWM调节脉宽的函数 //参数1是说用定时器参数2是比较值 void TIM_SetCompare2 ( TIM_TypeDef* TIMx,

AVR单片机教程——PWM调光

↘锁芯ラ 提交于 2020-01-09 00:56:12
PWM 两位数码管的驱动方式是动态扫描,每一位都只有50%的时间是亮的,我们称这个数值为其占空比。让引脚输出高电平点亮LED,占空比就是100%。 在驱动数码管时,我们迫不得已使占空比为50%,因为不能让两位真正同时地显示不同的数字。但是,我们也可以有意地让LED的占空比不到100%,以降低其亮度。 占空比是可以用程序来调节的。下面的程序允许用户用按键调整蓝色LED的占空比,并通过数码管来显示。 #include <ee1/ee.h> #define DUTY_MAX 9 int main() { led_init(); button_init(PIN_NULL, PIN_NULL); segment_init(PIN_NULL, PIN_8); uint8_t duty = 0; while (1) { if (button_pressed(BUTTON_0) && duty > 0) --duty; if (button_pressed(BUTTON_1) && duty < DUTY_MAX) ++duty; segment_dec(duty); segment_display(SEGMENT_DIGIT_R); for (uint8_t i = 0; i != DUTY_MAX; ++i) { if (i < duty) led_set(LED_BLUE, true);

02树莓派4B—C语言编程——PWM

拈花ヽ惹草 提交于 2020-01-08 08:32:38
01树莓派直接输出PWM波 —— 硬件PWM程序 (推荐使用) #include <stdio.h> #include <wiringPi.h> #include <softPwm.h> //必不可少 int main( void) {   int pwm_gpio5 = 1; //使用GPIO5   int i=0;   wiringPiSetup(); //写的不严谨 应该也判断一下, 看初始化是否成功   pinMode(pwm_gpio5 ,PWM_OUTPUT);   printf("pwm_gpio5 is blinking...\n");   for(;;)   {     for(i=0;i<1024;i++)     {       pwmWrite(1,i);       delay(10);       printf("Testing is %d......\n",i);     }     for(i=1023;i>0;i--)     {       pwmWrite(1,i);       delay(10);       printf("Testing is %d......\n",i);     }   } } 02树莓派直接输出PWM波 —— 软件PWM程序 #include <stdio.h> #include <wiringPi.h>

PWM波控制舵机总结

主宰稳场 提交于 2020-01-04 22:48:49
文章转自:http://www.geek-workshop.com/thread-70-1-1.html 一、关于舵机: 舵机(英文叫Servo):它由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。通过发送信号,指定输出轴旋转角度。舵机一般而言都有最大旋转角度(比如180度。)与普通直流电机的区别主要在,直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(数字舵机可以在舵机模式和电机模式中切换,没有这个问题)。普通直流电机无法反馈转动的角度信息,而舵机可以。用途也不同,普通直流电机一般是整圈转动做动力用,舵机是控制某物体转动一定角度用(比如机器人的关节)。 舵机的形状和大小多的让人眼花缭乱,大致可以分为下面这几种(如图所示) 最右边的是常见的标准舵机,中间两个小的是微型舵机,左边魁梧的那个是大扭力舵机。图上这几种舵机都是三线控制。 制作机器人常用的舵机有下面几种,而且每种的固定方式也不同,如果从一个型号换成一个型号,整个机械结构都需要重新设计。 第一种是MG995,优点是价格便宜,金属齿轮,耐用度也不错。缺点是扭力比较小,所以负载不能太大,如果做双足机器人之类的这款舵机不是很合适,因为腿部受力太大。做做普通的六足,或者机械手还是不错的。 第二种是SR 403,这款舵机是网友xqi2因MG995做双足机器人抖动太厉害,摸索找到的,经过测试

STM32 PWM DAC实验:cubemx实现

拜拜、爱过 提交于 2020-01-03 18:25:35
PWM DAC其实跟DAC是两码事,DAC是STM32的一个功能,可以直接输出(0~3.3V)。而PWM DAC是定时器TIM的PWM功能间接实现输出模拟量,实际端口输出的是(0或3.3V),只不过应用RC滤波将电压稳定在(0~3.3V之间)。在对输出精度不高的时候可以用该方式。 该实验是TIM PWM的拓展。当用作DAC时需要滤波,阿波罗采用二阶RC滤波,而RC(电阻电容)是跟PWM的频率有关系的。 之前的TIM PWM实验是实现呼吸灯效果,用的是90分频,因为TIM的时钟为90MHZ,分频后的周期为1us,PWM自动重装载值为500,向上计数,如果比较值是250,那么就是250us输出0,250us输出1。 那么这个实验是用256分频,也是根据90M/256=351.5KHZ来确定的RC。 那为什么要用256分频呢?其实用200、300、400都可以,只不过为了规范,我们设计此次DAC采用8位精度,也就是256。TIM最大支持16位的,但是分辨率越高,分频后的频率越低,周期越长。所以用8位还是比较好的。 如何理解PWM呢,就好像是一个灯泡,他的额定电压是自动重装载值,低于比较值他就灭,高于比较值他就亮,虽然电压从0到自动装载值匀速变化,灯泡也亮灭转换,但当速度快时,人眼就看不出来亮灭了,我们只能看到他是柔和的光不亮不暗。(比较值/自动重装载值) 就是你想让他亮的程度。

PWM(Pulse Width Modulation)控制

ε祈祈猫儿з 提交于 2020-01-01 18:03:14
PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值).PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆 变电路中的应用,才确定了它在电力电子技术中的重要地位。 1 PWM相关概念 占空比:就是输出的PWM中,高电平保持的时间 与 该PWM的时钟周期的时间 之比 如,一个PWM的频率是1000Hz,那么它的时钟周期就是1ms,就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。 分辨率也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率), 16位的的PWM理论就是1:65535(单斜率)。 频率就是这样的,如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到,如果计数从0计到80之后又从0开始计到80.......,那么它的分辨率最小就是1:80了,但是,它也快了,也就是说PWM的输出频率高了。 双斜率 / 单斜率 假设一个PWM从0计数到80,之后又从0计数到80....... 这个就是单斜率。 假设一个PWM从0计数到80,之后是从80计数到0.....

RuntimeError: No access to /dev/mem

依然范特西╮ 提交于 2019-12-31 04:50:09
问题 I have been trying to use the Python GPIO PWM to control a set of LEDs connected to my RPi. When I run the Python script, I get the following error: Traceback (most recent call last): File "cycle.py", line 12, in <module> r = GPIO.PWM(f, RED) RuntimeError: No access to /dev/mem. Try running as root! I have tried running the script as root (both with sudo and with actually logging in as root). All of the other GPIO functions work correctly and I have tried doing an update and uninstalling

ESP32-S拥有业内极富竞争力的封装尺寸和超低功耗技术,尺寸仅为18.0*25.8*2.8mm 深度睡眠电流仅为6.5uA

断了今生、忘了曾经 提交于 2019-12-27 17:46:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ESP32-S拥有业内极富竞争力的封装尺寸和超低功耗技术,尺寸仅为18.0*25.8*2.8mm 深度睡眠电流仅为6.5uA. ESP32-S颗广泛用于各种物联网场合,适用于家庭自动化,工业无线控制,婴儿监控器,可穿戴电子产品,无线位置感知设备,无线定位系统信号及其它物联网应用,是物联网应用的理想解决方案; ESP32-S采用SMD封装,可通过标准SMT设备实现产品快速生产,为客户提供高客户可靠性的连接方式,特别适合自动化,大规模,低成本的现代化生产方式,方面应用于各种物联网硬件终端场合。 特性 --体积小的802.11b/g/n WI-FI+BT SoC模块; --采用低功耗双核32CPU,可做应用处理器; --主频高达340MHz,运算能力高达600DMIPS; --内置520KB SRAM; --支持UART/SPI/I2C/PWM/ADC/DAC等接口; --采用SMT-38封装,方便焊接与测试; --支持OpenOCD调试接口; --支持多种休眠模式,深度睡眠电流最小达到6uA; --内嵌Lwip和FreeRTOS; --支持STA/AP/STA+AP工作模式; --支持Smart Config/AirKiss 一键配网; --通用AT指令可快速上手; --支持串口本地升级和原厂固件升级(FOTA)