专利名称:一种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[2:0]。则可以通过选择CLKSEL为“0”或“ 1”设置时钟频率为系统时钟或睡眠时钟;选择 CLKDIV[2:0]为“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。
2.根据权利要求1所述的PWM输出控制方法,其特征在于所述的控制寄存器为8位或16位寄存器,控制寄存器控制PWM的工作频率设置、时钟频率选择、PWM工作状态及数据存储位置。
3.根据权利要求2所述的PWM输出控制方法,其特征在于所述的控制寄存器相应的状态位控制选择系统时钟或睡眠时钟,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态;在系统处于睡眠状态时,PWM工作在睡眠时钟状态。
4.根据权利要求3所述的PWM输出控制方法,其特征在于所述的控制寄存器通过控制寄存器对应的两位或三位状态位对PWM工作频率进行设置。
5.根据权利要求4中所述的PWM输出控制方法,其特征在于所述的数据寄存器为三个8位或16位寄存器,分别用来设置PWM脉冲数量、脉冲宽度及开通时间,脉冲周期与开通时间的差值为关断时间。
6.根据权利要求1 5中任一项所述的PWM输出控制方法,其特征在于步骤5中所述的执行其他操作在手机中为执行关闭背光操作、关机操作、打开管理器操作,与输出PWM无关的操作。
全文摘要
一种PWM输出控制方法,通过设置控制寄存器使系统处于激活状态时,PWM工作在系统时钟状态,在系统处于睡眠状态时,PWM工作在睡眠时钟状态;同时通过设置控制寄存器改变PWM的工作频率;然后通过设置数据寄存器改变PWM的开通时间和关断时间,其步骤如下1、程序开始;2、对控制寄存器和数据寄存器进行初始化;3、设置控制寄存器值,选择PWM的工作状态及其工作频率;4、判断是否有PWM输出需求;5、无输出需求则执行其他操作,有则根据需求设置数据寄存器值;6、读取设置的控制寄存器和数据寄存器的值;7、判断系统是否产生中断;8、产生中断则执行步骤6,否则输出PWM。保证PWM的输出不受系统中断的影响,又能同时支持系统时钟和睡眠时钟的PWM输出。
文档编号H03K7/08GK102324914SQ201110273679
公开日2012年1月18日 申请日期2011年9月16日 优先权日2011年9月16日
发明者曾元清 申请人:广东欧珀移动通信有限公司