roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 18 апр 2008, 14:18

Обновил волшебный шаблон для быстрого написания программ в CodeVisionAVR ( CVAVR ) для ATmega8 и ATmega16 и мгновенной проверке в симуляторе VMLAB или в PROTEUS.

Добавил ATmega8 и заготовку проектов CVAVR - PROTEUS.

В шаблоне проекты уже сконфигурированы и он легко адаптируется на другие МК AVR.
Посмотрите пример использования шаблона :
viewtopic.php?f=2&t=3958&p=52604#p5260

Вот картинка симуляции из шаблона в PROTEUS
Изображение

Re: МикроКонтроллеры начинающим - общие вопросы

ZarK117 » 20 апр 2008, 14:30

Хлопцы, допоможить!!! Что за глюк, ни как не разберусь: на АЦП подается 2 сигнала, на 0-й и 1-й пин. По одиночке оба шикарно работают, а вот в месте начинают партачить

Код: Выделить всёРазвернуть
int main(void)
{

     DDRC = 0xFF;
     unsigned int l;
     unsigned int r;
     int rez;
while (1){
    ADMUX = 0b00000000;
    ADCSRA = 0b11000111;
     l = (unsigned int)(ADCW>>2);
     ADCSRA = 0b10000111;

      ADMUX = 0b00000001;
      ADCSRA = 0b11000111;
      r = (unsigned int)(ADCW>>2);
     ADCSRA=0b10000111;

      rez = l - r;
      if (rez > 0) PORTC = 0xFF;
     else PORTC = 0x00;
};
}



А он выводит всегда FF???
Последний раз редактировалось ZarK117 20 апр 2008, 18:36, всего редактировалось 2 раз(а).

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 20 апр 2008, 15:09

Приложи архив с проектами.

Или в шаблоне сделай с симуляцией - viewtopic.php?f=2&t=1070
Сразу ясно будет в чем дело.

Re: МикроКонтроллеры начинающим - общие вопросы

ZarK117 » 20 апр 2008, 18:38

Пробовал в AVRStudio, так там все шик, сначала отрабатывется 0-й, затем 1-й....и все тип топ...а на практике ..... опа!

Re: МикроКонтроллеры начинающим - общие вопросы

Duhas » 20 апр 2008, 23:01

может вру, но где-то читал о подобной проблеме.. попробуйте вхолостую ацп гонять между измерениями, первый померили, померили второй, потом снова второй но тут уже взяли данные , тут первый, снова первый и взяли данные и тд ..

Re: МикроКонтроллеры начинающим - общие вопросы

Vooon » 21 апр 2008, 00:08

проблема связана с тем, что не успевает перезарядиться емкость АЦП.
при обычном запуске АЦП происходит полтора преобразования,
т.е. если добавить второе преобразование, то скорее всего вы решите проблему,
можно кстати не отбрасывать первое измерение а усреднять.

Re: МикроКонтроллеры начинающим - общие вопросы

Fox89 » 03 май 2008, 08:48

во такой вопрос, навеян часами. В мк запущен таймер с перыванием по совпадению. Вопрос, таймер на счет запускается снова только после завершения процедуры обработки прерывания или есть возможность его запустить с нуля тут же после совпадения?

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 03 май 2008, 09:34

Fox89 писал(а):В мк запущен таймер с перыванием по совпадению. Вопрос, таймер на счет запускается снова только после завершения процедуры обработки прерывания или есть возможность его запустить с нуля тут же после совпадения?


Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm

Re: МикроКонтроллеры начинающим - общие вопросы

Fox89 » 03 май 2008, 10:53

avr123.nm.ru писал(а):Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm

видимо меня не совсем поняли. У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625. Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания?

Курс полистал - много мусора, четкой логической структуры нет. Больше напоминает поток сознания. Неужели писать в строгом стиле, как это делали во всех технических книгах 50-60-70х уже не в почете? На кой черт надо цветом и размером выделать свои эмоциональные восклицания? Я конечно понимаю что "пользователи ничего не понимают, их в одно и то же по нескольку раз тыкать приходится" но это не повод по 10 раз одно и то же упоминать. Курс по содержанию неплох, но из за такого жуткого предстваления только проигрывает. Ни я, ни мои одногрупники не смогли усидеть за чтением этого курса, через пару минут уже в глазах рябит, пришлось сделать выбор в пользу нормально написаной книги, пусть не полной но с нормальным стилем изложения.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 03 май 2008, 12:32

