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

 
 
> Подружить 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 17 2007, 12:15
Сообщение #2


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

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



В принципе, да.

У мне как раз и хотелось по таймеру А (или В, или просто по нажатию кнопки) однин раз считать значение напряжения на входе АЦП (пока только на одном пине, а не на всех сразу) и передать его куда-нибудь. но вот то что я написал не работает:
Код
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A_isr( void )
{
   if (!read)
   {
      ADC12CTL0 |= ADC12SC;
      read = true;
   }
  
   .....
}

#pragma vector=ADC_VECTOR
__interrupt void ADC12_isr( void )
{
   adc_value = ADC12MEM0 + (ADC12MEM1 << 8);
   read = false;
}


adc_value - глобальная переменная типа unsigned int, откуда потом можно будет считать данные о том, что было на входе АЦП
read - глобальная переменная, необходимая для того чтобы таймер знал, что данные еще не получены и не запускал АЦП заново

p.s. функция ADC12_isr_add() в коде VAI для его нужна? и где ее код взять?

Сообщение отредактировал aag - Jul 17 2007, 12:16
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
- - jorikdima   ADC12_isr_add() его "личная" функция и с...   Jul 17 2007, 12:44
- - aag   считывание значения заменил такой строкой: Кодadc_...   Jul 18 2007, 03:23
|- - jorikdima   Цитата(aag @ Jul 18 2007, 07:23) считыван...   Jul 18 2007, 05:29
- - 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 - 15:18
Рейтинг@Mail.ru


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