📄 232.c
字号:
#include <msp430x14x.h>
void Init_Usart1(void);
void Init_Adc12(void);
static unsigned int Adcbuffer;
static unsigned char Usartbuffer;
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
Init_Adc12();
Init_Usart1();
P3DIR = BIT5;
P3OUT&=~BIT5;
_EINT();
while(1);
}
void Init_Adc12(void)
{
P6SEL = BIT0;
ADC12CTL0&=~ENC; //清除ENC位
ADC12CTL0 |= ADC12ON+MSC+SHT0_6; //多次转换模式,转换周期为128+13=141
ADC12CTL1 |= SHP+CONSEQ_2+ADC12SSEL_1; //采样信号来自信号发生器,单通道多次转换,时钟来自ACLK
ADC12MCTL1 = INCH_0; //选择输入通道0
ADC12IE = BIT0; //允许ADC12IFG.0发生中断
}
void Init_Usart1(void)
{
UCTL1&=~SWRST;
UCTL1 = 0x10;
UBR01 = 0x6D ;
UBR11 = 0x00;
UMCTL1 = 0x22;
UTCTL1 = 0x10;
ME2|=0x30;
P3SEL |= BIT6+BIT7;
IE2|=URXIE1;
}
#pragma vector = ADC_VECTOR
__interrupt void ADC12ISR(void)
{
Adcbuffer = ADC12MEM0; //转换结果存入缓存
Adcbuffer = Adcbuffer>>4; //Adcbuffer的值右移4位
Usartbuffer = Adcbuffer;
TXBUF1 = Usartbuffer;
while((UTCTL1&0x01)==0);
}
#pragma vector=UART1RX_VECTOR
__interrupt void UART1RX(void)
{
if(RXBUF1 == 0xff)
P3OUT = BIT5;
ADC12CTL0 |= ENC+ADC12SC; //A/D转换开始
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -