微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > msp430工作笔记二

msp430工作笔记二

时间:11-13 来源:互联网 点击:

UCA0CTL1 &= ~UCSWRST;// **Initialize USCI state machine**初始化释放,可以操作

IE2 |= UCA0RXIE;// Enable USCI_A0 RX interrupt接收中断使能

__bis_SR_register(LPM0_bits + GIE);// Enter LPM0, interrupts enabled

}

// Echo back RXed character, confirm TX buffer is ready first

#pragma vector=USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

{

while (!(IFG2&UCA0TXIFG));// USCI_A0 TX buffer ready? 等待TX buffer为空

UCA0TXBUF = UCA0RXBUF;// TX -> RXed character发送接收到是数据

rev=UCA0RXBUF;

if(rev&0x01)

{

P1OUT |= BIT0;

putstr(string1);

putstr(string2);

}

else

P1OUT &= ~BIT0;

}

注意:关于波特率的设置这一块还没有看懂,但上面的例子总的设置是对的

值得说明的是:可以用定时器来实现串口通信功能,例子还没有看。

3,对于SPI和I2C,有时有可能会用于g2553和其他的一些芯片、设备的通信用,还没没仔细看。

(六),比较器AComparator_A+

1,是一个模拟电压比较器,主要功能是指出两个输入电压CA0和CA1的大小关系,然后由输出信号CAOUT输出。

2,输出:如果正端输入电压大于负端输入电压,输入为1。如果负端输入电压大于正端输入电压,输出为0;

3,最终输出信号的上升沿或下降沿可以设置为具有中断能力,中断响应后,硬件会自动清除中断标志位CAIFG,也可以被软件清除。

4,Comparator_A+支持精密的斜坡AD转换,供电电压检测和监视外部模拟信号。

5,比较器的其中一路可以接参考电压,有0.25VCC, 0.5VCC, 三极管的阀值电压0.55V

也可以两路信号都接外部的模拟信号。

6,更详细的内容,参见用户只能,下面的例子是简单的用比较器A比较两个输入模拟电压的高低,有CAOUT输出:

//主要功能是比较两个输入信号的大小关系

#include

void delay(void);// Software delay

void main (void)

{

WDTCTL = WDTPW + WDTHOLD;// Stop WDT

CACTL2 = P2CA4;// CA1/P1.1 = +comp 正输入端信号选择CA1,负输入端信号不连接外部输入信号

//其他位的设置为默认:比较器输出不滤波 , CAOUT为比较器的输出结果

CCTL0 = CCIE;// CCR0 interrupt enabled

TACTL = TASSEL_2 + ID_3 + MC_2;// SMCLK/8, cont-mode

_EINT();// enable interrupts

while (1)// Loop

{

//比较器A控制寄存器1 CACTL1采用的是默认设置:参考电压源VCAREF加到比较器的正输入端,内部参考源关,比较器关,

//中断不使能

CACTL1 = 0x00;// No reference voltage

_BIS_SR(LPM0_bits);// Enter LPM0

CACTL1 = CAREF0 + CAON;// 参考源为0.25*Vcc, Comp. on

_BIS_SR(LPM0_bits);// Enter LPM0

CACTL1 = CAREF1 + CAON;// 参考源为0.5*Vcc, Comp. on

_BIS_SR(LPM0_bits);// Enter LPM0

CACTL1 = CAREF1 + CAREF0 + CAON;//参考源为三极管的阀值电压 0.55V, Comp. on

_BIS_SR(LPM0_bits);// Enter LPM0

}

}

// Timer A0 interrupt service routine

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer_A (void)

{

_BIC_SR_IRQ(LPM0_bits);// Clear LPM0 bits from 0(SR)

}

7,也可以用比较器A监视供电电压,用0.25VCC和三极管的阀值电压0.55V进行比较,从而监视供电电压的高低,如果电压低于某个值时,可以做某种动作比如报警电池电量过低等。

(七),低功耗模式

1,TI msp430单片机是一个特别强调超低功耗的单片机系列。对于低功耗的实现,丰富的中断和合理的时钟系统是必须的,另外相对独立的外设,可以不在CPU的干预下独立地工作,这样减小了CPU的工作时间,也大幅降低了系统功耗。

2,msp430能够用中断迅速把CPU从低功耗模式中唤醒,唤醒时间小于1us。这就保证了系统的低功耗。让CPU工作在脉冲状态,最大限度地让CPU处于休眠状态,只有在一些需要CPU干预的操作或计算时,才把CPU唤醒。另外,把一些无关的外围模块也都关闭,使一些需要的模块尽量单独工作,从而可以把CPU休眠。合理地利用中断,在需要的时间唤醒cpu。

3,msp430应用系统价格和电流消耗等因素会影响CPU与外围模块对时钟的需求,所以系统使用不同的时钟信号:ACLK, MCLK, SMCLK。用户通过程序可以选择低频或高频,这样可以根据实际需要来选择合适的系统时钟频率,这3种不同的频率的时钟输出给出不同的模块,从而更合理地利用系统的电源,实现整个系统的超低功耗。

4,单片机的工作模式有:活动模式是(AM),低功耗模式0(LPM0)~低功耗模式4(LPM4)。不同的低功耗模式禁止不同的模块,适应不同的需求。

5,各种低功耗模式的配置有控制位:SCG1,SCG2,OscOff, CPUOff由软件来配置。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top