AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
15.04.2013, 20:51
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Таймер вырабатывает два прерывания, соответствующие произошедшим событиям. Чтобы долго не ломать голову, вызвать Визард, в нем выбрать только таймеры - Т2, откроется вкладка. На ней выбрать источник тактирования, оба прерывния Просмотром посмотреть (не Генерацией), что он сгенерировал. Кроме неинтересной чешуи там будут настройка Т2 и заготовки двух обработчиков прерываний. Можно копипастом перенести из окна Визарда в текст программы, а В. просто закрыть.
Переносить лучше через временный текстовый файл.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
15.04.2013, 21:51
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
oleg110592, что-нибудь получилось?!(
|
|
|
|
15.04.2013, 22:05
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Щас - тут надо немного попаять, завтра в командировку в пригород.
|
|
|
|
15.04.2013, 22:08
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
AsSoul, честно говоря, не понял, какие проблемы? Недостаточно подробно рассказал, есть вопросы? Немного уточню:
// Timer2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
// Place your code here
}
Это заготовка обработчика прерывания по сравнению.
Полный пример обработки прерывания - передача байта УАРТом:
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index++];
#if TX_BUFFER_SIZE != 256
if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
#endif
}
}
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
15.04.2013, 22:25
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от oleg110592
|
Щас - тут надо немного попаять, завтра в командировку в пригород.
|
Ааа, сори!)
|
|
|
|
15.04.2013, 22:29
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от akegor
|
AsSoul, честно говоря, не понял, какие проблемы? Недостаточно подробно рассказал, есть вопросы? Немного уточню:
// Timer2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
// Place your code here
}
Это заготовка обработчика прерывания по сравнению.
Полный пример обработки прерывания - передача байта УАРТом:
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index++];
#if TX_BUFFER_SIZE != 256
if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
#endif
}
}
|
Да нет, подробно более менее! Но для меня это местами все равно как абра-кадабра! Только месяц как начала разбираться в кодвижене! Сижу ваяю сейчас, пытаюсь по Вашему описанию! Но пока не работает!
|
|
|
|
15.04.2013, 22:39
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
15.04.2013, 22:42
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Приблизительно наваял.
|
|
|
|
15.04.2013, 23:10
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от oleg110592
|
Приблизительно наваял.
|
А можно вынести
PORTB.5=1; // enable
за цикл while() - там же все время 1 должна быть?!
|
|
|
|
15.04.2013, 23:19
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Все в руках программерских. Я бы все же использовал Т2, как говорил, с двумя прерываниями. В этом случае частота ШИМ определяется предделителем и предустановкой таймера (последнее уменьшает дискретность регулирования), а скважность - значением в регистре сравнения.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:17.
|
|