S32K144 PWM实践
S32K144------PWM实践
- 环境
- 第一步、添加模块
- 第二步、在PIN_MUX中进行设置具体通道
- 第三步、对PWM模块进行设置
- 第四步、拖出相应函数
- 第五步、函数实例
环境
1、软件使用S32DS
2、使用库3.0
3、模块是PWM_PAL
4、硬件条件:开发板
第一步、添加模块
第二步、在PIN_MUX中进行设置具体通道
第三步、对PWM模块进行设置
第四步、拖出相应函数
第五步、函数实例
// An highlighted block
/* * Copyright (c) 2015 - 2016 , Freescale Semiconductor, Inc.* Copyright 2016-2018 NXP* All rights reserved.** THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.* IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF* THE POSSIBILITY OF SUCH DAMAGE.*//* Including needed modules to compile this module/procedure */
#include "Cpu.h"
#if CPU_INIT_CONFIG#include "Init_Config.h"
#endifvolatile int exit_code = 0;
/* User includes (#include below this line is not maintained by Processor Expert) */#include <stdint.h>
#include <stdbool.h>/* This example is setup to work by default with EVB. To use it with other boardsplease comment the following line
*/
void delay(volatile int cycles)
{/* Delay function - do nothing for a number of cycles */while(cycles--);
}
/*! \brief The main function for the project.\details The startup initialization sequence is the following:* - __start (startup asm routine)* - __init_hardware()* - main()* - PE_low_level_init()* - Common_Init()* - Peripherals_Init()
*/
int main(void)
{/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/#ifdef PEX_RTOS_INITPEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */#endif/*** End of Processor Expert internal initialization. ***/uint32_t duty = 0;bool increaseDuty = true;uint8_t channel = pwm_pal1Configs.pwmChannels[0].channel;/* Initialize and configure clocks* - see clock manager component for details*/CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);/* Initialize pins* - See PinSettings component for more info*/PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);/* Initialize PWM */PWM_Init(&pwm_pal1Instance, &pwm_pal1Configs);while(1){PWM_UpdateDuty(&pwm_pal1Instance, channel, duty);if (increaseDuty == true){duty++;if (duty > 4999U)increaseDuty = false; }else{duty--;if (duty < 1U)increaseDuty = true;}delay(1500U);}/*** Don't write any code pass this line, or it will be deleted during code generation. ***//*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/#ifdef PEX_RTOS_STARTPEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */#endif/*** End of RTOS startup code. ***//*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/for(;;) {if(exit_code != 0) {break;}}return exit_code;/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***//* END main */
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert 10.1 [05.21]
** for the Freescale S32K series of microcontrollers.
**
** ###################################################################
*/
S32K144 PWM实践相关推荐
- ios如何介入苹果广告_苹果公司的iOS 14广告股票面临新的重大挑战
ios如何介入苹果广告 This earnings season promises to be a wild ride across the tech sector as initial impact ...
- S32K系列S32K144学习笔记——PWM
一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:PTC2端口输出PWM 如有错误,麻烦帮忙指 ...
- clark变换_电力变换器PWM原理与实践,p43页,空间矢量理解
所看书籍:<Pulse Width Modulation for Power Converters Principles and Practice >by D. Grahame Holme ...
- 单片机PWM输出原理与实践
一.什么是PWM? PWM(Pulse Width Modulation)脉冲宽度调制,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码. ...
- W600 PWM捕获功能
之前理解过,可是因为没有实践所以不够深刻,现在问了下同事就又想起来了,这里记录一下: PWM捕获有两个相关的寄存器,分别存放pwm输入口所输入的波形的高电平持续时间和低电平持续时间, 每来一个周期,数 ...
- Windows on Device 项目实践 4 - 智能风扇制作
在前面的文章中,我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器.感光灯和PWM调光灯.在这个项目中,我们来利用温度传感器和直流电机,完成一个简 ...
- c语言pwm调制方式,pwm调制原理同步调制_几种pwm调制方式介绍 - 全文
PWM简介 脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量.通信到功率控制与变换的许多领域中. 脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调 ...
- pwm超详细解读,大佬细说pwm的控制方式
pwm,也就是常说的脉冲宽度调制脉冲宽度调制技术.目前,pwm技术的应用是非常多的.为了增进大家对pwm的认识,本文将对pwm的几种控制方法进行详细的阐述,保证大家彻底理解 ...
- 51 PWM调速蓝牙小车
文章目录 前言 一.硬件配置 二.相关接线 1.L298N驱动模块 2.HC-05蓝牙模块 3.接线图解 三.PWM调速 四.完整代码 总结 前言 当你看到无人机升天.平衡车的落地以及超声波避障等技术 ...
最新文章
- boost::mpl::abs相关的测试程序
- mysql服务器多线程模型_mysql-线程模型
- Dev C++ 运行后显示Failed to execute 文件夹位置: Error 0: 操作成功完成。(只需一步)
- 《Java技术》第九次作业计科1501赵健宇-IO
- c++ 函数的值传递,引用传递 和 引用返回的探索
- kvm 虚拟机常用命令
- 21天Jmeter打卡day15 配置元件之用户定义的变量
- Linux debian live USB,用 Live Magic 制作 Debian Live 光盘
- Windows中的磁盘分区、MBR、GPT
- paip.输入法编程----二级汉字2350个常用汉字2350个
- 打印机服务器不支持1020,Win7系统安装hp1020打印机后无法使用如何解决
- 硬盘格式化后想要数据恢复的详细步骤攻略
- 三七皂苷-壳聚糖(PNS-CSB)水凝胶/聚乙烯吡咯烷酮/pH敏感性羧甲基/壳聚糖水凝胶的制备
- 使用selenium自动登录126/163邮箱并自动发送邮件
- Visual Studio2019新手C++教程(一)
- 【趣味AI】手把手教你用AI画画
- CSRF 跨站请求伪造攻击
- 隐藏删除 gitbook Published with GitBook 的方法
- 你们公司要求你写过如软著和专利吗?
- 粘塑性自洽(Visco-Plastic Self-Consistent,VPSC)晶体塑性模型简介