Не поможет ли кто разобраться с АЦП MSP430F5529?
Пишу на C в IAR.
Вот код:
CODE
int main( void )
{
P6SEL |= BIT0; // P6.0 - AN0
ADC12CTL0 &= ~ADC12ENC; // ADC12 enable of configuration
ADC12CTL0 |= ADC12ON; // ADC12 On
ADC12CTL1 |= ADC12SSEL1; // Set MCLK for ADC
ADC12CTL0 |= ADC12SHT02; // Set of the sample and hold time 64 tacts for ADC12MEM0 to ADC12MEM7 -
// ( ^ На всякий случай выставил больше длины преобразования
// - 12 тактов).
ADC12CTL2 |= ADC12RES1; // Set of the 12 bit resolution
ADC12MCTL0 = 0x0; // Set of the AN0 input
// ADC12IE |= ADC12IE0; // Enable of the ADC12 0 interrupt
ADC12CTL0 |= ADC12ENC; // ADC12 enable of the conversion
while (1)
{
ADC12CTL0 |= ADC12SC; // Start of the conversion.
Delay (0xFFF); // Delay about 0,1 Sec.
Tr_RS232 (ADC12MEM0_H); // Send of the high digits of the ADC. - Просто передаёт результат на RS232
Tr_RS232 (ADC12MEM0_L); // Send of the low digits of the ADC.
}
}
{
P6SEL |= BIT0; // P6.0 - AN0
ADC12CTL0 &= ~ADC12ENC; // ADC12 enable of configuration
ADC12CTL0 |= ADC12ON; // ADC12 On
ADC12CTL1 |= ADC12SSEL1; // Set MCLK for ADC
ADC12CTL0 |= ADC12SHT02; // Set of the sample and hold time 64 tacts for ADC12MEM0 to ADC12MEM7 -
// ( ^ На всякий случай выставил больше длины преобразования
// - 12 тактов).
ADC12CTL2 |= ADC12RES1; // Set of the 12 bit resolution
ADC12MCTL0 = 0x0; // Set of the AN0 input
// ADC12IE |= ADC12IE0; // Enable of the ADC12 0 interrupt
ADC12CTL0 |= ADC12ENC; // ADC12 enable of the conversion
while (1)
{
ADC12CTL0 |= ADC12SC; // Start of the conversion.
Delay (0xFFF); // Delay about 0,1 Sec.
Tr_RS232 (ADC12MEM0_H); // Send of the high digits of the ADC. - Просто передаёт результат на RS232
Tr_RS232 (ADC12MEM0_L); // Send of the low digits of the ADC.
}
}
Получаю по RS232 всегда 0x00. (Сама функция Tr_RS232() работает)
Вход P6.0 переключается на ввод - у меня там делитель и ёмкость - при прохождении строки кода P6SEL |= BIT0,
видно, что уровень становится в пол-питания.
В очередной раз что-то недопонимаю.
Может, что-то очевидное?