реклама на сайте
подробности

 
 
> Подружить ADC12 и TimerB
Salazar
сообщение Jul 11 2007, 08:09
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 30-06-07
Пользователь №: 28 801



Здравствуйте. Я пишу программу, которая должна периодически просыпаться и передавать по UART значения с ADC с метками времени от TimerB.

По отдельности всё работает, но как только всё собирается воедино...
Сразу после включения ADC12 у меня перестаёт прерываться таймерБ.
Как быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aag
сообщение Jul 18 2007, 03:23
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 8-04-06
Из: Новосибирск
Пользователь №: 15 939



считывание значения заменил такой строкой:
Код
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
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jul 18 2007, 05:29
Сообщение #3


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(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


По моему вы невнимательно читаете документацию. Доки от ТИ заслуживают уважения к себе biggrin.gif a14.gif

1. Я не вижу где вы настраиваете непосредственно канал (регистр ADC12MCTL0).

2. Читайте в самом верху на регистры ADC12CTL1, ADC12CTL0, ADC12MCTL0 : Modifiable only when ENC = 0
Это значит, что
Код
ADC12CTL0 |= ENC;
вы должны сделать в самом конце. Вообще полезно после инициализации всех регистров проверить, а приинитились ли они как надо.

3. Прерывания от таимера и от АЦП происходят??? Точку останова поставте в обработчиках.

4. Если прерывания есть, в дебуггере сбросте значение ADC12MEM0 в 0 и посмотрите на следующем прерывании оно 0x04D8? Если нет, то это значит, что значение не меняется, а не неправильное.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Salazar   Подружить ADC12 и TimerB   Jul 11 2007, 08:09
- - VAI   ЦитатаКак быть? Понять, что здесь не общество теле...   Jul 11 2007, 09:06
- - jorikdima   меня тоже это все очень интересует Как раз сейча...   Jul 11 2007, 10:21
- - Salazar   Вот так я инициализирую АЦП: Код... ADC12CTL0 = SH...   Jul 12 2007, 06:29
|- - jorikdima   Цитата(Salazar @ Jul 12 2007, 10:29) Вот ...   Jul 12 2007, 06:46
- - Salazar   Например: (ACLK = 32768) TimerB срабатывает 100 ...   Jul 12 2007, 07:35
- - jorikdima   Если через ADC12SC то периода нету как такового - ...   Jul 12 2007, 09:07
- - VAI   Вот так я вызываю Преобразования с определенным пе...   Jul 12 2007, 09:45
- - Salazar   Всем спасибо. То что я хотел решилось стартом прер...   Jul 13 2007, 20:28
- - aag   2 Salazar: Напишите, плиз, итоговый код прерывани...   Jul 17 2007, 09:44
- - VAI   2 aag А чем мой код не нравится?   Jul 17 2007, 09:54
- - aag   Ваш код нравится. только я не все в нем понимаю: ...   Jul 17 2007, 11:47
|- - jorikdima   Цитата(aag @ Jul 17 2007, 15:47) Ваш код ...   Jul 17 2007, 11:49
- - aag   В принципе, да. У мне как раз и хотелось по тайме...   Jul 17 2007, 12:15
- - jorikdima   ADC12_isr_add() его "личная" функция и с...   Jul 17 2007, 12:44
- - aag   Цитата2. Читайте в самом верху на регистры ADC12CT...   Jul 18 2007, 06:21
- - jorikdima   Цитата(aag @ Jul 18 2007, 10:21) теперь п...   Jul 18 2007, 07:10


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016