Электронная свеча на tiny15L

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Электронная свеча на tiny15L

Сообщение Danko »

Несколько дней назад я решил повторить проект уважаемого ARV "Электронная свеча", но заменив микроконтроллер tiny13 на имеющийся у меня tiny15L. Просто перекомпилировать исходник с tiny13 на tiny15L не получится т.к. в основе программы лежит генерация случайных чисел, а у tiny15L ресурсов на это не хватает, а писать на Ассемблере я не умею.

Но если нельзя на лету генерировать случайное, его можно сгенерировать заранее и записать в массив. На это у tiny15L ресурсов предостаточно. Так я и поступил. Написал программу на Си под Виндовс которая генерирует последовательность и записывает в текстовый файл. Далее готовый массив копируем в исходный текст программы для МК и компилируем. Дабы максимально использовать память МК я остановился на массиве размером в 800 значений.

Как и у автора у меня в программе основой является ШИМ, только у меня применен аппаратный ШИМ, и он всего один.

Фьюзы и калибровочный байт: значения фьюзов у tiny15 оставлены заводские. Калибровочный байт можно не считывать и не записывать.

Самым сложным в этом проекте оказалось создать из светодиода и термоклея пламя свечи. Честно скажу мне хвастаться еще не чем. Моя свеча на настоящую еще не похожа .

Схема:
Изображение
Исходники:
e_candle_t15.zip
(23.09 КБ) 284 скачивания
Для сборки (компиляции) были использованы:
для программы генератора случайных чисел - gcc + MinGW,
для прошивки МК - ICC-TINYAVR ver 6.11A.
Вложения
e_candle_tiny15L.JPG
(32.86 КБ) 3083 скачивания
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15585
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Электронная свеча на tiny15L

Сообщение BOB51 »

"ресурсов нехватает" для ГСЧ?!!
дык простейший ГСЧ - четыре байта всего...!!!
даже на дохлом pic12f509 спокойненько 4-х канальное устройство с изменением яркости каждого канала автономно по собственному ГСЧ, да еще и с разбивкой кадра на 4 шага получается, а уж на ATtiny можно куда более навороченное устройство замутить, только вот это все на ассемблере предпочтительно делать :cry:
Реклама
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Электронная свеча на tiny15L

Сообщение Danko »

"Недостаточно ресурсов" имелось ввиду отсутствие памяти у tiny15L в отличие от pic12F509.

А простейший ГСЧ это что то типа этого:

Код: Выделить всё

#define MaxVal 32767
#define Factor 41723
 
int seed = 1; 

int Random()
{
    seed = (seed*Factor)%MaxVal;
    return seed;
}
?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15585
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Электронная свеча на tiny15L

Сообщение BOB51 »

чего насчет памяти-то?! :shock:
а блока регистров недостаточно, или это уже не ОЗУ??? :)))
у меня первичная версия таких игрушек была на ATTiny12, жаль, что их с производства сняли :cry: ,
пришлось к маленьким picам приспосабливать - они подешевше для простейших светоавтоматов, ATTiny13 неплохая для сложных световых эффектов с средним размером программы их исполнения, да и АЦП жалко :?
к сожалению (или на счастье) я в С ни в зуб, а алгоритм ГСЧ можно накопать в
Хоровиц П., Хилл У.
Искусство схемотехники: В 2-х т. Т.2. Пер. с англ.-Изд.3-е, сереотип. - М.:Мир, 1986. стр.93.
Враианты реализации программы будут различны для разных семейств микроконтроллеров - из-за специфики внутренней организации и систем команд, а вот алгоритм всегда одинаков :)
Есть еще разница в трактовке источника данных - кто берет за основу крайний байт текущего ГСЧ, кто "выталкиваемый"бит каждого из 4(8)ГСЧ, то-ли сформированный в байт для ШИМ, то ли как команду силовому ключу соответствующего канала, а иногда и "смесь" из этих методов :beer:
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»