?? msp430f149-
字號:
/*********************************************************
程序功能:將ADC對P6.0端口電壓的轉(zhuǎn)換結(jié)果按轉(zhuǎn)換數(shù)據(jù)和對應(yīng)的
模擬電壓的形式通過串口發(fā)送到PC機屏幕上顯示
-----------------------------------------------------------
通信格式:N.8.1, 9600
-----------------------------------------------------------
測試說明:打開串口調(diào)試精靈,正確設(shè)置通信格式,觀察接收數(shù)據(jù)
**********************************************************/
#include <msp430.h>
#include "adc_fun.c"
#include "uart_fun.c"
#define Num_of_Results 32
uint results[Num_of_Results]; //保存ADC轉(zhuǎn)換結(jié)果的數(shù)組
uint average;
uchar tcnt = 0;
/***********************主函數(shù)***********************/
void main( void )
{
uchar i;
uchar buffer[5];
WDTCTL = WDTPW + WDTHOLD; //關(guān)狗
InitUART();
Init_ADC();
_EINT();
buffer[4] = '\0';
while(1)
{
LPM1;
Hex2Dec(average,buffer);
for(i = 0; i < 4; i++)
buffer[i] += 0x30;
PutString0("The digital value is: ");
PutString(buffer);
Trans_val(average,buffer);
buffer[3] = buffer[2];
buffer[2] = buffer[1];
buffer[1] = 0x2e - 0x30;
for(i = 0; i < 4; i++)
buffer[i] += 0x30;
PutString0("The analog value is: ");
PutString(buffer);
}
}
/*******************************************
函數(shù)名稱:ADC12ISR
功 能:ADC中斷服務(wù)函數(shù),在這里用多次平均的
計算P6.0口的模擬電壓數(shù)值
參 數(shù):無
返回值 :無
********************************************/
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
static uchar index = 0;
results[index++] = ADC12MEM0; // Move results
if(index == Num_of_Results)
{
uchar i;
average = 0;
for(i = 0; i < Num_of_Results; i++)
{
average += results[i];
}
average >>= 5; //除以32
index = 0;
tcnt++;
if(tcnt == 250) //主要是降低串口發(fā)送速度
{
LPM1_EXIT;
tcnt = 0;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -