2021-12-21 00:58:43 索炜达电子 1011
项目编号:E2495
文件大小:114K
源码说明:带中文注释
开发环境:C编译器
简要概述:
系统时钟参数
PWM波发生
计数器初始化
计数器初始化主要包括计数器选择、计数器计数模式的初始化、时钟源的初始化、分频系数初始化以及输出模式的初始化。初始化参数如下表所示:
计数器选择
PWM波的发生采用的是TA1,增计数模式
TA1CTL = 0; //清除以前设置
TA1CTL |= MC_1; //定时器TA设为增计数模式
时钟源选择
在PWM初始化函数中加入了时钟源选择接口,可以在调用时钟初始化函数时通过接口灵活改变时钟源
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); //参数有误
}
在主程序初调用PWM始化函数时,我将时钟源设为ACLK,32.768kHz
分频系数选择
和时钟源的选择相同,PWM初始化函数中也有分频系数选择接口,可以在调用时钟初始化函数时通过接口灵活改变分频系数
switch(Div) //选择分频系数
{
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); //参数有误
}
在主程序调用PWM初始化函数时,我将分频系数Div设为1
输出模式选择
同样的,函数中也有PWM输出模式选择的接口,$P$表示高电平输出模式,$N$表示低电平输出模式,0表示不输出PWM
switch(Mode2) //设置PWM通道1的输出模式。
{
case 'P':case 'p': //如果设置为高电平模式
TA1CCTL2 =OUTMOD_7; //高电平PWM输出
P2SEL |= BIT3; //从P1.3输出 (不同型号单片机可能不一样)
P2DIR |= BIT3; //从P1.3输出 (不同型号单片机可能不一样)
break;
case 'N':case 'n': //如果设置为低电平模式
TA1CCTL2 =OUTMOD_3; //低电平PWM输出
P2SEL |= BIT3; //从P1.3输出 (不同型号单片机可能不一样)
P2DIR |= BIT3; //从P1.3输出 (不同型号单片机可能不一样)
break;
case '0':case 0: //如果设置为禁用
P2SEL &= ~BIT3; //P1.3恢复为普通IO口
P2DIR |= BIT3;
P2OUT |= BIT3;
break;
default : return(0); //参数有误
}
PWM调节
PWM频率设置
PWM占空比设置
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