Вы вошли на сайт, как Гость
Регистрация

Бегающие "глаза"

Программные примеры для микроконтроллеров AVR - AVRStudio
(Бегающие "глаза")

К выводам порта В подключены переключатели, а к выводам порта D — светодиодные индикаторы. Эффект "бегающих глаз" может быть создан путем поочередного включения двух светодиодов при выключенных остальных или, наоборот, — поочередного выключения двух светодиодов при включенных остальных. Один из этих двух типов выбирается с помощью переключателя, подсоединенного к выводу 7 порта В. Остальные входы этого порта определяют скорость "бега" (коэффициент от 0 до 127).

Примечание: при компиляции проекта требуется добавить в проект следующие библиотеки: "avr/io.h", "avr/delay.h", "stdio.h".


unsigned long DelayCount;
unsigned long Velocity = 0;
unsigned char EyeType = 0;

void ShowEyes(int i)
{
  if(EyeType) PORTD = ~i; else PORTD = i;
  _delay_loop_2(DelayCount);
}

int main (void)
{
  DDRB = 0x00;
  DDRD = 0xFF;
  while(1)
  {
    Velocity = PINB;
    if(Velocity > 127) 
    {
      Velocity -= 127;
      EyeType = 1;
    }
    else EyeType = 0;
    DelayCount = 500 + (Velocity * 50);
    for(int i = 1; i <= 8; i = i*2) ShowEyes(i * 16 + i);
    for(int i = 8; i > 1; i -= i/2) ShowEyes(i * 16 + i);
  }
}

Файлы проекта можно скачать здесь: