|
SED1335,PIC18F4550 и LCD320x240, разбираем по косточкам модуль SED1335.c |
|
|
|
Jan 25 2008, 21:00
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Привет народ.Вот решил я слепить себе нечто из указанных в теме компонентов.Нарисовал и изготовил макетку, красиво всё распаял и написал из надёрганных в сети кусков маленькую програмку для управления ЖКИ. Вначале, после нудного изучения даташитов никак не мог инициализировать ЖКИ, но потом разобрался что к чему и наконец он начал подавать признаки жизни и засветился. Компилятор, который я пользую - CCS, имеет в своём составе файл SED1335.C , но как я не пытался приспособить его, так и не смог.Порывшись в сети,я нашёл другой файл с таким же названием, но вроде бы не для ПИКов, а для чего-то другого.Однако , слегка подшаманив его, я смог встроить его в прогу и он заставил таки выдавать на экран символы в текстовом режиме(даже с возможностью размещения в заданое место) и переключаться в графический режим. И на этом всё и закончилось. Все попытки нарисовать линию или круг или просто точку,несмотря на множество примеров, я так и не смог. Позаимствовав из старого файла процедуру
void glcd_pixel(int16 x, int16 y, int1 color) { int8 data; int16 addr; // Calculate the byte address containing the pixel addr = GLCD_GRAPHICS_ADDR + (GLCD_WIDTH/8 * y + x/8); // Read the byte of data at the address data = getData(addr); // Turn the pixel on or off if(color == ON) bit_set(data, 7 - x%8); else bit_clear(data, 7 - x%8); // Write the new data byte to display memory setData(addr, data); }
я попробовал нарисовать на экране пиксель, но он вроде как нарисовался но разместился не в тех координатах, которые я указывал.Как я понимаю, за размещение отвечает строка //GLCD_GRAPHICS_ADDR- нач. адрес- 1200, GLCD_WIDTH- кол во символов в строке- 320 addr = GLCD_GRAPHICS_ADDR + (GLCD_WIDTH/8 * y + x/8); Может кто из вас раскомментирует эту странную формулу и подправит её, если она неправильная.
Сообщение отредактировал andreichk - Jan 25 2008, 21:03
--------------------
|
|
|
|
|
 |
Ответов
|
Mar 24 2008, 05:52
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630

|
Цитата(andreichk @ Mar 23 2008, 23:13)  X-256, Y-239 Решил сделать универсальную процедуру рисования сетки: Код /* Процедура рисует сетку координаты лев. верхнего угла (0,0) координаты прав. нижнего угла (x,y) step - шаг сетки в пикселах len - длина половинных меток в пикселах */ void setka(int16 x,int16 y,int8 step,int8 len){ int8 xm=x/2,ym=y/2; BYTE ds=0, //Приращение для сетки ds2=step/2; //Приращение для половинных меток // Рисуем сетку и половинные метки while((ds<xm)||(ds<ym)||(ds2<xm)||(ds2<ym)){// пока не вышли за пределы квдрата if(ds<ym){// Горизонтальные линии pline(0,ym+ds,x,ym+ds,0,1,1); pline(0,ym-ds,x,ym-ds,0,1,1); } if(ds<xm){// Вертикальные линии pline(xm+ds,0,xm+ds,y,1,1,1); pline(xm-ds,0,xm-ds,y,1,1,1); } if(ds2<xm){ line(xm+ds2,0,xm+ds2,len,1); line(xm+ds2,ym-len,xm+ds2,ym+len,1); line(xm+ds2,y,xm+ds2,y-len,1); line(xm-ds2,0,xm-ds2,len,1); line(xm-ds2,ym-len,xm-ds2,ym+len,1); line(xm-ds2,y,xm-ds2,y-len,1); } if(ds2<ym){ line(0,ym+ds2,len,ym+ds2,1); line(xm-len,ym+ds2,xm+len,ym+ds2,1); line(x,ym+ds2,x-len,ym+ds2,1); line(0,ym-ds2,len,ym-ds2,1); line(xm-len,ym-ds2,xm+len,ym-ds2,1); line(x,ym-ds2,x-len,ym-ds2,1); } ds+=step; ds2+=step; } // Границы сетки line(0,0,0,y,1); line(0,0,x,0,1); line(0,y,x,y,1); line(x,0,x,y,1); } Для вашего случая нужно вызывать со следующими параметрами: Код setka(256,239,30,2); П.С. функция line втречается всего 20 раз  скомпилированная процедура будет занимать явно меньше 1kB, так что 9kB вы точно сэкономите
|
|
|
|
Сообщений в этой теме
andreichk SED1335,PIC18F4550 и LCD320x240 Jan 25 2008, 21:00 andreichk Ура !!! Заработало !!! Под... Jan 27 2008, 04:06 arizona Цитата(andreichk @ Jan 27 2008, 07:06) Те... Jan 28 2008, 07:38  andreichk Цитата(arizona @ Jan 28 2008, 08:38) посм... Jan 28 2008, 18:26 andreichk Сегодня закончил оформление внешнего вида. Нарисов... Jan 29 2008, 22:32 DL36 Цитата(andreichk @ Jan 30 2008, 02:32) Се... Feb 1 2008, 10:15 andreichk Хочу попробовать перенести все картинки в последов... Jan 31 2008, 19:18 andreichk Слепил сегодня процедурку рисования кривых.Теперь ... Feb 4 2008, 23:07 FDA Вот готовый видеоконтроллер для управления ЖКИ на ... Feb 7 2008, 13:29 andreichk вы мне его уже предлагали, только за деньги я и са... Feb 7 2008, 16:40 Itch А почему у вас экран малинового цвета, это пленка ... Feb 7 2008, 21:40 andreichk да цвет любой можно сотворить- плёночку цветную по... Feb 8 2008, 09:31 Itch китайские сайты нормально читаются через http://ba... Feb 8 2008, 18:29 andreichk Выяснил причину по которой HEX-файл неполностью за... Feb 10 2008, 17:41 andreichk частота 88 Гц, амплитуда 2.15 вольт Feb 11 2008, 22:39 andreichk Попытки записи массива типа
const byte mS_uS[] ... Feb 17 2008, 22:31 andreichk да, не густо тут помошников..... Feb 20 2008, 17:50 andreichk ещё одно фото для истории.
двухканальный вариант,п... Feb 20 2008, 23:20 andreichk проблема рисования синусоиды половинками решена до... Feb 23 2008, 15:32 andreichk Ура !!! Удалось засинхронизироать кар... Feb 25 2008, 22:22 Илья Поздравляю, картинка, конечно красивая, но меня во... Feb 26 2008, 07:52  andreichk Цитата(Илья @ Feb 26 2008, 08:52) Поздрав... Feb 26 2008, 17:54 andreichk У меня сегодня день рождения. Спасибо всем за позд... Feb 27 2008, 14:29 andreichk сегодня попробовал подать на вход меандр от кварце... Feb 27 2008, 20:02 andreichk Прошу помощи по теме
Дело такое, надо мне от шифра... Mar 2 2008, 13:44 Илья Насколько я понимаю нужно дождаться перехода из ни... Mar 3 2008, 03:27 andreichk Спасибо, я попробую как вы советуете и отпишусь Mar 3 2008, 14:34 andreichk попробовал предложенный код.Он работает,только не ... Mar 3 2008, 15:57 andreichk код работает с небольшой доделкой и понижением час... Mar 3 2008, 21:44 andreichk вот такое у меня ещё пожелание(чувствую, что без п... Mar 4 2008, 18:56 Илья Извиняюсь за задержку с ответом - праздники, даже ... Mar 11 2008, 02:50  Transon Это самая лучшая разработка одного человека какую ... Mar 12 2008, 13:18 andreichk Спасибо всем ответившим и помогающим.Не надо извин... Mar 13 2008, 19:02 andreichk Кодunsigned char XX; // переменная которая будет и... Mar 13 2008, 20:26 Илья Цитата(andreichk @ Mar 14 2008, 04:26) Ко... Mar 14 2008, 10:41 andreichk дело в том , что момент отжатия невозможно установ... Mar 15 2008, 10:12 Илья Цитата(andreichk @ Mar 15 2008, 18:12) де... Mar 15 2008, 12:14 andreichk перекидывать ножки на порт РВ как-то не очень хоче... Mar 15 2008, 12:50 Илья Так... насколько я понял компилятор у вас CCS - ... Mar 15 2008, 17:18 andreichk частота 40 МГц.
ни один из трёх таймеров не задейс... Mar 15 2008, 18:53 Илья Хорошо. Теперь приступим:
Возьмем за базу TMR0, у ... Mar 16 2008, 07:27 andreichk компилятор не хочет это признавать
TMR0IF=0;// Очи... Mar 16 2008, 11:15 Илья Цитата(andreichk @ Mar 16 2008, 19:15) ко... Mar 16 2008, 12:55 andreichk пробую так его прописать
set_timer0(0); // TMR0IF=... Mar 16 2008, 14:49 Илья Ну ладно, удачи, все способы полезны - главное, чт... Mar 16 2008, 16:00 andreichk вот такой вид приняла означенная процедура опроса... Mar 16 2008, 20:14 andreichk Чего-то ни одной умной мысли не лезет в голову, на... Mar 19 2008, 20:46 Илья Цитата(andreichk @ Mar 20 2008, 04:46) Че... Mar 20 2008, 03:56 andreichk if( xx >= 255 ) xx = xx - 255; //приводим к int... Mar 20 2008, 18:36 andreichk кстати вопрос имею- чем два раза IF лучше одного S... Mar 20 2008, 19:53 Илья Цитатаif( xx >= 255 ) xx = xx - 255; //приводим... Mar 21 2008, 03:07 andreichk вначале буфер был размером в 512 кб и всё как раз ... Mar 21 2008, 11:25 Илья Цитата(andreichk @ Mar 21 2008, 19:25) ОК... Mar 21 2008, 12:23 andreichk не вопрос- научусь в Гугль видео выкладывать- обяз... Mar 21 2008, 13:55 Илья Цитата(andreichk @ Mar 21 2008, 21:55) Ту... Mar 21 2008, 15:50 andreichk я про такое даже не слышал, поэтому просто нарисов... Mar 22 2008, 00:59 Илья Цитата(andreichk @ Mar 22 2008, 08:59) я ... Mar 22 2008, 01:58 andreichk линии, прямоугольники и кружки рисовать умеем, а ш... Mar 22 2008, 08:27 Илья Цитаталинии, прямоугольники и кружки рисовать умее... Mar 22 2008, 13:53  andreichk Цитата(Илья @ Mar 22 2008, 14:53) Я сам л... Mar 22 2008, 14:31   Илья Вот, собственно, у меня получилась такая процедурк... Mar 23 2008, 04:32 andreichk прямоугольник и видеосигнал Mar 22 2008, 10:32 Шпиндель Посмотрел с интересом, спасибо! Через время.. ... Mar 22 2008, 18:27 andreichk Цитата(Шпиндель @ Mar 22 2008, 19:27) Пос... Mar 23 2008, 13:41  Илья Цитата(andreichk @ Mar 23 2008, 21:41) Ок... Mar 23 2008, 14:59 alexsl to andreichk.
Добрый день. Уменя вопрос по схемоте... Mar 22 2008, 20:23  andreichk c небольшой доработкой,приданием ей ещё бОльшей ун... Mar 24 2008, 12:24   Илья Цитата(andreichk @ Mar 24 2008, 20:24) c ... Mar 24 2008, 14:33 andreichk а скажите мне, преобразование Фурье к осциллографу... Mar 24 2008, 17:05 Илья Цитата(andreichk @ Mar 25 2008, 01:05) а ... Mar 25 2008, 05:58 andreichk искал что-нибудь по теме почитать- наткнулся на эт... Mar 24 2008, 19:19 andreichk Ок , оставим пока товарища Фурье в сторонке покури... Mar 25 2008, 17:09 Илья Цитата(andreichk @ Mar 26 2008, 01:09) Чт... Mar 26 2008, 02:34 andreichk на АЦП подаётся фиксированная частота оцифровки 80... Mar 27 2008, 17:34 Илья Цитата(andreichk @ Mar 28 2008, 01:34) А ... Mar 29 2008, 05:45  andreichk ЦитатаА раньше (до изменения программы) такое случ... Mar 29 2008, 09:27   Илья Цитата(andreichk @ Mar 29 2008, 17:27) ad... Mar 29 2008, 12:10    andreichk Цитата(Илья @ Mar 29 2008, 13:10) Чтобы э... Mar 30 2008, 09:34     Илья Цитата(andreichk @ Mar 30 2008, 17:34) Ок... Mar 30 2008, 10:06      andreichk есть такое дело
Цитата.................... //----... Mar 30 2008, 10:10       Илья Цитата(andreichk @ Mar 30 2008, 18:10) ес... Mar 30 2008, 11:00        andreichk Цитата(Илья @ Mar 30 2008, 12:00) Да, это... Mar 30 2008, 11:05         Илья Цитата(andreichk @ Mar 30 2008, 19:05) за... Mar 30 2008, 11:26 andreichk ну это понятно, что перепишется.А как это связано ... Mar 30 2008, 11:39 Илья Цитата(andreichk @ Mar 30 2008, 19:39) ну... Mar 30 2008, 11:58  andreichk ЦитатаА при какой частоте тактирования FIFO они во... Mar 30 2008, 13:03   Илья Цитата(andreichk @ Mar 30 2008, 21:03) LA... Mar 30 2008, 13:16 andreichk можно написать так
#asm
BSF F8B.2 //L... Mar 30 2008, 13:38 Илья Цитата(andreichk @ Mar 30 2008, 21:38) мо... Mar 30 2008, 15:02 andreichk написал так, ошибок нет,но экран тухнет через пару... Mar 30 2008, 15:19 Илья Цитата(andreichk @ Mar 30 2008, 23:19) на... Mar 30 2008, 15:31 andreichk в самом прямом смысле тухнет.Пропадает не только л... Mar 30 2008, 15:33 Илья Цитата(andreichk @ Mar 30 2008, 23:33) в ... Mar 30 2008, 15:50 andreichk вот этой
*ptr++=input_b(); //чтение порта В
ну тог... Mar 30 2008, 15:59 Илья Цитата(andreichk @ Mar 30 2008, 23:59) во... Mar 30 2008, 16:04 andreichk Цитата.................... //#####################... Mar 30 2008, 16:27 Илья Цитата(andreichk @ Mar 31 2008, 00:27) вс... Apr 1 2008, 11:07 andreichk Илья, я уже запутался, что куда вписывать, сделайт... Apr 1 2008, 11:44
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0
|
|
|