AVR 55# Конечный автомат

preview_player
Показать описание
Три варианта blink в виде конечных автоматов работающие "одновременно".
Рекомендации по теме
Комментарии
Автор

В институте я много слышал про конечные автоматы (КА), но это всё было теорией — как облака в небе: воды в них много, а напиться нельзя. Корпел три месяца после института, пока не реализовал свой КА в коде в 1981 году. Сейчас существует методология программирования на этой основе — v-agent oriented programming (VAOP) — и множество примеров её реализации. Лучше начать знакомство с VAOP с этой статьи на Medium: "Bagels and Muffins of Programming or How Easy It Is to Convert a Bagel into a Black Hole" или на Хабре: "Бублики и Коржики Программирования".

vrakitine
Автор

Спасибо, лаконично и доступно. Я вчера прошел AVR 9#, понравилось как Вы обошлись с _delay_ms, а сегодня сегодня перескочил на последний урок и опять красиво и понятно.

AlexanderPuskin
Автор

Спасибо! Как всегда очень интересно!
И хочу радостью своей поделится)) Тинки 13 пришли а тут как раз термостат понадобился ну и собрал за пол дня на attiny13+TM1637+терморезистор (правда температуру срабатывания в прошивке только менять но меня устраивает) и после недолгих танцев с бубном то что это чудовище показывает даже совпадает с лабораторным ртутным термометром))
Знаю что у вас есть видео но хотелось именно на терморезисторе попробовать))

tiewpfn
Автор

Если можно поподробнее :
1)назначение переменных charge, now.
2)как меняется с ростом числа прерываний, и, отчего зависит разность переменных now-charge

rockrock
Автор

Где можно взять готовые диблиотеки как в ардуино.

chinarulit
Автор

интересно. возможно ли такой вариант работы с АЦП. допустим выбрали режим тренировки акб(автомобильных), он заряжается, он зарядился, отключили заряд, подождать 1час, потом включить разряд, он разрядился, отключили разряд, подождали 1час, потом опять включили заряд. и так по кругу.и допустим вывод информации сколько прошло циклов заряд-разряд. или для таких задач нужно более сложней программу?

vitalikzoom
Автор

Вот ответтте на вопрос, что будет если в одной из функций статус окажется при старте например 127. Как будет вести себя программа?

sergbo
Автор

Код не очень. Переменные status change не инициализированы. Всегда инициализируйте переменные. Я не один раз натыкался на такую ошибку у себя. Причем, когда ты пишешь, то среда как правило настроенна под отладку, где куча проверок и излишних процедур. Однако, в релиз конфигурации такие процедуры отсутствуют. И в неинициализированной переменной будет находиться какой-то мусор. И вы не узнаете о данном глюке до того момента когда начнутся уже реальные тесты на железе, а это как можно догадаться может стоить пару выгоревших транзисторов или других дорогостоящих компонентов.

sergbo