Цитата(aag @ Jul 18 2007, 07:23)

считывание значения заменил такой строкой:
Код
adc_value = ADC12MEM0;
(изначально я думал, что ADC12MEMx 8-битные, а раз ацп 12 разрядов, то соответственно первые 8 лежат в ADC12MEM(x), а оставшиеся 4 - в ADC12MEM(x+1) )
установки такие:
Код
ADC12CTL0 = ADC12ON | MSC | ENC | REF2_5V;
ADC12CTL1 = SHP;
P6SEL = 0x01;
ADC12IE = 0x01;
функция ADC12CTL0 |= ADC12SC; срабатывает по нажжатию кнопки.
вроде все должно нормально работать, только вот значения ADC12MEM0 не зависят от приложенного к пину напряжения почему-то. значение всегда равно 0x04D8
По моему вы невнимательно читаете документацию. Доки от ТИ заслуживают уважения к себе
1. Я не вижу где вы настраиваете непосредственно канал (регистр ADC12MCTL0).
2. Читайте в самом верху на регистры ADC12CTL1, ADC12CTL0, ADC12MCTL0 :
Modifiable only when ENC = 0Это значит, что
Код
ADC12CTL0 |= ENC;
вы должны сделать в самом конце. Вообще полезно после инициализации всех регистров проверить, а приинитились ли они как надо.
3. Прерывания от таимера и от АЦП происходят??? Точку останова поставте в обработчиках.
4. Если прерывания есть, в дебуггере сбросте значение ADC12MEM0 в 0 и посмотрите на следующем прерывании оно 0x04D8? Если нет, то это значит, что значение не меняется, а не неправильное.