iar-

来自「IAR_example_EasyARM8962.zip」· 代码 · 共 73 行

TXT
73
字号
/****************************************Copyright (c)****************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name:               time_16_PWM.c
** Last modified Date:      2007.12.24 
** Last Version:            v1.1
** Description:             Stellaris系列单片机定时器操作
** 
**--------------------------------------------------------------------------------------------------------
** Created By:              Ni Likao
** Created date:            2007.09.20 
** Version:                 v1.0
** Descriptions:            使用定时器产生一路简单的PWM波形
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2008.01.12
** Version:                 v1.1
** Description:
**
*********************************************************************************************************/

#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
#include "timer.h"
#include "interrupt.h"

#define  LED1   GPIO_PIN_4                                              /*  设置PD4为PWMA输出           */

/*********************************************************************************************************
** Function name:           main	   
** Descriptions:            该范例程序演示了如何使用定时器的PWM功能。定时器装载值设为3000,匹配值设为2000,
**                          采用LED灯作为PWM输出,如果用户改变定时器的装载值或匹配值都会改变PWM的占空比而
**                          导致LED灯亮度变化。
** input parameters:        无
** output parameters:       无      
** Returned value:          无	 
** Created By:              Ni Likao 倪力考
** Created date:            2007.09.20
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:                     
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int main (void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_6MHZ);                                   /*  设定晶振为时钟源            */				   
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);                       /*  使能定时器0外设             */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);                        /*  使能GPIOD口外设             */

    IntMasterEnable();                                                  /*  使能总中断                  */
    GPIOPinTypePWM(GPIO_PORTD_BASE, LED1);                              /*  设置PD4输出PWMA波形         */
	
    TimerConfigure(TIMER0_BASE, TIMER_CFG_16_BIT_PAIR | TIMER_CFG_A_PWM);
                                                                        /*  设置16-PWMA模式         	*/
    TimerLoadSet(TIMER0_BASE, TIMER_A, 3000);                           /*  设置PWMA的装载值            */
    TimerMatchSet(TIMER0_BASE, TIMER_A, 1500);                          /*  设置PWMA的匹配值            */
    TimerEnable(TIMER0_BASE, TIMER_A);                                  /*  PWMA模式使能                */
    while (1) {
        ;
    }
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?