;-------------------------------------------------------------------------*
;工程文件名:PWM                                                           *
;硬件连接:                                                                *
;    (1)PTE.2即定时器1通道0接小灯(见"PWM.c"文件)                          *
;程序描述:通过对PWM占空比的调节,实现小灯的渐变的功能,当占空比为100％时    *
;         再从0％逐渐增加.PWM的周期一定要足够的快,否则其输出电压的波动    *
;         范围很大,且测不出一个稳定的电压值,这样通过就观察不到小灯渐变    *
;         效果. 另外,在改变PWM的周期和占空比之前和之后要分别禁止使用      *
;         TPM1,否则改变不起作用.                                          *
;目    的:学习AW60 PWM功能.                                               *
;----------------苏州大学飞思卡尔嵌入式系统实验室2009年-------------------*

    INCLUDE 'Includes.inc'

    XDEF _Startup, main            ;定义可以被外部调用的函数
    XREF __SEG_END_SSTACK 

; 变量段
MY_ZEROPAGE: SECTION  SHORT     ;在此处定义变量
Duty:  DS.B 1                   ;定义占空比

; 代码段                                                        
MyCode:      SECTION  
main:
_Startup:
        SEI
        LDHX  #__SEG_END_SSTACK     ;初始化堆栈指针               
        TXS                         ;HX - 1 -> SP  
        
        JSR  MCUInit    ;芯片初始化

        ;PWM输出初始化
        LDA  #0
        STA  Duty      ;初始化占空比变量为0
        LDHX #$271     ;初始化PWM波的周期为10ms
        LDA  Duty      ;初始化PWM波的占空比为0
        JSR  PWM                   
         
mainLoop:
        
        INC  Duty       
        LDA  #100
        CMP  Duty       
        BHS  main_1     
        ;如果占空比超过100,占空比重新设为0
        MOV  #0,Duty
main_1: 
        
        LDA  Duty       ;设置占空比
        LDHX #$271      ;设置周期
        JSR  PWM        ;对PWM相关寄存器进行设置        
       
        LDHX #300       ;延时一段时间
        JSR  DelayHX     
        BRA  mainLoop 

