一种PWM输出控制方法技术

技术编号:7065406 阅读:261 留言:0更新日期:2012-04-11 18:40
一种PWM输出控制方法,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM工作在睡眠时钟状态;同时通过设置控制寄存器改变PWM的工作频率;然后通过设置数据寄存器改变PWM的开通时间和关断时间,其步骤如下:1、程序开始;2、对控制寄存器和数据寄存器进行初始化;3、设置控制寄存器值,选择PWM的工作状态及其工作频率;4、判断是否有PWM输出需求;5、无输出需求则执行其他操作,有则根据需求设置数据寄存器值;6、读取设置的控制寄存器和数据寄存器的值;7、判断系统是否产生中断;8、产生中断则执行步骤6,否则输出PWM。保证PWM的输出不受系统中断的影响,又能同时支持系统时钟和睡眠时钟的PWM输出。

【技术实现步骤摘要】

本专利技术涉及一种脉宽调制技术,特别是涉及一种PWM输出控制方法
技术介绍
目前,脉宽调制PWM (英文Pulse Width Modulation的缩写)控制方法主要有两种方式一是利用普通GPIO 口模拟输出PWM ;二是用专用PWM 口产生PWM波,采用IC内部计数器方式进行控制PWM。在使用普通GPIO 口模拟PWM时,需要软件用指令周期的整数倍去控制PWM的导通时间和关断时间,这种方式就需要软件一直运行,当系统运行任务较多时或产生中断时,这种方式就可能发生紊乱,导致PWM输出出错。若采用硬件计数器方式控制PWM脉冲宽度,虽然可以解决系统出错的问题,但是这种方式一般只能适用于一种时钟频率,当系统睡眠状态时,PWM将无法输出,也就无法满足用户的多种需求。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种PWM输出控制方法,使用寄存器控制PWM的输出,既能保证PWM的输出不受系统中断的影响,又能同时支持系统时钟和睡眠时钟的PWM输出,在省电的同时又能满足用户的不同需求。为了达到上述目的,本专利技术采用的技术方案是,一种PWM输出控制方法,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM 工作在睡眠时钟状态;同时通过设置控制寄存器改变PWM的工作频率;然后通过设置数据寄存器改变PWM的开通时间和关断时间,其步骤如下步骤1、程序开始;步骤2、对控制寄存器和数据寄存器进行初始化;步骤3、设置控制寄存器值,选择PWM的工作状态及其工作频率;步骤4、判断是否有PWM输出需求;步骤5、无输出需求则执行其他操作,有则根据需求设置数据寄存器值; 步骤6、读取设置的控制寄存器和数据寄存器的值; 步骤7、判断系统是否产生中断; 步骤8、产生中断则执行步骤6,否则输出PWM。控制寄存器为8位或16位寄存器,控制寄存器控制PWM的工作频率设置、时钟频率选择、PWM工作状态及数据存储位置;控制寄存器相应的状态位控制选择系统时钟或睡眠时钟,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM工作在睡眠时钟状态;控制寄存器通过控制寄存器对应的两位或三位状态位对PWM工作频率进行设置。数据寄存器为三个8位或16位寄存器,分别用来设置PWM脉冲数量、脉冲宽度及开通时间,脉冲周期与开通时间的差值为关断时间。步骤5中所述的执行其他操作在手机中为执行关闭背光操作、关机操作、打开管理器操作,与输出PWM无关的操作。与现有技术相比,本专利技术的有益效果是使用寄存器控制PWM的输出,既能保证 PWM的输出不受系统中断的影响,又能同时支持系统时钟和睡眠时钟的PWM输出,在省电的同时又能满足用户的不同需求。附图说明图1为采用GPIO模拟方式在系统响应中断是PWM输出波形; 图2为本专利技术在系统响应中断时PWM输出波形;图3为本专利技术在系统时钟下输出波形; 图4为本专利技术在睡眠时钟下输出波形; 图5为本专利技术具体控制流程图。具体实施例方式本专利技术的主旨在于克服现有技术的不足,提供一种PWM输出控制方法,使用寄存器控制PWM的输出,既能保证PWM的输出不受系统中断的影响,又能同时支持系统时钟和睡眠时钟的PWM输出,在省电的同时又能满足用户的不同需求。下面结合实施例参照附图进行详细说明,以便对本专利技术的技术特征及优点进行更深入的诠释。本专利技术的控制流程图如图5所示,一种PWM输出控制方法,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM工作在睡眠时钟状态;同时通过设置控制寄存器改变PWM的工作频率;然后通过设置数据寄存器改变 PWM的开通时间和关断时间,其步骤如下步骤1、程序开始;步骤2、对控制寄存器和数据寄存器进行初始化;步骤3、设置控制寄存器值,选择PWM的工作状态及其工作频率;步骤4、判断是否有PWM输出需求;步骤5、无输出需求则执行其他操作,有则根据需求设置数据寄存器值; 步骤6、读取设置的控制寄存器和数据寄存器的值; 步骤7、判断系统是否产生中断; 步骤8、产生中断则执行步骤6,否则输出PWM。上述步骤中所述的控制寄存器为8位或16位寄存器,控制寄存器控制PWM的工作频率设置、时钟频率选择、PWM工作状态及数据存储位置;控制寄存器相应的状态位控制选择系统时钟或睡眠时钟,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM工作在睡眠时钟状态;控制寄存器通过控制寄存器对应的两位或三位状态位对PWM工作频率进行设置。上述步骤中所述的数据寄存器为三个8位或16位寄存器,分别用来设置PWM脉冲数量、脉冲宽度及开通时间,脉冲周期与开通时间的差值为关断时间。步骤5中所述的执行其他操作在手机中为执行关闭背光操作、关机操作、打开管理器操作,与输出PWM无关的操作。控制寄存器可以为8位或16位寄存器,包括PWM工作频率设置、时钟频率选择、 PWM工作状态、数据存储位置等信息。用户可以根据需要设置不同工作状态,也可以将寄存器中不需要改变的状态位设置成默认状态,在程序初始化后对其进行设置。可以通过设置控制寄存器相应的状态位选择系统时钟或睡眠时钟;PWM工作频率可以通过控制寄存器对应的两位或三位状态位进行设置。例如若时钟频率为CLK,时钟频率对应状态位为CLKSEL, PWM工作频率对应状态位为CLKDIV。则可以通过选择CLKSEL为“0”或“ 1”设置时钟频率为系统时钟或睡眠时钟;选择 CLKDIV为“000”、“001”、“010”、“011”、“100”、“101”、 “110”、“111” 设置 PWM 工作频率为 CLK、CLK/2、CLK/4、CLK/8、CLK/16, CLK/32、CLK/64、 CLK/U8,对应频率可以根据需求自行设置。数据寄存器包括三个8位或16位寄存器,分别用来设置PWM脉冲数量(PWM_WAVE_ NUM)、脉冲宽度(PWM_DATA_ff IDTH )和开通时间(PWM_THRESH ),脉冲周期与开通时间的差值即为关断时间。如图3、4所示,在系统时钟和睡眠时钟下,数据寄存器可以相同也可以不同,但是控制寄存器因为时钟频率CLK不同肯定会有所不同,图3中CLKl表示系统时钟频率,图4中CLK2表示睡眠时钟频率。图3、图4中,Thresh在波形中一般用来表示突发脉冲的意思,也可用来表示脉冲宽度,不过比较少用,为了将脉冲宽度与整个周期区分开,图3、4 中将WIDTH用来表示脉冲宽度,THRESH用来表示开通时间。另外,本专利技术能解决在系统响应中断时PWM输出异常问题,在使用普通GPIO 口模拟PWM输出时,一旦系统出现中断,PWM输出就会被打断,待中断响应结束后,PWM输出由于没有记忆功能,就有可能出现异常。如图1、2所示,在使用普通GPIO模拟PWM输出时就会出现PWM脉冲数量减少的情况,若此PWM应用在显示相关模块,则会出现无法正常显示的故障,而本专利技术在中断响应后由于寄存器值不会发生变化,则可以继续按照设定值进行输出, 不会影响系统功能。以上内容是结合具体的优选实施方式对本专利技术所作的进一步详细说明,不能认定本专利技术的具体实施只局限于这些说明。对于本专利技术所属领本文档来自技高网...

【技术保护点】
1.一种PWM输出控制方法,其步骤如下:步骤1、程序开始;步骤2、对控制寄存器和数据寄存器进行初始化;步骤3、设置控制寄存器值,选择PWM的工作状态及其工作频率;步骤4、判断是否有PWM输出需求;步骤5、无输出需求则执行其他操作,有则根据需求设置数据寄存器值;步骤6、读取设置的控制寄存器和数据寄存器的值;步骤7、判断系统是否产生中断;步骤8、产生中断则执行步骤6,否则输出PWM。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾元清
申请(专利权)人:广东欧珀移动通信有限公司
类型:发明
国别省市:44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1