Author Topic: зошто моето GLCD споро работи?  (Read 2746 times)

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
зошто моето GLCD споро работи?
« Opened on 16.04.2012, Monday, 15:00:47 »
Здраво до сите дали може некој да ме посочи на мојата грешка?
Имам GLCD 128x64 со Touch Screen,сериски LCD/GLCD адаптер со MSP23S17 и микроконтролер 18F4520 кој е поврзан со 8 MHz кристал
Е сега дисплејот многу споро работи споро се движи во менијата дали тоа е поради кристалот или треба несто да подесам дали има некој слично искуство  :)

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
затоа што микроконтролерот нема доволна брзина да ги обработува податоците и да ги прикажува доволно брзо на GLCD-то, плус тоа работиш со сериска комуникација кија дополнително го успорува работењето

за да би го забрзал, на овај кристал моментално што е пробај вклучи го софтверски PLL-то и крени ја работната фреквенција на 32MHz (PLL 4x), мислам дека може да оди и повеќе, ама незнам тоа како би го изведил (д апробаш да го замениш кристалот со некој 20MHz и пак да пробаш да вклучиш PLL-то ама колку ќе ти успее ?!
доколку може сериската комуникација да ја избегнеш, пошто извршувањето на сериските податоци оди споро.
Доколку ти е за некоја побрза работа набави си некој dsPIC или P24F, или пак во краен случај ако ти е за нешто што треба многу побрзо да работи набави си 32F серија :)

постарите модели на микрочип беа така правени што една инструкција се вршеше за повеќе циклуси, кај новите серии е веќе поинаку и поголем дел од инструкциите (скоро повеќе од 90%) се извршуваат за еден циклус, со што брзината на обработка на податоци е многу поголема, размисли да се префрлиш на некоја понова серија.
доколку работиш со дигитално процесирање на сигнали префрли се на dsPIC, за процесирање на аудио и графика подобро се имаат покажано 24F сериите, а како all in one сега за сега се 32F серијата
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline DX-er

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 6340
  • Gender: Male
    • Докажи дека си човек и речи стоп за убиствата на бебиња! Ако не си човек, требало и тебе да те абортираат :)
постарите модели на микрочип беа така правени што една инструкција се вршеше за повеќе циклуси, кај новите серии е веќе поинаку и поголем дел од инструкциите (скоро повеќе од 90%) се извршуваат за еден циклус, со што брзината на обработка на податоци е многу поголема, размисли да се префрлиш на некоја понова серија.
доколку работиш со дигитално процесирање на сигнали префрли се на dsPIC, за процесирање на аудио и графика подобро се имаат покажано 24F сериите, а како all in one сега за сега се 32F серијата
како да би знаел кои се постарите модели на кои им треба повеке циклуси за една работа да извршат а кои се новите на кои им треба само еден циклус за една извршена работа ?
Чувството кога некој ограничен со размислувањето ке зборува за двојни стандарди/демократија/правила... бљак...

кликни тука за инфо околу форумот.

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
фала за одговорот Devil искрено јас не сум многу навлезен во програмирањето имам многу малце слободно време но кога го имам го користам за микроконтролерите ако можеш да ми кажеш еден пример како да ја зголемам фрекфенцијата со PLL?
однапред Фала

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
како да би знаел кои се постарите модели на кои им треба повеке циклуси за една работа да извршат а кои се новите на кои им треба само еден циклус за една извршена работа ?

сериите од 10F, 12F,16F и одредени од 18F се стари модели, за разлика некои верзии од dsPIC33F, скоро сите 24F сите 32F се правени да за да се изврши една инструкција потребен е многу мал циклус, најчесто овај циклус е 1 такт по инструкција, има некои инструкции за кој се потребни и 2-3 такта ...
можеш во секој даташит да прочиташ за колку циклуси се извршуваат операциите
и можеш да споредуваш со она што е брзината MIPS (милиони инструкци во секунда)
или кај новите е назначено како DMIPS
Code: [Select]
http://en.wikipedia.org/wiki/DMIPS

фала за одговорот Devil искрено јас не сум многу навлезен во програмирањето имам многу малце слободно време но кога го имам го користам за микроконтролерите ако можеш да ми кажеш еден пример како да ја зголемам фрекфенцијата со PLL?
однапред Фала

