你好。 我叫 Junsuke。
请告诉我们以下事件。
将 MSP430的3.3V 电源除以2 μ 10kΩ 的结果由 ADC10转换。
转换结果为560。我的计算结果为511。 为什么您得到560的值?
下面是使用的编程代码。 谢谢你。
------
#include /* MSP430G2553用のヘッダファイル*/
#include /* uint8_t とか定義してあるヘッダファイル*/
#include
#include
#include
字符输入[10];
char syokika[10]={};
Int A;
Int mozi;
国际间歇;
char mukou[64]={'d'、'i'、's'、'a'、'b'、'0'、'e'};
void main (void)
{
WDTCTL = WDTPW +WDTHOLD;
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
ADC10CTL0 = ADC10SHT_2 + ADC10ON;
//ADC10CTL0 &=~ADC10ON;
/*
ADC10SHT:ADC10のサンプル&ホールド時間 μ H
(サンプリング・維持の時間設定?)ここでは16カウント
ADC10ON:ADC10 μ はオン
ADC10IE:DC10割り込みのイネーブル
*
ADC10CTL1 = INCH_3;
ADC10AE0 |= 0b00001000;
ADC10CTL0 |= ENC;
/*
入力チャンネルをA3に設定 μ A
ADC10 μ アナログ入力のイネーブル(μ P1.3のアナログ入力をイネーブル P1.3がA3に対応するため)
*
P1DIR |= 0x01;
P1OUT = 0x01;
P1SEL = 0x06;
P1SEL2 = 0x06;
UCA0CTL1 = 0b10000001;
UCA0BR0 = 0x68;
UCA0BR1 = 0x00;
UCA0MCTL = UCBRS_1;
UCA0CTL1 &=~UCSWRST;
IE2 |= UCA0RXIE;
_bis_SR_register (LPM0_bits +GIE);
}
#pragma vector=USCIAB0RX_vector
_interrupt void USCI0RX_ISR (void)
{
if (UCA0RXBUF ='A' ){
//ADC10CTL0 |= ENC;
ADC10CTL0 |= ADC10SC;
/*ENC:ADC10をイネーブル
ADC10SC:ソフトウェア制御のサンプリング/変換の開始。*/
memset (输入、'\0'、sizeof (输入));
snprintf (输入、10、"%d"、ADC10MEM);
for (mozi=0;mozi<10;mozi++){
UCA0TXBUF =输入[MOZi];
while (!(IFG2 & UCA0TXIFG));
}
char kaigyo[2]={'\r\n'};
for (ka=0;ka<2;ka++){
UCA0TXBUF = kaigyo[开];
__delay_cycles (10000 );
}
--------------------