2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Бегущий огонь
Сообщение15.12.2008, 01:20 
Аватара пользователя
Собираюсь реализовать нечто вроде гирлянды (для себя, и в институте похожая работа). На данном этапе требуется собрать принципиальную схему в MAX+ (или написать код программы на Verilog, VHDL), чтобы потом залить ее на ПЛИС. Задача: есть 16 диодов. Нужно реализовать "бегущий огонь", т.е. они должны загораться и погасать последовательно, сначала в одну сторону, потом в другую. Причем когда огонек "бежит" в одну сторону, нужно чтобы яркость уменьшалась, в другую - увеличивалась.

На данном этапе есть 5ти разрядный счетчик (4 разряда на шестнадцать диодов, а пятый - на направление), вот его временная диаграмма:

Изображение

Что можно и как лучше сделать дальше?

 
 
 
 
Сообщение16.12.2008, 10:15 
Цитата:
Причем когда огонек "бежит" в одну сторону, нужно чтобы яркость уменьшалась, в другую - увеличивалась.

Не вижу, как тут обойтись без n-го кол-ва ШИМ-контроллеров, причем n=кол-ву гаснущих+кол-ву зажигающихся светодиодов.

 
 
 
 
Сообщение16.12.2008, 19:49 
Аватара пользователя
У меня сначала была идея просто некоторые такты обнулять. А ШИМ - это же широтно-импульсная модуляция?
Сейчас пока думаю как просто бегущий огонек сделать. Ничего не приходит в голову кроме как перед каждым диодом вставлять блок, который пропускает сигнал только если это определенный набор из 16 возможных, но это очень долго и нудно :(

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group