Fox89 писал(а):
avr123.nm.ru писал(а):Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm


видимо меня не совсем поняли. У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625. Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания ?


ОЧЕВИДНО ! вы не понимает написаного выше! или не читаете ... Таймеру ПЛЕВАТЬ на прерывание.

Можно в симуляторе посмотреть как он считает.

Fox89 писал(а):На кой черт надо цветом и размером выделать свои эмоциональные восклицания? Я конечно понимаю что "пользователи ничего не понимают, их в одно и то же по нескольку раз тыкать приходится" но это не повод по 10 раз одно и то же упоминать.


Вот вам пример. Второй раз разными цветами написал вам. Надеюсь так ДОЙДЁТ !

Добавлено спустя 9 минут 25 секунд:
Fox89 писал(а):Курс по содержанию неплох, но из за такого жуткого предстваления только проигрывает.

пришлось сделать выбор в пользу нормально написаной книги, пусть не полной но с нормальным стилем изложения.


Я выбираю СОДЕРЖАНИЕ :good: а форма для меня вторична.
Что это за КНИГА про AVR в которой не написано о том как работает таймер ??? :cry:
Скачайте нормальную книгу в библиотеке указаной в курсе или на первой странице топика и читайте.

Re: МикроКонтроллеры начинающим - общие вопросы

Fox89 » 03 май 2008, 15:50

[quote="avr123.nm.ru"][/quote]
в книге как раз про таймеры есть, просто это та тонкость про которую в книге могут и не написать.

Почему я спрашиваю. Допустим таймеру плевать на прерывание. Тогда допустим таймер у нас работает на частоте кварца и будет давать прерывание каждые 10 тактов, а программа обработки прерывания выполняется за 20 тактов, получается если наступает прерывание, и после его наступления мы не запретим прерывания, то у нас не будет успевать обрабатываться подпрограмма обработки прерывания. А если мы будем запрещать прерывания, и не будем вручную обнулять таймер, то непонятно как тогда формировать малые промежутки времени, ведь неизвестно, сколько тактов будет обрабатываться функция после компиляции.

Вопрос бы не возник вообще, если бы не отставали часы...

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 03 май 2008, 17:07

Прерывания описаны на стр 3. А сколько тактов - видно в симуляторе и В asm ЛИСТИНГЕ можно посчитать !

Re: МикроКонтроллеры начинающим - общие вопросы

rig » 03 май 2008, 19:01

Fox89 писал(а): Таким образом таймер читает от 0 до 625 и вызывает прерывание. Так вопрос, как только вызывается прерывание, таймер сам начинает считать с 0, или только по заершения обработки прерывания?

на сколько я понял у вас таймер будет считать дальше выставив прерывание. другое дело если обнулять счетчик в прерывании, тогда отсчет пойдет с нуля.
есть несколько режимов работы таймера какой из них в часах непонятно.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 03 май 2008, 20:33

rig писал(а):есть несколько режимов работы таймера какой из них в часах непонятно.

Да он написал режим таймера:
Fox89 писал(а):У меня настроен таймер на частоту 62500Гц, в регистр совпадения A занесено значение 625.
Таким образом таймер читает от 0 до 625 и вызывает прерывание.

Просто читать ответы и ПОНИМАТЬ не желает почемуто.

Я уж и в задачу 13 посылал - http://avr123.nm.ru/z13.htm - там таймер именно в таком режиме работает и в процедуре прерывания обнуляется ... А он - бедолага :roll: - за формой содержания не видит.

Изображение

Неужели эта расцветка мешает восприятию ??? :shock: :shock: :shock:

Re: МикроКонтроллеры начинающим - общие вопросы

rig » 03 май 2008, 20:59

я смотрел новую задачу. все понятно. может и другие поймут?


Rambler\'s Top100 Mail.ru counter