ARM7入门14,脉宽调制PWM

发布者:asd999ddd最新更新时间:2016-11-01 来源: eefocus关键字:ARM7入门  脉宽调制  PWM 手机看文章 扫描二维码
随时随地手机看文章

每次点一下按键,就改变一次占空比

主程序:

/*******************************************************************************
*File: Main.c
*功能: 使用PWM6输出PWM信号,通过滤波电路实现DAC转换.由KEY1控制PWM占空比,每按一次
*      按键将会改变一次PWM的占空比
*******************************************************************************/
#include "config.h"
#define   KEY1   0x00004000        /*P0.14引脚连接KEY1*/

/*******************************************************************************
*名称: WaitKey()
*功能: 等待一个有效按键,有去抖功能
*******************************************************************************/
void WaitKey(void)
{ uint32 i;

  while(1)
  { while((IO0PIN&KEY1)!=0);                 //等待KEY1键按下
    for(i=0;i<50;i++);                      //延时去抖
    if((IO0PIN&KEY1)==0)break;
  }
    while((IO0PIN&KEY1)==0);                   //等待KEY1键放开
}
/*******************************************************************************
*名称: main()
*功能: 使用PWM6输出占空比可调的PWM波形
*******************************************************************************/
int main(void)
{ uint32  pwmdata;                        //PWM占空比控制变量
  PINSEL0=0x00080000;                     //设置PWM6连接到P0.9引脚
  PINSEL1=0x00000000;                     //其他引脚设置为GPIO
  TargetInit();                           //PWM初始化
  pwmdata=34560;
  while(1)
  {  PWMMR0=69120;                         //设置PWM周期
     PWMMR6=pwmdata;                      //设置PWM占空比
     PWMLER=0x41;                         //PWMMR0,PWMMR6锁存,更新PWM占空比
     WaitKey();                           //等待按键
     pwmdata+=1000;                        //改变PWM占空比控制变量
     if(pwmdata>=69120)pwmdata=0;
  }
}
初始化程序:

/*********************************************************************************************************
** 函数名称: TargetInit
** 功能描述: 目标板初始化代码,在需要的地方调用,根据需要改变

********************************************************************************************************/
        void TargetInit(void)
{
    PWMPR=0x00;                      //不分频,计数频率为Fpclk
  PWMMCR=0x02;                     //设置PWMMR0匹配时复位PWMTC
  PWMMR0=69120;                     //设置PWM周期
  PWMMR6=34560;                     //设置PWM占空比
  PWMLER=0x41;                     //PWMMR0,PWMMR6锁存
  PWMPCR=0x4000;                   //允许PWM6输出,单边PWM
  PWMTCR=0x09;                     //启动定时器,PWM使能
 /* 添加自己的代码 */
}

关键字:ARM7入门  脉宽调制  PWM 引用地址:ARM7入门14,脉宽调制PWM

上一篇:ARM7入门15,看门狗定时器
下一篇:LM3S1138入门10,深度睡眠省电模式

推荐阅读最新更新时间:2024-03-16 15:18

AVR单片机4路可调PWM
#include avr/io.h #include avr/interrupt.h int main(void) { DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0X00; TIMSK=0X00; TCNT0=0; OCR0=25; TCCR0=0B01101001; //定时器1,输出7.81220kHz的方波 TCNT1H=0x00; //计数器清零 TCNT1L=0x00; TCCR1A=0xa9; //8位快速PWM,8分频; TCCR1B=0x0a; TCCR1C=0x00; OCR1A=0x40; //OC1A 输出
[单片机]
PWM的单片机产生
在上次说的直流电机调速的项目中,用了S52单片机的T2定时器产生PWM波信号,用于控制直流电机的转速,虽然电机的平均速度与占空比不是严格的线性关系,但是在调节占空比可以明显的看出电机转速发生了改变,也算是满足了课题的要求。下面复习一下PWM的知识吧。 PWM 脉冲宽度调制(Pulse Width Modulation),是一种周期一定而高低电平可调的方波信号。当输出脉冲的频率一定时,输出脉冲的占空比越大,相对应的输出有效电压越大。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。 图1 PWM波示意图 如上图所示T1为脉冲宽度(就是导通时间),周期为T,则输出电压的平均值为U=VCC*T1
[单片机]
<font color='red'>PWM</font>的单片机产生
一种三MCU系统的硬件实现
随着电力电子技术和微电子技术的飞速发展,变频调速技术也在日新月异地进步。智能微控制器的不断完善和智能功率模块(IPM)的更新换代更加促进了变频调速技术的进步。近十多年来,以半导体功率器件为基础的PWM变频及脉宽调速技术在各个领域得到了广泛的应用。如何在普通环境中应用最新的电子技术成果,通过优化PWM算法提高控制性能,一直是技术人员的不懈追求。 本文介绍三菱公司最近推出的一种16位专用变频调速微处理器M37906及三菱公司第四代智能功率模块DIP-IPM的性能特点,并结合不对称规则采样PWM算法,对微处理器M37906和智能功率模块PS21245组成的变频器的软硬件进行说明。 1 M37906微处理器 1.1 M37906微
[单片机]
PWM调速在恒温控制中的应用
  1 引言   众所周知, 要实现直流电机的远程调速控制及温度检测, 信号传输问题无疑是重要的, 传统的模拟控制法,不仅难以满足远程传输需求, 而且电路过于复杂。采用计算机技术、总线技术和通讯技术, 不仅可以使整个系统变得简单,而且有利于实现分布式集散控制,提高智能化控制水平。本文介绍一种以8051 系统为主控制器的远程恒温控制解决方案,它采用RS-485 总线解决直流电机PWM调速(制冷)、温度检测和PC 通讯等环节的信号传输问题。系统采用全数字设计方案, 结构简单。当该系统以单片机为主控制器单独工作时监控距离可以达到1.2km,如果与微机联网使用,则监控距离可以增加到2.4km。   2 控制原理及硬件结构   该系统
