Пытаюсь сделать LED сферу наподобие этих проектов:
В проекте ATTiny45, передаёт данные в 8 сдвиговых регистров, но я бы хотел взять вместо регистров драйверы светодиодов. Задержка (сколько должен гореть столбец) осуществляется с помощью пустого цикла. Для расчёта числа прогонов данного цикла используется внешние прерывание от геркона и пустой цикл идущий после того как все столбцы были отображены, когда пришло прерывание меняется значение флага, чтобы цикл прекратился и пересчитывалась задержка исходя из того сколько прогонов успел сделать этот цикл.
При симуляции в Proteus можно увидеть, как данные передаются и мигают диоды, но мне не удаётся получить прерывание. Тогда я решил упростить программу, чтобы посмотреть, как будет работать внешнее прерывание, но и она в Proteus не симулирует прерывание. Собрал схему на макетке, прошил МК, подаю на INT0 5V, ничего. Ставил прерывание на восходящий фронт, перепрошиваю МК, для других типов прерываний, проверяю, ничего. Пишу программу, которая просто зажигает диод, всё нормально, переделываю так, чтобы диод мигал, все работает. Возвращаю изначальную программу, добавляю в схему ключ и опять пробую поймать различные прерывания, ничего.
Во первых хотелось бы понять, что я делаю не так?
Во вторых узнать, как проверить работоспособность алгоритма в целом, не собирая схему, так как в Proteus не очень получается это сделать?
И в третьих если на то пошло, то я бы хотел услышать ваши мнения о программе, так как пока не вижу другого способа проверить её.
LED сфера
LED сфера
- Вложения
-
- Блок схемы.png
- Блок схемы основной функции и функции прерывания.
- (192.65 КБ) 447 скачиваний
-
- Софт и протеус.zip
- Проекты для CodeVisionAVR Tiny45 (основной) и Tiny13 (тестовый), а также их схемы в Proteus.
- (105.91 КБ) 215 скачиваний
- Реклама