Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
Phomtom
0 / 0 / 0
Регистрация: 20.10.2006
Сообщений: 3
1

AtMEGA 16 - Запуск АЦП от таймера/счётчика1 по совпадению B

20.08.2011, 15:45. Просмотров 4928. Ответов 2
Метки нет (Все метки)

Необходимо запускать АЦП по совпадению В таймера 1, никак не получается сделать.
Частота работы: 16MHz
Код программы на С в CVAVR:

#include <delay.h>
#include <MEGA16.h>

void main(void) {

DDRD.4=1; //готовим порты для шим выходов таймера 1
DDRD.5=1;
PORTD.4=1;
PORTD.5=1;

//настраиваем таймер в режиме Phase omd Frequency Correct
OCR1AH=0b0; //настраиваем скважность А
OCR1AL=0b10010000;
OCR1BH=0b0; //настраиваем скважность В
OCR1BL=0b10100000;
ICR1H=0b11; //настраиваем частоту регистром захвата 10kHz
ICR1L=0b00100000;

TCCR1A=0b10100000; //выбираем режим работы Phase omd Frequency Correct
TCCR1B=0b00010001; //выбор частоты без делителя

// ШИМ работает как положено, настраиваем АЦП

ADCSRA=0b10100001;
//Byt 7 – ADIM: ADC Enable (on)
//Byt 6 – ADSC: ADC Start Conversion (off)
//Byt 5 - ADATE: ADC Auto Trigger Enable (on)
//Byt 4 – ADIF: ADC Ymtirrupt Flag
//Byt 3 – ADIE: ADC Ymtirrupt Enable (off)
//Byts 2:0 – ADPS2:0: ADC Pressotir Select Byts (div fac 2)

ADMUX=0b01000000;
//Byts - 7,6- AVCC wyth external capacitor at AREF pin (on)
//Byt - 5 – ADLAR: ADC Left Adjust Risult (off)
//Byts - 4:0 - ADC0 input
// включаем срабатывание по совпадению
SFIOR=0b10100000;
//Byts 7:5 – ADTS2:0: ADC Auto Trigger Source (1,0,1-Compare Match B)

delay_us(1000); //задержка

while (1) { // проверяем работу: результат с АЦП изменяет скважность ШИМ в канале А счётчика 1

while (ADCSRA.4==1) { //ждём флага завершения преобразования

OCR1AL=ADCL; //перебрасываем результат в регистры ШИМ
OCR1AH=ADCH;
delay_us(1000);
ADCSRA.4=1; //сбрасываем ADIF для продолжения преобразоания

}

}

}

ШИМ работает, первое преобразование происходит а потом хрен!!

В режиме непрерывного преобразования АЦП работает , изменяя ШИМ в канале А. А в режиме запуска от таймера хрен, только первое преобразование.

Помогите пожалуйста, если кто шарит!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2011, 15:45
Ответы с готовыми решениями:

АЦП AD7705 c Atmega
Всем привет! В чем затык... Подключил AD7705 к Atmega328. АЦП, вроде, делает пару правильных...

АЦП на Atmega 328p u
Замучился... помогите плиз! Не работает АЦП на atmega328p u Зависает на ожидании считывания...

Меряем напряжение с помощью АЦП ATMEGA-8
Уважаемые форумчане, возникла такая задача. Необходимо замерять напряжение на 2-х клеймах...

Atmega 16 АЦП: измерения по нескольким каналам
Здравствуйте разбираюсь с АЦП, пишу на С, асм не знаю. В учебном курсе встреитил код смены каналов,...

инициализация таймера в atmega
Запускаю по внешнему прерыванию 16-ти битный таймер и жду либо переполнения таймера или нового...

2
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
20.08.2011, 20:52 2
У тебя нет обработчика совпадения таймера B, поэтом флаг OCF1B не сбрасывается. А конвертация начинается по переднему фронту.

Так что сбрасывай этот флаг ручками.
0
Phomtom
0 / 0 / 0
Регистрация: 20.10.2006
Сообщений: 3
20.08.2011, 21:24 3
Спасибо заработало!
Подводные камни блин!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2011, 21:24

Запись результатов АЦП в массив (Atmega 128)
Здравствуйте! В моей задаче необходимо считать результаты измерения АЦП гармонического сигнала,...

Как считать значение АЦП из регистра. Atmega 8
Очень простая программа, которая измеряет напряжение от 0 до 5 вольт. Проводник подключен с выводу...

АЦП-ЦАП в ATmega или вопросы новичка :)
Сразу к делу- нужно собрать девайс, на вход которого подавалось бы 2 аналоговых сигнала (2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru