реклама на сайте
подробности

 
 
> SED1335,PIC18F4550 и LCD320x240, разбираем по косточкам модуль SED1335.c
andreichk
сообщение Jan 25 2008, 21:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 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


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andreichk
сообщение Mar 30 2008, 16:27
Сообщение #2


Знающий
****

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



Цитата
.................... //####################################################################
.................... //--------------- собственно кривая ---------------------------
.................... unsigned char *ptr=Buf;
.................... void curve_A(unsigned int8 y_pos_A){
.................... unsigned int8 x,y, yy;
.................... x=2;
*
26E4: MOVLW 02
26E6: MOVLB 1
26E8: MOVWF x6D
.................... // for(x=0;x<254;x++){
.................... while(x++){
26EA: MOVF x6D,W
26EC: INCF x6D,F
26EE: XORLW 00
26F0: BZ 270E
.................... #asm
.................... BSF 0x0F8B,0x2//LATC2=0;
26F2: BSF F8B.2
.................... #endasm
.................... *ptr=input_b(); //чтение порта В
26F4: MOVFF 15F,FE9
26F8: MOVFF 160,FEA
26FC: MOVLW FF
26FE: MOVWF F93
2700: MOVFF F81,FEF
.................... ptr++;
2704: INCF x5F,F
2706: BTFSC FD8.2
2708: INCF x60,F
.................... #asm
.................... BCF 0x0F8B,0x2//LATC2=1;
270A: BCF F8B.2
.................... #endasm
.................... //Output_bit(READ_FIFO_A ,0); //PIN_C2. разрешить
.................... //Buf[x]=input_b(); //чтение порта В
.................... //Output_bit(READ_FIFO_A ,1); //PIN_C2.запретить
.................... }
270C: BRA 26EA
.................... for(x=1;x<255;x++){
270E: MOVLW 01
2710: MOVWF x6D
2712: INCFSZ x6D,W
2714: BRA 2718
2716: BRA 27A4
.................... yy = adcA;//y
2718: MOVFF 154,16F
.................... adcA = (Buf[x-1] > 200) ? 200 : Buf[x-1]; //ограничитель до выбранной величины
271C: MOVLW 01
271E: SUBWF x6D,W
2720: CLRF 03
2722: ADDLW 55
2724: MOVWF FE9
2726: MOVLW 00
2728: ADDWFC 03,W
272A: MOVWF FEA
272C: MOVF FEF,W
272E: SUBLW C8
2730: BC 2736
2732: MOVLW C8
2734: BRA 2748
2736: MOVLW 01
2738: SUBWF x6D,W
273A: CLRF 03
273C: ADDLW 55
273E: MOVWF FE9
2740: MOVLW 00
2742: ADDWFC 03,W
2744: MOVWF FEA
2746: MOVF FEF,W
2748: MOVWF x54
.................... adcA = (255 - adcA) + y_pos_A; // разворот на 180° по вертикали и сдвиг
274A: MOVLW FF
274C: BSF FD8.0
274E: SUBFWB x54,W
2750: ADDWF x6C,W
2752: MOVWF x54
.................... if (yy>adcA) front(x,yy,adcA); // Рисуем фронт A
2754: MOVF x6F,W
2756: SUBWF x54,W
2758: BC 276E
275A: MOVFF 16D,170
275E: MOVFF 16F,171
2762: MOVFF 154,172
2766: MOVLB 0
2768: CALL 1DEC
276C: MOVLB 1
.................... if (yy<adcA) spad(x,yy,adcA); // Рисуем спад A
276E: MOVF x54,W
2770: SUBWF x6F,W
2772: BC 2788
2774: MOVFF 16D,170
2778: MOVFF 16F,171
277C: MOVFF 154,172
2780: MOVLB 0
2782: CALL 1E18
2786: MOVLB 1
.................... pixel(x,adcA,1); // Рисуем вершину A
2788: CLRF x8D
278A: MOVFF 16D,18C
278E: CLRF x8F
2790: MOVFF 154,18E
2794: MOVLW 01
2796: MOVWF x90
2798: MOVLB 0
279A: CALL 0BE8
.................... }
279E: MOVLB 1
27A0: INCF x6D,F
27A2: BRA 2712
.................... }
27A4: MOVLB 0
27A6: RETLW 00
....................
.................... //####


всё равно тухнет.Я так думаю, что там всё правильно и нужно.Наверное не стоит там ковыряться

Цитата
12 МБ....

Ограбили 1111493779.gif я на 43 наснимал !!! 1111493779.gif

давайте лучше это строить, только я не знаю с какого боку подьезжать

Цитата
//##############################################
void spectrum_analizator(void)
{
realfastfouriertransform( Buf,128,0);
}
//##############################################
smile.gif

Сообщение отредактировал andreichk - Mar 30 2008, 16:28


--------------------
Go to the top of the page
 
+Quote Post
Ilya_A
сообщение Apr 1 2008, 11:07
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 1-12-05
Из: Иркутск
Пользователь №: 11 630



Цитата(andreichk @ Mar 31 2008, 00:27) *
всё равно тухнет.Я так думаю, что там всё правильно и нужно.

Нет, вы не правы, там половина операций ненужна... но я заметил что не происходит инициализация указателя ptr, при входе в функцию, хотя у меня написано (ненравится мне этот компилятор, блин...)

напишите явное присвоение
Код
ptr=Buf;

перед циклом
Код
while(x++)

Просто происходило следующее: при каждом входе в процедуру, указатель все увеличивался и увеличивался... и затирал все подряд...

также абсолютнно бессмыслены следующие строчки:
Код
26FC: MOVLW FF
26FE: MOVWF F93

их нужно максимум выполнить 1 раз перед циклом.

А проверка условия выхода из цикла:
Код
26EA: MOVF x6D,W
26EC: INCF x6D,F
26EE: XORLW 00
26F0: BZ 270E

Это же просто ужас!!! 07.gif Они что не знают инструкции INCFSZ ???

Я бы написал весь цикл в 5 асмовских инструкций, и выполнялся бы он за 6 тактов процессора...

Цитата(andreichk @ Mar 31 2008, 00:27) *
давайте лучше это строить, только я не знаю с какого боку подьезжать

Ну вы хоть начните подъезжать!!! wink.gif Может вопросы по конкретнее появятся...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   X-256, Y-239   Mar 23 2008, 15:13
|- - Илья   Цитата(andreichk @ Mar 23 2008, 23:13) X-...   Mar 24 2008, 05:52
|- - 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   Илья, я уже запутался, что куда вписывать, сделайт...   Apr 1 2008, 11:44
5 страниц V   1 2 3 > » 


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01668 секунд с 7
ELECTRONIX ©2004-2016