Добавил ATmega8 и заготовку проектов CVAVR - PROTEUS.
В шаблоне проекты уже сконфигурированы и он легко адаптируется на другие МК AVR. Посмотрите пример использования шаблона : viewtopic.php?f=2&t=3958&p=52604#p5260
Хлопцы, допоможить!!! Что за глюк, ни как не разберусь: на АЦП подается 2 сигнала, на 0-й и 1-й пин. По одиночке оба шикарно работают, а вот в месте начинают партачить
может вру, но где-то читал о подобной проблеме.. попробуйте вхолостую ацп гонять между измерениями, первый померили, померили второй, потом снова второй но тут уже взяли данные , тут первый, снова первый и взяли данные и тд ..
проблема связана с тем, что не успевает перезарядиться емкость АЦП. при обычном запуске АЦП происходит полтора преобразования, т.е. если добавить второе преобразование, то скорее всего вы решите проблему, можно кстати не отбрасывать первое измерение а усреднять.
во такой вопрос, навеян часами. В мк запущен таймер с перыванием по совпадению. Вопрос, таймер на счет запускается снова только после завершения процедуры обработки прерывания или есть возможность его запустить с нуля тут же после совпадения?
Fox89 писал(а):В мк запущен таймер с перыванием по совпадению. Вопрос, таймер на счет запускается снова только после завершения процедуры обработки прерывания или есть возможность его запустить с нуля тут же после совпадения?
Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm
avr123.nm.ru писал(а):Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm
видимо меня не совсем поняли. У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625. Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания?
Курс полистал - много мусора, четкой логической структуры нет. Больше напоминает поток сознания. Неужели писать в строгом стиле, как это делали во всех технических книгах 50-60-70х уже не в почете? На кой черт надо цветом и размером выделать свои эмоциональные восклицания? Я конечно понимаю что "пользователи ничего не понимают, их в одно и то же по нескольку раз тыкать приходится" но это не повод по 10 раз одно и то же упоминать. Курс по содержанию неплох, но из за такого жуткого предстваления только проигрывает. Ни я, ни мои одногрупники не смогли усидеть за чтением этого курса, через пару минут уже в глазах рябит, пришлось сделать выбор в пользу нормально написаной книги, пусть не полной но с нормальным стилем изложения.
avr123.nm.ru писал(а):Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm
видимо меня не совсем поняли. У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625. Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания ?
ОЧЕВИДНО ! вы не понимает написаного выше! или не читаете ... Таймеру ПЛЕВАТЬ на прерывание.
Можно в симуляторе посмотреть как он считает.
Fox89 писал(а):На кой черт надо цветом и размером выделать свои эмоциональные восклицания? Я конечно понимаю что "пользователи ничего не понимают, их в одно и то же по нескольку раз тыкать приходится" но это не повод по 10 раз одно и то же упоминать.
Вот вам пример. Второй раз разными цветами написал вам. Надеюсь так ДОЙДЁТ !
Добавлено спустя 9 минут 25 секунд:
Fox89 писал(а):Курс по содержанию неплох, но из за такого жуткого предстваления только проигрывает.
пришлось сделать выбор в пользу нормально написаной книги, пусть не полной но с нормальным стилем изложения.
Я выбираю СОДЕРЖАНИЕ а форма для меня вторична. Что это за КНИГА про AVR в которой не написано о том как работает таймер ??? :cry: Скачайте нормальную книгу в библиотеке указаной в курсе или на первой странице топика и читайте.
[quote="avr123.nm.ru"][/quote] в книге как раз про таймеры есть, просто это та тонкость про которую в книге могут и не написать.
Почему я спрашиваю. Допустим таймеру плевать на прерывание. Тогда допустим таймер у нас работает на частоте кварца и будет давать прерывание каждые 10 тактов, а программа обработки прерывания выполняется за 20 тактов, получается если наступает прерывание, и после его наступления мы не запретим прерывания, то у нас не будет успевать обрабатываться подпрограмма обработки прерывания. А если мы будем запрещать прерывания, и не будем вручную обнулять таймер, то непонятно как тогда формировать малые промежутки времени, ведь неизвестно, сколько тактов будет обрабатываться функция после компиляции.
Вопрос бы не возник вообще, если бы не отставали часы...
Fox89 писал(а): Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания?
на сколько я понял у вас таймер будет считать дальше выставив прерывание. другое дело если обнулять счетчик в прерывании, тогда отсчет пойдет с нуля. есть несколько режимов работы таймера какой из них в часах непонятно.
rig писал(а):есть несколько режимов работы таймера какой из них в часах непонятно.
Да он написал режим таймера:
Fox89 писал(а):У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625. Таким образом таймер читает от 0 до 625 и вызывает прерывание.
Просто читать ответы и ПОНИМАТЬ не желает почемуто.
Я уж и в задачу 13 посылал - http://avr123.nm.ru/z13.htm - там таймер именно в таком режиме работает и в процедуре прерывания обнуляется ... А он - бедолага - за формой содержания не видит.
Неужели эта расцветка мешает восприятию ??? :shock: