This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
//*****************************************************************************
//作者:小鑫鑫
//时间:2014.08.05
//*****************************************************************************
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_nvic.h"
#include "hw_ints.h"
#include "sysctl.h"
#include "gpio.h"
#include "PWM.h"
#include "pin_map.h"
#include "timer.h"
#include "interrupt.h"
#include "fpu.h"
//*****************************************************************************
//
// 定义彩灯对应的IO口
//
//*****************************************************************************
#define RED_LED GPIO_PIN_1
#define BLUE_LED GPIO_PIN_2
#define GREEN_LED GPIO_PIN_3
void SysClockinit()
{
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN); /////设置系统时钟 PLL四分频 50MHZ*4=200MHZ 用PLL为系统时钟
//////SYSCTL_SYSDIV_2_5 80M
}
void IOinit()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF|SYSCTL_PERIPH_GPIOB| ///////|SYSCTL_PERIPH_GPIOC
SYSCTL_PERIPH_GPIOE); /////使能外设IO F B C E D
GPIOPinConfigure(GPIO_PB6_M0PWM0|GPIO_PB7_M0PWM1|GPIO_PB4_M0PWM2
|GPIO_PB5_M0PWM3|GPIO_PE4_M0PWM4|GPIO_PE5_M0PWM5); ///IO管脚复用 PWM
GPIOPinTypePWM(GPIO_PORTB_BASE,GPIO_PIN_4);
GPIOPinTypePWM(GPIO_PORTB_BASE,GPIO_PIN_5);
GPIOPinTypePWM(GPIO_PORTB_BASE,GPIO_PIN_6);
GPIOPinTypePWM(GPIO_PORTB_BASE,GPIO_PIN_7);
GPIOPinTypePWM(GPIO_PORTE_BASE,GPIO_PIN_4);
GPIOPinTypePWM(GPIO_PORTE_BASE,GPIO_PIN_5);
}
void PWMinit()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0); ////使能外设PWM M0
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /////设置PWMclock=sysclock/PWMDIV_1
PWMGenConfigure(PWM0_BASE, (PWM_GEN_0|PWM_GEN_1|PWM_GEN_2|PWM_GEN_3),PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);/////////PWM0_BASE PWM1_BASE PWM_GEN_0 PWM_GEN_1 PWM_GEN_2 PWM_GEN_3
PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0|PWM_GEN_1|PWM_GEN_2|PWM_GEN_3, 1000); ////设置周期 50M/1000 50K
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, 100); //设置占空比10%
PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, 500);
PWMGenEnable(PWM0_BASE, PWM_GEN_0|PWM_GEN_1|PWM_GEN_2|PWM_GEN_3); /////打开 PWM_GEN_0计时器
PWMOutputState(PWM0_BASE, (PWM_OUT_0_BIT | PWM_OUT_1_BIT|PWM_OUT_2_BIT|PWM_OUT_3_BIT|PWM_OUT_4_BIT|PWM_OUT_5_BIT|PWM_OUT_6_BIT|PWM_OUT_7_BIT), true);/////使能PWM输出管脚
}
void timerinit()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_WTIMER0);/////////////SYSCTL_PERIPH_TIMER0(64) 使能外设定时器0
////////// 拆分定时器TimerConfigure(TIMER0_BASE,(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_ONE_SHOT |TIMER_CFG_B_CAP_COUNT)
TimerConfigure(WTIMER0_BASE,(TIMER_CFG_SPLIT_PAIR|TIMER_CFG_A_PERIODIC|TIMER_CFG_B_PERIODIC)); ////////////////
TimerLoadSet(WTIMER0_BASE, TIMER_A, 10000000); ////////
TimerEnable(WTIMER0_BASE, TIMER_A); //////////TIMER_BOTH
TimerIntEnable(WTIMER0_BASE,TIMER_TIMA_TIMEOUT); //////////////使能中断
TimerIntClear(WTIMER0_BASE, TIMER_TIMA_TIMEOUT); /////////////清除中断标志位
}
/*void Timer0AIntHandler()
{
TimerIntClear(WTIMER0_BASE, TIMER_TIMA_TIMEOUT); /////////////清除中断标志位TimerEnable(WTIMER1_BASE, TIMER_A) Time_catch1_Interrupt();
}
*/
void IntGPIOa(void)
{
}
void IntGPIOb(void)
{
}
void IntGPIOc(void)
{
}
void main()
{
SysClockinit();
IOinit();
PWMinit();
timerinit(); ////ewarmTARGET_IS_BLIZZARD_RB1
// PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, 600);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, RED_LED|BLUE_LED|GREEN_LED);
// IntEnable(INT_WTIMER0A); ///////////开定时器0A中断 IntDisable
// IntMasterEnable(); ///////////////开总中断处理器||BLUE_LEDRED_LED
//GPIOPinWrite(GPIO_PORTF_BASE, ||GREEN_LED, ui8LED);GREEN_LED
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3);
while(1)
{
}
}