在FPUEnable(); FPULazyStackingEnable(); 后添加实验代码
//设置系统时钟 ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); //读系统时钟 SysClock=ROM_SysCtlClockGet();
//设置PWM时钟:不分频 ROM_SysCtlPWMClockSet(SYSCTL_PWMDIV_1);
//读PWM时钟 Clock1=ROM_SysCtlPWMClockGet();
//*************PWM输出实验****************************************** //配置PWM所在的管脚外设 ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); //使能PWM模块:SYSCTL_PERIPH_PWM0 or SYSCTL_PERIPH_PWM1 ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
//设置指定的管脚配置 ROM_GPIOPadConfigSet( GPIO_PORTH_BASE, GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2|GPIO_PIN_3| GPIO_PIN_4|GPIO_PIN_5| GPIO_PIN_6|GPIO_PIN_7, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD); //配置GPIO为PWM功能: ROM_GPIOPinTypePWM( GPIO_PORTH_BASE, GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2|GPIO_PIN_3| GPIO_PIN_4|GPIO_PIN_5| GPIO_PIN_6|GPIO_PIN_7 ); //配置一个GPIO引脚的备用功能 要包含 driverlib/pin_map.h头文件 ROM_GPIOPinConfigure(GPIO_PH0_M0PWM0); ROM_GPIOPinConfigure(GPIO_PH1_M0PWM1); ROM_GPIOPinConfigure(GPIO_PH2_M0PWM2); ROM_GPIOPinConfigure(GPIO_PH3_M0PWM3); ROM_GPIOPinConfigure(GPIO_PH4_M0PWM4); ROM_GPIOPinConfigure(GPIO_PH5_M0PWM5); ROM_GPIOPinConfigure(GPIO_PH6_M0PWM6); ROM_GPIOPinConfigure(GPIO_PH7_M0PWM7);
//配置一个PWM发生器:计数,同步(非)模式 ROM_PWMGenConfigure(PWM0_BASE,PWM_GEN_0,PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC); ROM_PWMGenConfigure(PWM0_BASE,PWM_GEN_1,PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC); ROM_PWMGenConfigure(PWM0_BASE,PWM_GEN_2,PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC); ROM_PWMGenConfigure(PWM0_BASE,PWM_GEN_3,PWM_GEN_MODE_UP_DOWN|PWM_GEN_MODE_NO_SYNC);
//设置一个PWM发生器的周期 ROM_PWMGenPeriodSet(PWM0_BASE,PWM_GEN_0,16000); ROM_PWMGenPeriodSet(PWM0_BASE,PWM_GEN_1,16000); ROM_PWMGenPeriodSet(PWM0_BASE,PWM_GEN_2,16000); ROM_PWMGenPeriodSet(PWM0_BASE,PWM_GEN_3,16000);
//设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_0,16000*0.9); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_1,16000*0.8); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_2,16000*0.7); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_3,16000*0.6); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_4,16000*0.5); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_5,16000*0.4); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_6,16000*0.2); //设置指定PWM输出的脉冲宽度 ROM_PWMPulseWidthSet(PWM0_BASE,PWM_OUT_7,16000*0.1);
//使能PWM输出 ROM_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发生器模块的定时器 ROM_PWMGenEnable(PWM0_BASE,PWM_GEN_0); ROM_PWMGenEnable(PWM0_BASE,PWM_GEN_1); ROM_PWMGenEnable(PWM0_BASE,PWM_GEN_2); ROM_PWMGenEnable(PWM0_BASE,PWM_GEN_3);
[ 本帖最后由 蓝雨夜 于 2011-11-9 14:16 编辑 ] |