На кружке робототехники была рассмотрена схема бегущего огня, как показано ниже
Для создания программы был разработан алгоритм с помощью ИС ДРАКОН.
Листинг программы представлен ниже.
// ИС Дракон. Маршрутный транслятор.
// Y:\home\deniska\Документы\др длкр\новая мигалка.drt
// 1. Схема - Гном, Изменение 21.01.2020 17:46:18
// 3. Модуль, Начало
#include <avr/io.h>
// Y:\home\deniska\Документы\др длкр\новая мигалка.drt
// 2. Схема - процедура, Изменение 21.01.2020 18:09:35, Начало
int main()
{
int A, t;
// ==================== Шампур
// 4. Заголовок / main()
// 5. Ветка / setup
// 6. Действие / настройка портов
DDRB = 0xFF;
PORTB = 0x00;
// 7. Действие / переменная сдвига
A = 0;
// 8. Действие / установка задержки на 0
t = 0;
// 9. Адрес -> 10. Ветка / telo
// ==================== Шампур
// 10. Цикл Ветка / telo
L11: ;
// 11. Действие / зажигаем светодиод
PORTB |= 1 << A;
// 12. Пауза / 300 мкс
de:;
t++;
if (t<30000) goto de;
t= 0;
// 13. Действие / гасим предыдущий
PORTB &= ~(1 << A);
// 14. Действие / сдвиг
A++;
// 15. Вопрос / горит последний светодиод == Да
if (A == 6) goto L17;
// 16. Цикл Адрес -> 10. Ветка / telo
goto L11;
// ==================== Шампур
L17: ;
// 17. Действие / обнуляем переменную сдвига
A = 0;
// 18. Цикл Адрес -> 10. Ветка / telo
goto L11;
// ==================== Шампур
// 19. Ветка / aut
// 20. Конец / Конец
// 2. Схема, Конец
//
}
// 3. Модуль, Конец
//
Для создания программы был разработан алгоритм с помощью ИС ДРАКОН.
Листинг программы представлен ниже.
// ИС Дракон. Маршрутный транслятор.
// Y:\home\deniska\Документы\др длкр\новая мигалка.drt
// 1. Схема - Гном, Изменение 21.01.2020 17:46:18
// 3. Модуль, Начало
#include <avr/io.h>
// Y:\home\deniska\Документы\др длкр\новая мигалка.drt
// 2. Схема - процедура, Изменение 21.01.2020 18:09:35, Начало
int main()
{
int A, t;
// ==================== Шампур
// 4. Заголовок / main()
// 5. Ветка / setup
// 6. Действие / настройка портов
DDRB = 0xFF;
PORTB = 0x00;
// 7. Действие / переменная сдвига
A = 0;
// 8. Действие / установка задержки на 0
t = 0;
// 9. Адрес -> 10. Ветка / telo
// ==================== Шампур
// 10. Цикл Ветка / telo
L11: ;
// 11. Действие / зажигаем светодиод
PORTB |= 1 << A;
// 12. Пауза / 300 мкс
de:;
t++;
if (t<30000) goto de;
t= 0;
// 13. Действие / гасим предыдущий
PORTB &= ~(1 << A);
// 14. Действие / сдвиг
A++;
// 15. Вопрос / горит последний светодиод == Да
if (A == 6) goto L17;
// 16. Цикл Адрес -> 10. Ветка / telo
goto L11;
// ==================== Шампур
L17: ;
// 17. Действие / обнуляем переменную сдвига
A = 0;
// 18. Цикл Адрес -> 10. Ветка / telo
goto L11;
// ==================== Шампур
// 19. Ветка / aut
// 20. Конец / Конец
// 2. Схема, Конец
//
}
// 3. Модуль, Конец
//