- Код: Выделить всё • Развернуть
#define F_CPU 1000000UL // 1 MHz
#include <avr/io.h>
#include <avr/delay.h>
#include<iostream>
#include<conio.h>
int main(void) // начало основой программы
{
DDRD = 0xff; // все выводы порта D сконфигурировать как выходы
PORTD = 0xff; //устанавливаем 1 на всех выводах порта D
// включаем подтягивующие резисторы
//граница типа usigned long
unsigned long next=0; //предпоследний член
unsigned long last=1; //последний член
while (1)
{ // Бесконечный цикл
long sum=next+last;//сложение двух последних членов
next=last; //присвоение первому значению последнее
last=sum; //и последнего члена
double x=sum/100000;
double y=sum%1000000;
int a=x/2; // задаем пины
{if (a>5) a=a-5; else a=a;}
last=y;
if (a==1) PORTD |=_BV(PD1);
else if (a==2) PORTD |=_BV(PD2);
else if (a==3) PORTD |=_BV(PD3);
else if (a==4) PORTD |=_BV(PD4);
else if (a==5) PORTD |=_BV(PD5);
_delay_ms(250); // Ждем 0.25 сек.
PORTD &=~_BV(PD1);
PORTD &=~_BV(PD2);
PORTD &=~_BV(PD3);
PORTD &=~_BV(PD4);
PORTD &=~_BV(PD5);
_delay_ms(5); // Ждем 0.005 сек.
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
она должна мигать диодами в случайном порядке.