当前位置: 首页 > news >正文

北京建筑设计公司排行榜西安抖音seo

北京建筑设计公司排行榜,西安抖音seo,怀化网站制作建设,做营销网站 如何让商家入驻目录1.通过Timer_A_outputPWM配置产生PWM波初始化函数计算修改占空比的函数整体程序效果2.单定时器产生多路PWM信号初始化函数实验结果3.对称PWM信号的产生初始化程序实验结果平台#xff1a;Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EX… 目录1.通过Timer_A_outputPWM配置产生PWM波初始化函数计算修改占空比的函数整体程序效果2.单定时器产生多路PWM信号初始化函数实验结果3.对称PWM信号的产生初始化程序实验结果平台Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 1.通过Timer_A_outputPWM配置产生PWM波 所选输出引脚为P1.2 初始化函数 #define TIMER_PERIOD 12500 void Timer_A_PWM_Init(void) {Timer_A_outputPWMParam htim {0};//P1.2复用输出GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2); //时钟源选为SMCLK 25MHzhtim.clockSource TIMER_A_CLOCKSOURCE_SMCLK; //分频系数设为40htim.clockSourceDivider TIMER_A_CLOCKSOURCE_DIVIDER_40;//装载值设为12500 - 1htim.timerPeriod TIMER_PERIOD - 1;//P1.2 对应 TA0.1 故设为TIMER_A_CAPTURECOMPARE_REGISTER_1htim.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_1;htim.compareOutputMode TIMER_A_OUTPUTMODE_RESET_SET;//初始比较值为装载值的一半 即初始占空比为50%htim.dutyCycle TIMER_PERIOD / 2;//P1.2 对应 TA0.1 为TIMER_A0_BASETimer_A_outputPWM(TIMER_A0_BASE, htim); }计算 时钟源为SMCLK 25MHz 分频系数为40 装载值为12500 - 1 故所得PWM频率为25MHz/40/1250050Hz 修改占空比的函数 修改占空比即修改比较值故使用Timer_A_setCompareValue函数 我选择在外部中断服务函数内进行修改按下一次按钮分别为占空比减少10%和增加10% //****************************************************************************** // //This is the PORT2_VECTOR interrupt vector service routine // //****************************************************************************** #pragma vectorPORT2_VECTOR // P2口中断源 __interrupt void Port_2 (void) // 声明一个中断服务程序名为Port_2() {if(GPIO_getInterruptStatus(GPIO_PORT_P2, GPIO_PIN1)){delay_ms(20);if(!GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1)){//P1.0 toggleTimer_A_setCompareValue(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1,Timer_A_getCaptureCompareCount(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1) - TIMER_PERIOD / 10);while(!GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1));}//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P2, GPIO_PIN1);} }//****************************************************************************** // //This is the PORT1_VECTOR interrupt vector service routine // //****************************************************************************** #pragma vectorPORT1_VECTOR // P2口中断源 __interrupt void Port_1 (void) // 声明一个中断服务程序名为Port_1() {if(GPIO_getInterruptStatus(GPIO_PORT_P1, GPIO_PIN1)){delay_ms(20);if(!GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1)){//P1.0 toggleTimer_A_setCompareValue(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1,Timer_A_getCaptureCompareCount(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1) TIMER_PERIOD / 10);while(!GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1));}//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);} }整体程序 #include driverlib.h#define MCLK_IN_HZ 25000000#define delay_us(x) __delay_cycles((MCLK_IN_HZ/1000000*(x))) #define delay_ms(x) __delay_cycles((MCLK_IN_HZ/1000*(x)))void SystemClock_Init(void) {PMM_setVCore(PMM_CORE_LEVEL_3); //高主频工作需要较高的核心电压//XT1引脚复用GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5, GPIO_PIN4);GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P5, GPIO_PIN5);//起振XT1UCS_turnOnLFXT1(UCS_XT1_DRIVE_3,UCS_XCAP_3);//XT2引脚复用GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5, GPIO_PIN2);GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P5, GPIO_PIN3);//起振XT2UCS_turnOnXT2(UCS_XT2_DRIVE_4MHZ_8MHZ);//XT2作为FLL参考时钟先8分频再50倍频 4MHz / 8 * 50 25MHzUCS_initClockSignal(UCS_FLLREF, UCS_XT2CLK_SELECT, UCS_CLOCK_DIVIDER_8);UCS_initFLLSettle(25000, 50);//XT1作为ACLK时钟源 32768HzUCS_initClockSignal(UCS_ACLK, UCS_XT1CLK_SELECT, UCS_CLOCK_DIVIDER_1);//DCOCLK作为MCLK时钟源 25MHzUCS_initClockSignal(UCS_MCLK, UCS_DCOCLK_SELECT, UCS_CLOCK_DIVIDER_1);//DCOCLK作为SMCLK时钟源 25MHzUCS_initClockSignal(UCS_SMCLK, UCS_DCOCLK_SELECT, UCS_CLOCK_DIVIDER_1);//设置外部时钟源的频率使得在调用UCS_getMCLK, UCS_getSMCLK 或 UCS_getACLK时可得到正确值UCS_setExternalClockSource(32768, 4000000); }#define TIMER_PERIOD 12500 void Timer_A_PWM_Init(void) {Timer_A_outputPWMParam htim {0};GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2);htim.clockSource TIMER_A_CLOCKSOURCE_SMCLK;htim.clockSourceDivider TIMER_A_CLOCKSOURCE_DIVIDER_40;htim.timerPeriod TIMER_PERIOD - 1;htim.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_1;htim.compareOutputMode TIMER_A_OUTPUTMODE_RESET_SET;htim.dutyCycle TIMER_PERIOD / 2;Timer_A_outputPWM(TIMER_A0_BASE, htim); }void KEY_S1_Init(void) {GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2, GPIO_PIN1);//P2.1 interrupt enabledGPIO_enableInterrupt(GPIO_PORT_P2, GPIO_PIN1); //使能中断//P2.1 Hi/Lo edgeGPIO_selectInterruptEdge(GPIO_PORT_P2, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION); //设置中断类型//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P2, GPIO_PIN1); //清除中断标志位 }void KEY_S2_Init(void) {GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);//P2.1 interrupt enabledGPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1); //使能中断//P2.1 Hi/Lo edgeGPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION); //设置中断类型//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1); //清除中断标志位 }int main(void) {WDT_A_hold(WDT_A_BASE);SystemClock_Init();Timer_A_PWM_Init();KEY_S1_Init();KEY_S2_Init();//interrupts enabled__bis_SR_register(GIE);while(1){} }//****************************************************************************** // //This is the PORT2_VECTOR interrupt vector service routine // //****************************************************************************** #pragma vectorPORT2_VECTOR // P2口中断源 __interrupt void Port_2 (void) // 声明一个中断服务程序名为Port_2() {if(GPIO_getInterruptStatus(GPIO_PORT_P2, GPIO_PIN1)){delay_ms(20);if(!GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1)){//P1.0 toggleTimer_A_setCompareValue(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1,Timer_A_getCaptureCompareCount(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1) - TIMER_PERIOD / 10);while(!GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1));}//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P2, GPIO_PIN1);} }//****************************************************************************** // //This is the PORT1_VECTOR interrupt vector service routine // //****************************************************************************** #pragma vectorPORT1_VECTOR // P2口中断源 __interrupt void Port_1 (void) // 声明一个中断服务程序名为Port_1() {if(GPIO_getInterruptStatus(GPIO_PORT_P1, GPIO_PIN1)){delay_ms(20);if(!GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1)){//P1.0 toggleTimer_A_setCompareValue(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_1,Timer_A_getCaptureCompareCount(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_1) TIMER_PERIOD / 10);while(!GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1));}//P2.1 IFG clearedGPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);} } 效果 2.单定时器产生多路PWM信号 初始化函数 #define TIMER_PERIOD 12500 void Timer_A_PWM_Init(void) { //复用P1.2、P1.3、P1.4、P1.5输出GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5);Timer_A_initUpModeParam htim {0};htim.clockSource TIMER_A_CLOCKSOURCE_SMCLK;htim.clockSourceDivider TIMER_A_CLOCKSOURCE_DIVIDER_40;htim.timerPeriod TIMER_PERIOD - 1;htim.timerInterruptEnable_TAIE TIMER_A_TAIE_INTERRUPT_DISABLE;htim.captureCompareInterruptEnable_CCR0_CCIE TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE;htim.timerClear TIMER_A_DO_CLEAR;htim.startTimer true;Timer_A_initUpMode(TIMER_A0_BASE, htim);Timer_A_initCompareModeParam htim_PWM {0};htim_PWM.compareInterruptEnable TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;htim_PWM.compareOutputMode TIMER_A_OUTPUTMODE_RESET_SET;htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_1;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.2);//Initialize compare mode to generate PWM1Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_2;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.4);//Initialize compare mode to generate PWM2Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_3;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.6);//Initialize compare mode to generate PWM3Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_4;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.8);//Initialize compare mode to generate PWM4Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);}依次将TA0.1、TA0.2、TA0.3、TA0.4初始化为占空比20%、40%、60%、80% 时钟源为SMCLK 25MHz 分频系数为40 装载值为12500 - 1 故所得PWM频率为25MHz/40/1250050Hz 实验结果 3.对称PWM信号的产生 初始化程序 将上一个程稍作修改即可产生对称PWM信号 其中compareOutputMode值的效果参考下图 时钟源为SMCLK 25MHz 分频系数为40 装载值为12500 - 1 因采用增\减计数模式 故所得PWM频率为25MHz/40/12500/225Hz #define TIMER_PERIOD 12500 void Timer_A_PWM_Init(void) {GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5);Timer_A_initUpDownModeParam htim {0};htim.clockSource TIMER_A_CLOCKSOURCE_SMCLK;htim.clockSourceDivider TIMER_A_CLOCKSOURCE_DIVIDER_40;htim.timerPeriod TIMER_PERIOD - 1;htim.timerInterruptEnable_TAIE TIMER_A_TAIE_INTERRUPT_DISABLE;htim.captureCompareInterruptEnable_CCR0_CCIE TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE;htim.timerClear TIMER_A_DO_CLEAR;htim.startTimer true;Timer_A_initUpDownMode(TIMER_A0_BASE, htim);Timer_A_initCompareModeParam htim_PWM {0};htim_PWM.compareInterruptEnable TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;htim_PWM.compareOutputMode TIMER_A_OUTPUTMODE_TOGGLE_RESET;htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_1;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.2);//Initialize compare mode to generate PWM1Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_2;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.4);//Initialize compare mode to generate PWM2Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_3;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.6);//Initialize compare mode to generate PWM3Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM);htim_PWM.compareRegister TIMER_A_CAPTURECOMPARE_REGISTER_4;htim_PWM.compareValue (int)(TIMER_PERIOD * 0.8);//Initialize compare mode to generate PWM4Timer_A_initCompareMode(TIMER_A0_BASE, htim_PWM); }实验结果
http://wiki.neutronadmin.com/news/15034/