[单片机]
<font color='red'>PWM</font>调速在恒温控制中的应用
TX2440裸机时钟-PWM
一、定时器框图 S3c2440 有5 个16 位的定时器。由下面框图可知: 1、定时器0、1、2、3 有脉宽调制功能(PWM)。定时器4有一个没有输出引脚的内部定时器。定时器0 有一个用于大电流设备的死区生成器。 2、PCLK时钟首先经过8bit预分频器:定时器0 和1 共享一个8 位的预分频器,定时器2,3,4 共享另一个8 位预分频器 3、定时器时钟输入通道可选(通过MUX多选一开关): 1、内部时钟:经过预分频的1/2、1/4、1/8、1/16分频 2、外部时钟TLCK0 、TLCK1。 4、TCMPBn----定时器n比较缓冲寄存器 TCNTBn-----定时器n计数缓冲寄存器
[单片机]
TX2440裸机时钟-<font color='red'>PWM</font>
MSP-EXP430F5529LP开发板004-PWM库函数
测试了TIMER_A的PWM几种模式 pwmMultipleUp 2.06kHz,75%占空比 #include wdt_a.h #include gpio.h #include timer_a.h #define TIMER_PERIOD 511 #define DUTY_CYCLE1 384 #define DUTY_CYCLE2 128 int main( void ) { volatile unsigned int i; WDT_A_hold(WDT_A_BASE); //P2.0 and P2.1 output //P2.0 and P2.1 options select GPIO_set
[单片机]
51单片机如何扩展外部端口
我们知道 51单片机本身是没有pwm接口的,这个程序是通过软件模拟pwm.在一定的频率的方波中,调整高电平和低电平的占空比,即可实现LED灯亮度控制。           要用51产生PWM去控制LED,首先要确定PWM的周期T和占空比D,确定了这些以后,可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则D*T=n*t,类似的可以求出PWM低电平时间需要多少个时间基准n'。 那么就可以编写程序,根据定的时间基准t给定时器赋值初始化,然后开启定时器,定义一个标志位flag,根据flag的状态决定输出高平还是低电平,假设定义flag=1的时候输出高电平,用一个变量去记录定时器中断的次数,每次中断就让记
[单片机]
高精度三相PWM波形产生器SA4828在逆变器中的应用
    摘要: SA4828是Mitel公司生产的三相PWM波开产生器,它可提供高质量,全数字的三相脉宽调制波形,而且编程简单方便,修改灵活,文中介绍SA4828的原理及其应用在逆变器中的软、硬件设计方法。     关键词: 脉宽调制(PWM)  控制  逆变  SA4828 1 引言     脉宽调制(PWM)控制技术在逆变电路中得到广泛的应用,其波形产生方法有两种:一是模拟方法,二是数字方法。模拟方法电路结构复杂,有温漂现象,难以实现精确控制。数字方法则克服了上述缺点。MITEL公司生产的SA系统PWM波形产生器具有精度高、抗干扰能力强、外围电路简单等优点,其中SA4828是主要用于变频调速、逆变电源及
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved