- #include <AI8H.H>
- #include <intrins.h>
- #include <absacc.h>
- #include <string.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include <math.h>
-
- #define FOSC 24000000UL //主时钟
-
- void Delay_ms(unsigned char ms)
- {
- unsigned int i;
- do
- {
- i=FOSC/10000;
- while(--i); //10T per loop
- }
- while(--ms);
- }
-
- void Init(void)
- {
- P_SW2|=EAXFR;
-
- P0M1=0x00; P0M0=0x00; //设置IO模式
- P1M1=0x00; P1M0=0x00; //设置IO模式
- P2M1=0x00; P2M0=0x00; //设置IO模式
- P3M1=0x03; P3M0=0x00; //设置IO模式
- P4M1=0x00; P4M0=0x00; //设置IO模式
- P5M1=0x00; P5M0=0x00; //设置IO模式
- P6M1=0x00; P6M0=0x00; //设置IO模式
- P7M1=0x00; P7M0=0x00; //设置IO模式
-
- PWMA_PS=0x00; //高级 PWM 通道输出脚选择位
- PWMA_PS|=0x01; //选择 PWM1_2 通道
-
- PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
- PWMA_CCMR1 = 0x60; //通道模式配置
- PWMA_CCER1 = 0x01; //配置通道输出使能和极性
-
- PWMA_ARRH=(unsigned char)(24000>>8); //设置周期时间
- PWMA_ARRL=(unsigned char)24000;
-
- PWMA_ENO=0x00;
- PWMA_ENO|=0x01; //使能输出
-
- PWMA_BKR=0x80; //使能主输出
- PWMA_CR1|=0x01; //开始计时
-
- EA=1; //启用总中断
- }
-
- void main(void)
- {
- unsigned int duty;
- duty=12720;
- Init();
- PWMA_CCR1H = (unsigned char)(duty >> 8); //设置占空比时间
- PWMA_CCR1L = (unsigned char)(duty);
- while(1)
- {
-
- }
- }
复制代码
AI8H8K64U_PWM.zip
(7.86 KB, 下载次数: 9)
|