тоа се извршува во поставувањата на проектот еве како изгледа кај компајлерите на микроелектроника, за подетално како оди поставувањето можеш да прочиташ во даташитот во делот за осцилатори (2.5 PLL Frequency Multiplier)

 
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
ок Devil фала многу го најдов и видливо е побрзо но паk има некое доцнење друго решение нема?
мора да се одбере некој друг тип на микроконтролер кој би ми го препорачал ти Devil од 18F фамилиата да може да се програмира со easyPIC5

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Одг: зошто моето GLCD споро работи?
« Reply #6 on 16.04.2012, Monday, 22:46:40 (Edited 16.04.2012, Monday, 22:59:00) »
проблемот може да биде и во кодот, доколку кодот ти го оптеретува микроконтролерот може многу да ти го кочи
види доколку е можно да се оптимизира кодот, да се подсреди малку, да се отфрлат непотребни процедури, незнам колку е точно (негде прочитав) но мислам дека доколку цело време кога програмираш ја повикуваш функцијата за пауза (кај µBasic е Delay_ms(време некое тука во милисекунди) ) дека кога компајлираш таа функција цело време наново се компајлира, значи не ја повикува цело време како под процедура, него на секое ја врши истата операција
тоа би било лоша работа, и негде читав дека вакви функции добро би било да се стават во подпроцедури и да се повикува само подпроцедурата, 1. се заштедува на меморија, 2. наводно полесно се извршувала процедурата.

кој би требало да се ограничувањата на пикот, AD Конвертори, PWM излези, пинови и така натаму...
предлог би бил PIC18F87J50

разгледај го и овај софтверски пакет што можности има
Code: [Select]
http://www.visualglcd.com/
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
го испробав кодот дирекно на порт Д без SPI и супер изгледа брзо е но се намалуваат излезите но зависи во каква ситуација го користиш а јас сега само вежбам ништо конкретно
Програмчево интересно е но мислам повеќе работа врши за поголеми дисплеи јас имам 128x64 па кога ќе си купам поголем дисплеј ќе го испробам
Devil дали имаш некој пример за Time_dateToEpoch како се користи дали треба некој посебен кристал и како можам сето тоа да го прикажам на дисплеј фала однапред

Offline Goce

  • Стручњак
  • ***
  • Posts: 366
  • Gender: Male
Секогаш побрзо работи GLCD-то со паралелна комуникација дирекните излези од микроконтролерот се многу побрзи од SPI/I2C контролери за дисплеи,исто така има и доста добри и брзи SPI контролери само треба да се направи добар избор во зависност од потребите.
Ако ти фалат излезно влезни пинови кога би користел паралелна комуникација искористи некој Port expander

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
го испробав кодот дирекно на порт Д без SPI и супер изгледа брзо е но се намалуваат излезите но зависи во каква ситуација го користиш а јас сега само вежбам ништо конкретно
Програмчево интересно е но мислам повеќе работа врши за поголеми дисплеи јас имам 128x64 па кога ќе си купам поголем дисплеј ќе го испробам
Devil дали имаш некој пример за Time_dateToEpoch како се користи дали треба некој посебен кристал и како можам сето тоа да го прикажам на дисплеј фала однапред


има во help фајлот како би можело да се искористи, ако ти е за на обичен lcd 2х16 или некој сличен би било едноставно, ама за на GLCD то незнам пошто немам никогаш со такви дисплеи работено

разгледај тука, види можеби ќе најдеш нешто корисно
Code: [Select]
http://dangerousprototypes.com/forum/viewtopic.php?f=56&t=2695
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
Ок DEVIL ако имаш време напиши еден туторијал за 2x16 и ставиго во твојата тема ( Туторијал за програмирање во mikroBasic PRO for PIC ) секако тоа ќе биде твој труд и да може со тој пример да се послужат и другите.
Однапред фала

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
викендов ќе се обидам да напишам, пошто моментално сум зафатен со некоја друга работа :)
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline gladiator

  • Стручњак
  • ***
  • Posts: 253
  • Gender: Male
ок ќе чекаме  ;)