2021-12-21 00:58:43 索煒達電子 1010
項目編號:E2495
文件大小:114K
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
系統(tǒng)時鐘參數(shù)
PWM波發(fā)生
計數(shù)器初始化
計數(shù)器初始化主要包括計數(shù)器選擇、計數(shù)器計數(shù)模式的初始化、時鐘源的初始化、分頻系數(shù)初始化以及輸出模式的初始化。初始化參數(shù)如下表所示:
計數(shù)器選擇
PWM波的發(fā)生采用的是TA1,增計數(shù)模式
TA1CTL = 0; //清除以前設(shè)置
TA1CTL |= MC_1; //定時器TA設(shè)為增計數(shù)模式
時鐘源選擇
在PWM初始化函數(shù)中加入了時鐘源選擇接口,可以在調(diào)用時鐘初始化函數(shù)時通過接口靈活改變時鐘源
switch(Clk) //選擇時鐘源
{
case 'A': case 'a': TA1CTL|=TASSEL_1; break; //ACLK
case 'S': case 's': TA1CTL|=TASSEL_2; break; //SMCLK
case 'E': TA1CTL|=TASSEL_0; break; //外部輸入(TA1CLK)
case 'e': TA1CTL|=TASSEL_3; break; //外部輸入(TA1CLK取反)
default : return(0); //參數(shù)有誤
}
在主程序初調(diào)用PWM始化函數(shù)時,我將時鐘源設(shè)為ACLK,32.768kHz
分頻系數(shù)選擇
和時鐘源的選擇相同,PWM初始化函數(shù)中也有分頻系數(shù)選擇接口,可以在調(diào)用時鐘初始化函數(shù)時通過接口靈活改變分頻系數(shù)
switch(Div) //選擇分頻系數(shù)
{
case 1: TA1CTL|=ID_0; break; //1
case 2: TA1CTL|=ID_1; break; //2
case 4: TA1CTL|=ID_2; break; //4
case 8: TA1CTL|=ID_3; break; //8
default : return(0); //參數(shù)有誤
}
在主程序調(diào)用PWM初始化函數(shù)時,我將分頻系數(shù)Div設(shè)為1
輸出模式選擇
同樣的,函數(shù)中也有PWM輸出模式選擇的接口,$P$表示高電平輸出模式,$N$表示低電平輸出模式,0表示不輸出PWM
switch(Mode2) //設(shè)置PWM通道1的輸出模式。
{
case 'P':case 'p': //如果設(shè)置為高電平模式
TA1CCTL2 =OUTMOD_7; //高電平PWM輸出
P2SEL |= BIT3; //從P1.3輸出 (不同型號單片機可能不一樣)
P2DIR |= BIT3; //從P1.3輸出 (不同型號單片機可能不一樣)
break;
case 'N':case 'n': //如果設(shè)置為低電平模式
TA1CCTL2 =OUTMOD_3; //低電平PWM輸出
P2SEL |= BIT3; //從P1.3輸出 (不同型號單片機可能不一樣)
P2DIR |= BIT3; //從P1.3輸出 (不同型號單片機可能不一樣)
break;
case '0':case 0: //如果設(shè)置為禁用
P2SEL &= ~BIT3; //P1.3恢復為普通IO口
P2DIR |= BIT3;
P2OUT |= BIT3;
break;
default : return(0); //參數(shù)有誤
}
PWM調(diào)節(jié)
PWM頻率設(shè)置
PWM占空比設(shè)置
ADC讀取
pid算法
目錄│文件列表:
└ fan
│ .ccsproject
│ .cproject
│ .project
│ adc.c
│ adc.h
│ buzzer.c
│ buzzer.h
│ clock.c
│ clock.h
│ keyboard.c
│ keyboard.h
│ led.c
│ led.h
│ lnk_msp430f5438a.cmd
│ main.c
│ pid.c
│ pid.h
│ pwm.c
│ pwm.h
├ .launches
│ └ fan.launch
├ .settings
│ │ org.eclipse.cdt.codan.core.prefs
│ │ org.eclipse.cdt.debug.core.prefs
│ └ org.eclipse.core.resources.prefs
├ Debug
│ │ .gitignore
│ │ adc.obj
│ │ adc.pp
│ │ buzzer.obj
│ │ buzzer.pp
│ │ ccsObjs.opt
│ │ clock.obj
│ │ clock.pp
│ │ fan.map
│ │ fan.out
│ │ fan_linkInfo.xml
│ │ keyboard.obj
│ │ keyboard.pp
│ │ led.obj
│ │ led.pp
│ │ main.obj
│ │ main.pp
│ │ pid.obj
│ │ pid.pp
│ │ pwm.obj
│ └ pwm.pp
└ targetConfigs
│ MSP430F5438A.ccxml
│ MSP430F5529.ccxml
└ readme.txt