亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標題:
MSP430F系列單片機學習筆記_庫函數(shù)編程思想
[打印本頁]
作者:
hushao
時間:
2016-1-4 01:34
標題:
MSP430F系列單片機學習筆記_庫函數(shù)編程思想
最近時間在準備TI430的電子競賽,每天早上8點開始就一直在實驗室,呆到晚上12點多才回來,雖然人已經(jīng)很疲憊,但是還是堅持每天在EDN China博客更新MSP430F系列單片機的學習筆記,也算是經(jīng)驗總結吧。:)堅持!!
今天想講一下的就是MSP430F系列單片機的庫函數(shù)編程思想,覺得效果很好,代碼可移植性很強,實用價值很高!!
已經(jīng)很晚了,暫時分享一個簡單的例程吧。
基于MSP430F系列單片機TB的PWM輸出
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/****************************************************************************
* 文件名稱:
* TB.c
* 文件說明:
* 使用TB輸出PWM波形,可通過set_TB設定不同的模式
*****************************************************************************/
#include "msp430x44x.h"
/******************************************************************************
* 設置TimerB輸出PWM的工作模式
********************************************************************************/
void set_TB(int mode)
{
if (mode==2)
{ // 翻轉/復位模式,CCR1=25%,CCR2=75%
TBCCR0 = 11; // PWM 周期
TBCCTL1 = OUTMOD_2; // PWM toggle/reset
TBCCR1 = 9; // ccr1 Pwm cycle
TBCCTL2 = OUTMOD_2; // PWM toggle/reset
TBCCR2 = 3; // ccr2 Pwm cycle
P2DIR |= BIT1; // p2.1 模式設置
P2SEL |= BIT1; // p2.1 option select
P2DIR |= BIT2; // P2.2 output mode
P2SEL |= BIT2; // P2.2 option select
TBCTL |= MC0; // 設置遞增模式
}else if (mode==0x03)
{ //置位/復位模式,CCR1=25%,CCR2=75%
TBCCR0 = 11; // PWM 周期
TBCCTL1 = OUTMOD_3; // PWM toggle/reset
TBCCR1 = 9; // ccr1 Pwm cycle
TBCCTL2 = OUTMOD_3; // PWM toggle/reset
TBCCR2 = 3; // ccr2 Pwm cycle
P2DIR |= BIT1; // p2.1 output mode
P2SEL |= BIT1; // p2.1 option select
P2DIR |= BIT2; // P2.2 output mode
P2SEL |= BIT2; // P2.2 option select
TBCTL |= MC0; // 設置遞增模式
}else if (mode==0x04)
{ // 翻轉模式,CCR1=50%,CCR2=50%
TBCCR0 = 11; // PWM 周期
TBCCTL1 = OUTMOD_4; // PWM toggle/reset
TBCCR1 = 9; // ccr1 Pwm cycle
TBCCTL2 = OUTMOD_4; // PWM toggle/reset
TBCCR2 = 3; // ccr2 Pwm cycle
P2DIR |= BIT1; // p2.1 output mode
P2SEL |= BIT1; // p2.1 option select
P2DIR |= BIT2; // P2.2 output mode
P2SEL |= BIT2; // P2.2 option select
TBCTL |= MC0; // 設置遞增模式
}else if (mode==0x06)
{ //翻轉/置位模式,CCR1=75%,CCR2=25%
TBCCR0 = 11; // PWM 周期
TBCCTL1 = OUTMOD_6; // PWM toggle/reset
TBCCR1 = 9; // ccr1 Pwm cycle
TBCCTL2 = OUTMOD_6; // PWM toggle/reset
TBCCR2 = 3; // ccr2 Pwm cycle
P2DIR |= BIT1; // p2.1 output mode
P2SEL |= BIT1; // p2.1 option select
P2DIR |= BIT2; // P2.2 output mode
P2SEL |= BIT2; // P2.2 option select
TBCTL |= MC0; // 設置遞增模式
}else if (mode==0x07)
{ // 復位/置位模式
TBCCR0 = 11; // P1.2--> CCR1 - 75% PWM
// P2.0--> CCR2 - 25% PWM
// PWM 周期
TBCCTL1 = OUTMOD_7; // ccrl reset/set
TBCCR1 = 9; // ccr1 Pwm cycle
TBCCTL2 = OUTMOD_7; // ccr1 reset/set
TBCCR2 = 3; // ccr2 Pwm cycle
P2DIR |= BIT1; // p2.1 output mode
P2SEL |= BIT1; // p2.1 option select
P2DIR |= BIT2; // P2.2 output mode
P2SEL |= BIT2; // P2.2 option select
TBCTL |= MC0; // 設置遞增模式
}
}
/****** 在Timer B的不同工作模式下輸出PWM波形 *****/
void main()
{
unsigned int pwm_Delay;
char tmpv,tmp[5] = {2,3,4,6,7};
WDTCTL = WDTHOLD + WDTPW; //關閉看門狗
FLL_CTL0 |= XCAP14PF;
TBCTL = TBSSEL0 + TBCLR; //ACLK,清除TAR
tmpv=0;
while(1)
{
set_TB(tmp[tmpv]); //選擇 PWM 模式
tmpv = (tmpv + 1) % 5; //改變模式
for(pwm_Delay=0;pwm_Delay<0xffff;pwm_Delay++);//delay
};
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//愿意結識愛好電子的友友
// :)
復制代碼
作者:
wjwjwjwj
時間:
2016-1-7 14:27
學習了,剛學單片機
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1