roboforum.ru

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

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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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
Изображение
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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 раз(а).
Аватара пользователя
ZarK117
 
Сообщения: 65
Зарегистрирован: 27 апр 2007, 21:25
Откуда: Санкт-Петербург

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

Сообщение avr123.nm.ru » 20 апр 2008, 15:09

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

Или в шаблоне сделай с симуляцией - viewtopic.php?f=2&t=1070
Сразу ясно будет в чем дело.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение ZarK117 » 20 апр 2008, 18:38

Пробовал в AVRStudio, так там все шик, сначала отрабатывется 0-й, затем 1-й....и все тип топ...а на практике ..... опа!
Аватара пользователя
ZarK117
 
Сообщения: 65
Зарегистрирован: 27 апр 2007, 21:25
Откуда: Санкт-Петербург

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

Сообщение Duhas » 20 апр 2008, 23:01

может вру, но где-то читал о подобной проблеме.. попробуйте вхолостую ацп гонять между измерениями, первый померили, померили второй, потом снова второй но тут уже взяли данные , тут первый, снова первый и взяли данные и тд ..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Vooon » 21 апр 2008, 00:08

проблема связана с тем, что не успевает перезарядиться емкость АЦП.
при обычном запуске АЦП происходит полтора преобразования,
т.е. если добавить второе преобразование, то скорее всего вы решите проблему,
можно кстати не отбрасывать первое измерение а усреднять.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

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

Сообщение Fox89 » 03 май 2008, 08:48

во такой вопрос, навеян часами. В мк запущен таймер с перыванием по совпадению. Вопрос, таймер на счет запускается снова только после завершения процедуры обработки прерывания или есть возможность его запустить с нуля тут же после совпадения?
Fox89
 
Сообщения: 57
Зарегистрирован: 11 ноя 2007, 20:12
Откуда: урал

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

Сообщение avr123.nm.ru » 03 май 2008, 09:34

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


Обновляют значение в таймере в начале обработчика прерывания - примеры смотри в задачах 13, 6 и 1 краткого курса по AVR. http://avr123.nm.ru/z13.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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 раз одно и то же упоминать. Курс по содержанию неплох, но из за такого жуткого предстваления только проигрывает. Ни я, ни мои одногрупники не смогли усидеть за чтением этого курса, через пару минут уже в глазах рябит, пришлось сделать выбор в пользу нормально написаной книги, пусть не полной но с нормальным стилем изложения.
Fox89
 
Сообщения: 57
Зарегистрирован: 11 ноя 2007, 20:12
Откуда: урал

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:
Скачайте нормальную книгу в библиотеке указаной в курсе или на первой странице топика и читайте.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение Fox89 » 03 май 2008, 15:50

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

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

Вопрос бы не возник вообще, если бы не отставали часы...
Fox89
 
Сообщения: 57
Зарегистрирован: 11 ноя 2007, 20:12
Откуда: урал

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

Сообщение avr123.nm.ru » 03 май 2008, 17:07

Прерывания описаны на стр 3. А сколько тактов - видно в симуляторе и В asm ЛИСТИНГЕ можно посчитать !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение rig » 03 май 2008, 19:01

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

на сколько я понял у вас таймер будет считать дальше выставив прерывание. другое дело если обнулять счетчик в прерывании, тогда отсчет пойдет с нуля.
есть несколько режимов работы таймера какой из них в часах непонятно.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

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:
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение rig » 03 май 2008, 20:59

я смотрел новую задачу. все понятно. может и другие поймут?
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

cron