Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.03.2010, 13:24
|
|
Прохожий
Регистрация: 15.10.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
|
|
|
|
09.03.2010, 14:11
|
|
Вид на жительство
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
найдено на полях инета, орфография и пунктуация сохранены
Код:
|
/*Функция которая ресует на экране 1 пиксел*/
void LCD_PUT_PIXEL(byte x, byte y){
//Обьявляем переменные
byte bite;
byte page;
byte data, data2;
//Выход если точка лежит вне экрана
if((x›MAX_X)|(y›MAX_Y)) return;
//Выбираем кристалл
if(x›=64){
ClrBit(LCD_CONTROL_PORT, E1);
SetBit(LCD_CONTROL_PORT, E2);
x=x-64;
}
else{
ClrBit(LCD_CONTROL_PORT, E2);
SetBit(LCD_CONTROL_PORT, E1);
}
//page-номер страницы
page=y/8;
//bite-Номер байта который нам предстоит вывести
bite=y%8;
//Устанавливаем страницу и адресс
LCD_SET_PAGE(page);
LCD_SET_ADDRESS(x);
//Читаем байт с LCD(2 цикла т.к. в первом мусор)
data=ReadData();
data=ReadData();
//В зависимости от метода вывода выводим наш пиксел.
// Адресс страницы не менялся, поэтому его не устанавливаем
switch(met){
case MET_OR : { data=data|(1‹‹bite); break;}
case MET_XOR : {data=data^(1‹‹bite); break;}
}
LCD_SET_ADDRESS(x);
WriteData(data);
}
/*Функция вывода прямой по алгоритму Брезенхома.
Подробно ее описывать не буду т.к. по ней лучше почитать в интернете*/
void LCD_LINE(byte x1, byte y1, byte x2, byte y2){
int dx, dy, i1, i2, i, kx, ky;
int d;
int x, y;
int flag;
dy = y2 - y1;
dx = x2 - x1;
if (dx == 0 && dy == 0){
LCD_PUT_PIXEL(x,y);
return;
}
kx = 1;
ky = 1;
if( dx ‹ 0 ){ dx = -dx; kx = -1; }
else if(dx == 0) kx = 0;
if(dy ‹ 0) { dy = -dy; ky = -1; }
if(dx ‹ dy){ flag = 0; d = dx; dx = dy; dy = d; }
else flag = 1;
i1 = dy + dy; d = i1 - dx; i2 = d - dx;
x = x1; y = y1;
for(i=0; i ‹ dx; i++){
LCD_PUT_PIXEL(x,y);
if(flag) x += kx;
else y += ky;
if( d ‹ 0 )
d += i1;
else{
d += i2;
if(flag) y += ky;
else x += kx;
}
}
LCD_PUT_PIXEL(x,y);
}
/*Функция вывода окружности по алгоритму Брезенхома.
При малом радиусе есть неточности, но работает
гораздо быстрее sin и cos*/
void LCD_CIRCLE( byte xc, byte yc, byte r )
{
int d, x, y;
x=0;
y=r;
d=3-2*r; // возможно переполнение !
LCD_PUT_PIXEL(x+xc,y+yc);
LCD_PUT_PIXEL(x+xc,-y+yc);
LCD_PUT_PIXEL(-x+xc,-y+yc);
LCD_PUT_PIXEL(-x+xc,y+yc);
LCD_PUT_PIXEL(y+xc,x+yc);
LCD_PUT_PIXEL(y+xc,-x+yc);
LCD_PUT_PIXEL(-y+xc,-x+yc);
LCD_PUT_PIXEL(-y+xc,x+yc);
while(x‹y){
if(d‹=0){
d=d+4*x+6;
}else{
d=d+4*(x-y)+10;
y--;
}
x++;
//LCD_PUT_PIXEL(x, y);
LCD_PUT_PIXEL(x+xc,y+yc);
LCD_PUT_PIXEL(x+xc,-y+yc);
LCD_PUT_PIXEL(-x+xc,-y+yc);
LCD_PUT_PIXEL(-x+xc,y+yc);
LCD_PUT_PIXEL(y+xc,x+yc);
LCD_PUT_PIXEL(y+xc,-x+yc);
LCD_PUT_PIXEL(-y+xc,-x+yc);
LCD_PUT_PIXEL(-y+xc,x+yc);
}
} |
Последний раз редактировалось spballiance; 09.03.2010 в 14:21.
|
|
|
Сказали "Спасибо" spballiance
|
|
|
09.03.2010, 17:26
|
|
Прописка
Регистрация: 09.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Сообщение от Victor_72
|
Собираю ламповый усилитель
|
А что его делать с ДУ? Он даст 5-6 ватт, из доля не слышно.
И вообще в ламповый надо ставить такой зелёненький глазок с зелёненьким сектором. Вроде 6Е1С....
|
|
|
|
09.03.2010, 20:51
|
|
Частый гость
Регистрация: 17.11.2009
Сообщений: 31
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
![Улыбка](images/smilies/icon_smile.gif) Ну эт смотря какие лампы применить, я делаю например SE на ГМ-70, 20Вт на канал чистый класс А. Кстати для озвучивания средней комнаты в 18кв.м 2Вт за глаза хватает...
А чтоб пояснить для чего я его делаю, рекомендую лучше один раз послушать звучание лампового усилителя...
П.С.Да 6E1C, 6E5C и еще много разных... но раз я применил уже мк, то вот захотелось его загрузить по полной, в перспективе еще и спектроанализатор...
2SPballiance мегареспект за код, буду реализовывать...
Последний раз редактировалось Victor_72; 09.03.2010 в 21:00.
|
|
|
|
09.03.2010, 22:05
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Victor_72, Готовый пример с исходниками .
Смотреть до конца!!!
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 09.03.2010 в 22:08.
|
|
|
Сказали "Спасибо" dosikus
|
|
|
09.03.2010, 22:13
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Сообщение от Victor_72
|
А чтоб пояснить для чего я его делаю, рекомендую лучше один раз послушать звучание лампового усилителя...
|
Видал вживую меломанов , бьющих себя пяткой в грудь , что ламповый звук круче .
И что они болезные на слух определят ( по первым нотам ) микрушный или ламповый .
И которым впаривали за бешеные деньги муляж с лампами и начинкой из TDA7294.
Они себя считали профессорами в этом деле.
Так что не надо ля ля .
__________________
Осторожно , злой кот
|
|
|
|
10.03.2010, 12:15
|
|
Прохожий
Регистрация: 13.03.2005
Сообщений: 4
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Сообщение от Victor_72
|
Ну эт смотря какие лампы применить, я делаю например SE на ГМ-70, 20Вт на канал чистый класс А. Кстати для озвучивания средней комнаты в 18кв.м 2Вт за глаза хватает...
А чтоб пояснить для чего я его делаю, рекомендую лучше один раз послушать звучание лампового усилителя...
2SPballiance мегареспект за код, буду реализовывать...
|
Я лично делал усилитель на ГМ70 однотакт вых 26Вт чистый класс А. На аноде порядка 1100В очень непростой выходной транс, вых обмотка не связанна с массой усила. Если при прослушивании музыки взяться за вых. и корпус усила то получишь такой заряд бодрости ![Прикольно](images/smilies/icon_wink3.gif) на весь день хватит.
Даже не представляю как там выживет АВРка.
|
|
|
|
10.03.2010, 13:59
|
|
Временная регистрация
Регистрация: 23.11.2006
Адрес: Москва
Сообщений: 60
Сказал спасибо: 7
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Добрый день! Если услил лампа, то может поставите пару моторчиков с дисками и прорезями, подсвеченными сзади. А АVR задействуйте на спектр.Успехов.
|
|
|
|
10.03.2010, 15:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.01.2008
Сообщений: 1,143
Сказал спасибо: 379
Сказали Спасибо 430 раз(а) в 274 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
Сообщение от smog
|
Добрый день! Если услил лампа, то может поставите пару моторчиков с дисками и прорезями, подсвеченными сзади.
|
Вполне поддерживаю эту идею. И МК напрягатся менше будет. Достаточно в МК задействовать один таймер, одну ногу на вход из оптопары положения диска и пару выходов на светодиоды подсветки. Темболее можно всякие ээфекты дбавить типа цветного шлейфа за стрелкой. Подумайте
|
|
|
|
10.03.2010, 21:12
|
|
Частый гость
Регистрация: 17.11.2009
Сообщений: 31
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: "Стрелочный" индикатор на ЖК128х64
2 Dosicus ... ![Улыбка](images/smilies/icon_smile.gif) обычно с модераторами не спорю, но...
В мире аудио, согласен, есть полно шарлатанов, которые могут отличить изменение звука от перемены направления проводников, или отличие в звучании полипропиленовых конденсаторов от полиэтиленовых... Я к таковым спецам себя не отношу... Я реальный материалист! подтверждаю только то, что слышу...
А чтоб PIC пожил подольше полная гальваноразвязка, все управляется реле - сила (в 5 ступеней), громкость (релейная), комутация входов... Если кому интересно, мой проект здесь http://audioportal.su/showthread.php?t=24379
Там три варианта блока управления по восходящей, простой-посложнее, сейчас в реализации проект с ЖК...
Кажется с моторчиками - это перебор...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:22.
|
|