相关文章:

  • wordpress 收费主题破解版seo引擎搜索入口
  • 河北盛通公路建设有限公司网站网站建设 设计方案 百度文库
  • 建设银行网银盾连接不上网站公司网站建设工作通知
  • 苏州建网站的公司哪家口碑好郑州专业的建网站
  • 网站标题如何设置青岛海西建设集团官方网站
  • 网站开发流程步骤 口袋乐陵市住房和城乡建设局网站
  • 做国外衣服的网站有哪些个人flash网站源码
  • cms企业网站成都网页制作一般多少钱
  • 免费的行情软件网站入口wordpress个人工作室主题
  • 衡阳网站搜索引擎优化网站外包如何报价
  • 可以做彩字的网站WordPress推送帖子到QQ群
  • 北京房山网站建设产品更新培训网站建设外包服务管理情况
  • 风溪商城是那个网站建设的ps设计师网站有哪些
  • 常州城乡建设局网站首页济南seo网络优化公司
  • 娃哈哈网站建设的目标免费无代码开发平台本地部署
  • 做资讯网站怎么挣钱专业手机网站建设平台
  • 免费下载app软件的网站企业专业网站建设
  • 万网个人网站做网站主机
  • 做的好的农产品网站有哪些开发高端网站开发
  • 月子会所 网站源码广东网站建设怎么收费
  • 娱乐类网站怎么建设公司网站开发费用计入
  • 自己动手做衣服的网站中国十大电商做的好的网站
  • 美发营销型网站superstore wordpress主题
  • 上海网站开发报价网站 左右浮动 广告
  • 做网站被罚款网页游戏平台大全
  • 网站免费打包提供网站推广公司电话
  • 网站域名和网站网址吗上海企业网站模板建站
  • 四平市建设局网站瑞安app开发
  • 如何自己做电影网站韶关最新消息
  • 网站构成要素湖滨区建设局网站