LaunchPad(MSP430G2553)_官方例程__汉语注释
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//
MSP430G2452
//
-----------------
//
/|\|
XIN|-
//
||
|
//
--|RST
XOUT|-
//
|
|
//
|A10
|
//*************************************************************************
#include "msp430g2553.h"
__no_operation();
// SET BREAKPOINT HERE 此设置断点
} }
// ADC10 interrupt service routine #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR (void) {
__bic_SR_register_on_exit(LPM0_bits); }
P1OUT ^= BIT0; P1IFG &= ~BIT3; } }
// P1.0 切换 // P1.3 IFG 清除
3.
//*************************************************************************
// LaunchPad Lab5 - ADC10, Sample A10 Temp and Convert to oC and oF ADC10,样品 A10 的温度和转换
//停止看门狗定时器 // DCO+ set, 频率 = xtal x D x
// x2 DCO freq, 8MHz nominal DCO // (121+1) x 32768 x 2 = 7.99 MHz
// P1.1 口和 P1.5 的输出方向 // P1.1 口和 P1.5 的输出 MCLK 和 ACLK
// 使能中断。 // Delay to allow Ref to settle 延迟让价解决
//比较模式中断。 // TACLK= SMCLK,最多的模式。 //等待延迟。 //禁用定时器中断
__disable_interrupt();
while(1) {
ADC10CTL0 |= ENC + ADC10SC; __bis_SR_register(LPM0_bits + GIE);
#include <msp430g2553.h>
void main(void) {
WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT0; P1IES |= BIT3; P1IFG &= ~BIT3; P1IE |= BIT3;
//停止看门狗定时器 //设定的 P1.0 输出方向 // P1.3 可高/低边 // P1.3 IFG 清除 // P1.3 可中断启用
//*************************************************************************
#include <msp430x20x3.h>
百度文库
unsigned char s;
void main(void) {
WDTCTL = WDTPW +WDTHOLD; BCSCTL3 |= LFXT1S_2; //DCOCTL = 0; //BCSCTL1 = CALBC1_16MHZ; //DCOCTL = CALBC1_16MHZ; P1DIR |= 0x31;
IFG1 &= ~OFIFG; BCSCTL2 |=SELM_1 + DIVM_0;
//清除 OSCFault 标志 //设置的 MCLK
for(;;) {
P1OUT = BIT6; _delay_cycles(100);
P1OUT = 0; _delay_cycles(5000); } }
// P1.6 输出(绿色 LED) //绿色 LED 关闭
2.
//*************************************************************************
// LaunchPad Lab3 - Software Port Interrupt Service 软件端口的中断服务
//
MSP430G2xx2
long temp; long IntDegF; long IntDegC;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
// Stop WDT
//Configure ADC10
ADC10CTL1 = INCH_10 + ADC10DIV_3;
// 选择 ADC 通道温度传感器
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE; // 选 择 ADC 号源
__enable_interrupt(); TACCR0 = 30; TACCTL0 |= CCIE; TACTL = TASSEL_2 | MC_1; LPM0; TACCTL0 &= ~CCIE;
//
MSP430F20xx
//
-----------------
//
/|\|
XIN|-
//
||
|
//
--|RST
XOUT|-
//
|
|
//
|
P1.4/SMCLK|-->SMCLK = Default DCO
//
|
P1.5|-->MCLK/10 = DCO/10
//
|
P1.0/ACLK|-->ACLK = VLO
//明确 CPUOFF 位从 0(SR)
#pragma vector=TIMER0_A0_VECTOR __interrupt void ta0_isr(void) {
TACTL = 0; __bic_SR_register_on_exit(LPM0_bits); }
//明确 CPUOFF 位从 0(SR)
//
-----------------
//
/|\|
XIN|-
//
||
|
//
--|RST
XOUT|-
// /|\ |
|
//
--o--|P1.3
P1.0|-->LED
// \|/
//
//*************************************************************************
MSP430G2xx2
//
-----------------
//
|\|
XIN|-
//
||
|
//
--|RST
XOUT|-
//
|
|
//
|
P1.0|-->LED
//*************************************************************************
#include <msp430g2553.h>
void main(void) {
WDTCTL = WDTPW + WDTHOLD;
//停止看门狗定时器
if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF)
{
while(1);
//如果校准常数擦除,捕获的 CPU!!
_BIS_SR(LPM4_bits + GIE); }
//进入 LPM4 中断
// Port 1 interrupt service routine 端口 1 中断服务程序
#pragma vector=PORT1_VECTOR __interrupt void Port_1(void) {
if (P1IFG & BIT3) {
LaunchPad 官方例程(无修改)
1.
//*************************************************************************
// LaunchPad Lab2 - Software Toggle P1.0, 软件切换的 P1.0,
//
//采样和转换启动 // LPM0 与中断功能
// oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468 temp = ADC10MEM; IntDegF = ((temp - 630) * 761) / 1024;
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278 temp = ADC10MEM; IntDegC = ((temp - 673) * 423) / 1024;
//
//
MSP430xG461x
//
-----------------
//
/|\|
XIN|-
//
||
| 32kHz
//
--|RST
XOUT|-
//
|
|
//
|
P1.1|--> MCLK = 8MHz
//
|
|
//
|
P1.5|--> ACLK = 32kHz
//
|
|
//
//*************************************************************************
}
// Configure Basic Clock BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL3 |= LFXT1S_2;
//设置范围 //集检查官步+调制 // 设置 LFXT1
P1DIR = BIT6; P1OUT = 0;
//P1.6 输出(绿色 LED) // LED 关
// 关闭看门狗 // LFXT1 = VLO
// P1.0,和 P1.4 输出
P1SEL |= 0x11;
// P1.0,4 ACLK/ VLO 的,SMCLK/ DCO 输出
//SMCLK Sub-System Main Clk, ACLK 和 SMCLK 可以通过复用引脚输出,MCLK 不能直接输出体现, MCLK 可以配置为 VLO 或者 DCO
#include <msp430xG46x.h>
void main(void) {
WDTCTL = WDTPW + WDTHOLD; FLL_CTL0 |= DCOPLUS + XCAP18PF; N+1 SCFI0 |= FN_4; SCFQCTL = 121; P1DIR = 0x22; P1SEL = 0x22;
while(1);
// 循环到此
}
6.
//*************************************************************************
// MSP430xG46x 演示 - Flash 在系统编程,复制世嘉 SegB // / /说明:此程序首先擦除闪烁赛格 A,那么它的增量 / /赛格一个值,然后擦除赛格 B,然后复制赛格一个赛格 B。 //假设的 MCLK 的 550kHz - 900kHz 的。 / / / /* NOP 指令集在主循环中断点,以避免强调的 Flash *//
while(1) {
P1OUT |= 0x20; 两条指令的周期大概为 SMCLK 的 1/10
P1OUT &= ~0x20;//20; } }
// P1.5 = 1, 通过开关 P1.5 来体现 MCLK,这
5.
//************************************************************************* // MSP430xG46x 演示 - FLL 的内部运行,在 8MHz 检查官 //说明:此程序演示设置内部 DCO 运行 / /为 8MHz 由 FLL+自动校准。 // ACLK= LFXT1=32768Hz 的 , 个 MCLK= SMCLK= 检 查 官 = ( 121+1 ) × 2 × ACLK=7995392Hz / / / /*辛与 XOUT 之间的外部钟晶振需要 ACLK* / /
4.
//************************************************************************* // MSP430F20xx 演示 - 基本时钟,输出缓冲 SMCLK,ACLK 和 MCLK/10/ / //说明:缓冲区 ACLK 从 P2.0,P1.4 脚和 MCLK/10 默认 SMCLK(DCO) / / P1.5 的。 // ACLK= LFXT1= VLO 的,个 MCLK= SMCLK=默认的 DCO / / / /*安装辛 XOUT 之间的外部晶体需要 ACLK* / /