avr

warning: Creating default object from empty value in /var/www/fendercustomsh/data/www/avrlab.com/modules/taxonomy/taxonomy.pages.inc on line 34.

Подпрограмма формирования задержки

Для формирования паузы (задержки) в программах для микроконтроллера полезно применять программы, которые не нагружая ми АЛУ микроконтроллера ни память с высокой точностью справляются с этой задачей.
Как уже думаю стало понятно, микроконтроллер в момент паузы работает, то есть выполняет определенную программу, которая заменяет выполнение основной программы требующей той самой задержки.

Ниже показан пример программы формирования задержки. Основа программы это выполнение паузы размером в один машинный такт микроконтроллера - "nop".

  1. #define nop() {asm("nop");}
  2. unsigned int x,i; //перечисление переменных
  3.  
  4. // function delay
  5. void delay(int t)
  6. {
  7. for (x=t; x>0 ;x--)
  8. nop ();
  9. }

Максимальная пауза генерируемая данной программой ограничена максимальным значением переменной "i".
Если необходимо сформировать довольно длительную задержку советую прибегнуть к небольшой хитрости, использовать данную программу в качестве подпрограммы для программы длительной задержки, объясняю:
описываем данную программу задержки как обычно

  1. #define nop() {asm("nop");}
  2. unsigned int x,i; //перечисление переменных
  3.  
  4. // function delay
  5. void delay(int t)
  6. {
  7. for (x=t; x>0 ;x--)
  8. nop ();
  9. }

После чего ниже пишем следующую программу:

  1. // function long delay
  2. void long_delay(int p)
  3. {
  4. for (j=0; j<p; j++)
  5. {
  6. delay(300);
  7. }
  8. }

Получается следующее, что в программе длительной задержки мы используем программу формирования обычной задержки несколько раз, тем самым увеличиваем время задержки в разы!

Скачать программу задержки

Я не нашел, что искал

Если Вы не нашли на сайте информацию, которую искали и по Вашему мнению она должа быть, просьба указать в комментариях что именно искали.
Администрация приложит все усилия что бы эта информация появилась на сайте.

Коллектив AVRlab.com

Радость, купил радиомодули HM-R433 и HM-T433!

Купил по одному модулю передатчика и по одному модулю приемника.
В работе образовался некоторый застой, поэтому решился на эксперименты с новой периферией для микроконтроллера. Выбор пал именно на эти модули по причине их дешевизны и наличия в магазине.
Стоимость модулей:
HM-R433 - 69,93грн
HM-T433 - 74,61грн.
Вот как выглядят модульки:
приемник HM-R433
модуль приемника HM-R433
передатчик HM-T433

Как вам часики?

Идеи, идеи и еще раз идеи.
Иногда самые простые вещи можно интерпретировать совсем по другому, по оригинальному. Так вот компания BIEGERT & FUNK оригинально представили часы. Отличие данных часов в том, что у них нету привычного циферблата и стрелок!
Время отображается в виде текста, вот наглядный пример.
qlocktwo часики
Меня если честно идея очень заинтересовала, так как вся реализация таких часов может быть осуществлена на микроконтроллере avr. По моему никакой сложности, и программа и сама "железяка".

Space Invaders на микроконтроллере

Вот такая игра на микроконтроллере ATmega328, программная среда как написано на сайте автора "Arduino based".
Вывод видеосигнала может осуществляться как на телевизор так и на монитор от компьютера. Так же присутствует выход для звука. Запаянная платка продается по 40баксов.
Набранные очки сохраняются в энергонезависимую EEPROM, так что при выключении питания все рекорды останутся.

RSS-материал