📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: Chenxibing
** Modified date: 2005-01-19
** Version:
** Descriptions: 双边沿PWM输出实验。
**
********************************************************************************************************/
#include "config.h"
/*
*********************************************************************************************************
** 函数名称 :PWM_Init()
** 函数功能 :PWM初始化
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************
*/
void PWM_Init()
{
uint32 tmp;
tmp = Fpclk / 100;
PWMPR = 0x09; // 对pclk进行分频,PWM计数频率为Fpclk的1/10
PWMMCR = 0x02; // PWMMR0与PWMTC匹配时复位PWMTC
PWMPCR = (1 << 2) | // PWM2双边沿控制
(1 << 4) | // PWM4双边沿控制
(1 << 6) | // PWM6双边沿控制
(1 << 10) | // 使能PWM2输出
(1 << 12) | // 使能PWM4输出
(1 << 14); // 使能PWM6输出
PWMMR0 = tmp; // PWM速率控制/计数初值
/* 设置双边沿脉冲的脉宽和位置 */
PWMMR1 = 0; // PWM2的位置
PWMMR2 = (tmp / 8) * 7;
PWMMR3 = tmp / 4; // PWM4的位置
PWMMR4 = (tmp / 8) * 6;
PWMMR5 = (tmp / 8) * 3; // PWM6的位置
PWMMR6 = (tmp / 8) * 5;
PWMLER = 0x7F; // 锁存所有PWM匹配值
PWMTCR = 0x02; // 复位PWMTC
PWMTCR = 0x09; // 使能PWM
}
/*
*********************************************************************************************************
** 函数名称 :main()
** 函数功能 :演示双边沿PWM现象。
** 函数说明 :需要用多通道示波器或者逻辑分析仪进行观察
*********************************************************************************************************
*/
int main (void)
{
PINSEL0 = (2 << 14) | // P0.7连接PWM2
(2 << 16) | // P0.8连接PWM4
(2 << 18); // P0.9连接PWM6
PWM_Init(); // PWM初始化
while (1);
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -