unsigned int A[] = {8,5,2,5,8,5,2,5,8}; unsigned int B[] = {8,5,2,5,8,5,2,5,8}; unsigned int C[] = {8,5,2,5,8,5,2,5,8}; unsigned int D[] = {8,5,2,5,8,5,2,5,8}; unsigned int E[] = {8,5,2,5,8,5,2,5,8};
Serzh2000, будет ли новая прошивка с новыми эффектами или может подправленная? Если внимательно присмотреться в некоторых эффектах есть небольшие недочёты. Сам к сожалению так и не понял как строится световой эффект. А то уже до Нового года немного осталось.
void view_flasher_14(void) { // название эффекта int i,j; for (j =0; j<h;++j){ не важно
for (i =0; i<5;++i){ 5 это сколько кадров
unsigned int A[] = {1,0,0,0,0}; 1 луч звезды unsigned int B[] = {0,2,0,0,0}; 2 луч звезды unsigned int C[] = {0,0,4,0,0}; 3 луч звезды unsigned int D[] = {0,0,0,8,0}; 4 луч звезды unsigned int E[] = {0,0,0,0,15}; 5 луч звезды
digit_out[0] = A[i]; остальное не важно без изменения digit_out[1] = B[i]; digit_out[2] = C[i]; digit_out[3] = D[i]; digit_out[4] = E[i];
yarkost=255; delay_ms(f); }
} view_pauza(); }
вот и все готов эффект!!! нажимаешь Ctrl+F9 прошивка готова можешь прошить атмегу8 или посмотреть эффект в пртеусе
1кадр- 1 луч загорится 1светик остальные лучи не светятся смотри вертикальный первый столбик unsigned int A[] = {1, unsigned int B[] = {0, unsigned int C[] = {0, unsigned int D[] = {0, unsigned int E[] = {0,
2кадр- 2 луч загорится 2светик остальные лучи не светятся смотри вертикальный второй столбик unsigned int A[] = {1,0, unsigned int B[] = {0,2, unsigned int C[] = {0,0, unsigned int D[] = {0,0, unsigned int E[] = {0,0,
3 и 4 кадрах догадайся какие светики светятся и в каких лучах
5 кадр в 5 луче светятся все светодиоды остальные лучи не горят
почему так DDRD=0b00001111; //порт D не вдаваясь в подробности 1,2,3,4 нога подключены к светодиодам в луче у порта ноги считаются с право налево 0b00001111 где единица светодиод будет светится то есть весь луч светится если так 0b00001001 первый и четвертый светик в ЛУЧЕ светится второй и третий нет так писать можно ,но не удобно 0b00001111 8421 скажем это вес единичек чтобы засветить первый и четвертый 8+1=9 вот мы и пишем 9 в нужном нам луче
С приятелем немного разобрались и подправили некоторые эффекты(построение звезды 8-ой и 15-й), написали пару своих. Сейчас попробую вставить в исходник и скомпилировать. Но проверить смогу только в понедельник. Звезда на работе находится. Если что то получится, то обязательно выложу сюда.
Вот, выкладываю свой вариант с добавленными эффектами (получилось 26), но без настроек яркости свечения светодиодов, вероятно, при таком применении её не особо нужно менять. Прошивка в папке Exe. Ещё я немного поменял фьюзы для повышения стабильности при включении и отключении питания (как мне кажется). В местах прошивки, где я что то менял есть комментарии. Огромное спасибо Serzh2000 за оказанное содействие!
view_pauza(); // тут была пропущена пауза,может специально - не знаю
это после прохождения эффекта загоралась вся звезда и тухла типа один эффект кончился другой начался
// тут поменяли 15 на 0, чтобы в паузах вся звезда не горела
в этом нет смысла просто не пишите view_pauza(); звезда и не будет загораться
как вам объяснить, когда программа до ходит до view_pauza(); (это по сути тот же эффект только название я придумал ему такое) программа находит эффект view_pauza(); и выполняет все что в нем написано , выполнив возвращается к тому месту от куда перепрыгнула.
так это не пауза это я ее так обозвал с таким же успехом можно обозвать ssylka() еще как
ели пауза нужна то надо delay_ms(f); f= 100- выше написано если в место f поставить цифру можно увеличить или уменьшить паузу
название(); это законченный кусок программы расписанный выше его исполнения delay_ms(); тоже кусок прописан он в библиотеке в самом нчале это для того чтобы не писать повторяющиеся куски несколько раз в программе. а написал название(); программа перепрыгнет где расписана название(); выполнит ее и возвращается
к стати например void view_flasher_14(void) { // название эффекта int i,j; for (j =0; j<h;++j){ не важно
for (i =0; i<5;++i){ 5 это сколько кадров
unsigned int A[] = {1,0,0,0,0}; 1 луч звезды unsigned int B[] = {0,2,0,0,0}; 2 луч звезды unsigned int C[] = {0,0,4,0,0}; 3 луч звезды unsigned int D[] = {0,0,0,8,0}; 4 луч звезды unsigned int E[] = {0,0,0,0,15}; 5 луч звезды
digit_out[0] = A[i]; остальное не важно без изменения digit_out[1] = B[i]; digit_out[2] = C[i]; digit_out[3] = D[i]; digit_out[4] = E[i];
yarkost=255; delay_ms(f); }
} view_pauza(); view_flasher_25(); // после выполнения 14 будет выполнятся 25(не помню по моему ваш 25 эффект ) звезда будет мигать всеми лучами }