|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Profesionalec
Pridružen/-a: Tor Jan 2004 19:06 Prispevkov: 234
|
Objavljeno: Ned Apr 15, 2012 9:35 pm Naslov sporočila: |
|
|
No mogoče še tole. Proceduro PosljiZnak lahko uporabiš tudi samostojno za pošiljanje posameznega znaka na trenutno mesto displeja. To storiš v dveh korakih. V prvem v tmp2 napolniš vrednost znaka. Potem pa pokličeš proceduro. "P" bi na displej poslal takole.
Citiram: |
ldi tmp2,'P'
rcall PosljiZnak
|
Tole je precej manj programsko potratno kot tisti makro "Znak'
Lahko pa seveda tole daš tudi v makro, kjer boš za pisanje porabil le eno vrstico. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Pon Apr 16, 2012 7:16 am Naslov sporočila: |
|
|
Silvo in Protonček,
zanimiva debata - hvala obema! To bi lahko obdelali na naslednjem Bascom seminarju kajne?
Lp
Jure |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Pon Apr 16, 2012 8:05 am Naslov sporočila: |
|
|
Lahko, čeprav jaz lahko prispevam GLCD, ostalo bo delal Silvo, ker je on mojster tukaj. Moje znanje asemblerja je praktično nično, bascoma pa tudi še ne obvladam preveč. Mogoče bi bilo dobro če bi ti in Silvo skupaj ugotovila, kako tele rutine klicati iz Bascoma, ker, kot sem ugotovil je sam bascom kar prepočasen za tole, bi trajalo predolgo če bi hotel pisati več stvari na LCD, saj frekvenca serijskih pulzov skorajda ne preseže dobrih 100 kHz...
Mogoče lahko nastane nova knjižnica...
Če sta za stvar lahko dam LCD že prej, da se zadeva naredi. Itak imam dva in jih zdaj ne bom takoj uporabil , ker je projekt, kamor naj bi šla že haardversko pripravljen za KS108, program pa tudi. Bosta pač čakala na druge projekte, mogoče nekaj, kjer bo manjkalo pinov na AVR-ju...
Aja---stvar, ki bi jo bilo treba še narediti je risanje po njem. Treba je vklopiti grafični način (napredni ukazi registra) in začeti "kracati"...To pa sploh traja in asembler je tukaj po moje obvezen. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Silvo Profesionalec
Pridružen/-a: Tor Jan 2004 19:06 Prispevkov: 234
|
Objavljeno: Pon Apr 16, 2012 10:10 am Naslov sporočila: |
|
|
Zal ne morem obljubit kake udeležbe pri semenarju. Problem je v glavnem kronično pomanjkanje časa ter moj variabilni delavnik. (včasih turnusi po 12 dni skupaj itd...) tako da naprej praktično ne morem nič planirat.
Kot sem že nekje na začetku napisal tole ne bo problem spisati tudi v kakem višje nivojskem jeziku. Morda bo koda zasedla nekoliko več programskega pomnilnika. Hitrost tukaj ne igra posebne vloge, tako da ni nujno, da je koda spisana v zbirniku. Nekako je bil namen tega celotnega sporočila prikaz rabe datasheta. Žal opažam, da velika večina uporabnikov bascoma sploh ne zna uporabljat datasheta. Večina niti ne ve, kako dela zelo razširjen LCD s kontolerjem HD44780 ali kompatibilnem. Ko naleti na težavo, ko je recimo tale pa vrže puško v koruzo. (čaka nekoga, da spiše knjižnico).
Uvoz zbirniške kode v kodo višjenivojskega jezika? Ja sliši se enostavno. A tako zelo enostavno to gotovo ni. Potrebno bo poznati pred vsem višjenivojski jezik. A ima kake registre, sram ... rezervirane za to. Katere instrukcije se sploh lahko uporabljajo. Kako nekontrolirano potiskanje ter pobiranje iz sklada lahko naredi popolno zmešnjavo. Prav tako raba registrov, ki so v rabi drugje.
Jure,
Kot sem napisal zgoraj. Tole oživite v bascomu. Tečajnikom se pokaže kako se uporablja datashet. Pa bo tole zelo zelo koristen tečaj. (pa morda tole assemblersko kodo skušajte stlačit v vaše bascom rutine)
Glede assemblerske kode, ki sva jo skozi sporočilo obdelala s protončkom, pa bom na morebitne nejasnosti odgovoril tukaj na forumu. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Pon Apr 16, 2012 12:43 pm Naslov sporočila: |
|
|
Silvo je napisal/a: | Jure,
Kot sem napisal zgoraj. Tole oživite v bascomu. Tečajnikom se pokaže kako se uporablja datashet. Pa bo tole zelo zelo koristen tečaj. (pa morda tole assemblersko kodo skušajte stlačit v vaše bascom rutine) |
Se strinjam Silvo, za Bascom seminar bi bilo potrebno to naredit, sicer pa tudi ASM ni "prepovedana tema" na Bascom seminarjih
Lp
Jure |
|
Nazaj na vrh |
|
|
besoft Profesionalec
Pridružen/-a: Čet Maj 2010 10:26 Prispevkov: 98
|
Objavljeno: Pon Apr 16, 2012 4:11 pm Naslov sporočila: |
|
|
z veseljem bi se udeležil takega seminarja..vendar se bojim, da imam premalo osnovnega znanja..seminar bo pa verjetno že na nivoju bolj izkušenih.. |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Pon Apr 16, 2012 4:47 pm Naslov sporočila: |
|
|
No, glede bascoma - puške še nisem v koruzo vrgel, to je dejstvo. Samo trenutno me vedno bolj prehlad daje tako da nimam preveč volje do razmišljanja ob glavobolu...par dni bo pavze. Silvo : ja, priznam, sam ne znam brati datasheet, ko pridem do serijske komunikacije, saj mi je tole več ali manj prvi resen projekt raziskovanja tega protokola. Do sedaj sem sicer že delal z DS1820, pa s serijskim EEPROMom, ampak mi je vse kar hitro steklo, ker so rutine že napisane. Tole je pa čisto novo, zato sem definitivno rabil pomoč strokovnjaka.
Sice pa, kot sem že omenil, nekaj deluje, samo timing moram ujeti. Trenutno inicializiram LCD in prižgem utripanje, ne steče pa še pisanje gor ker se zatakne pri tisti 2 ms pavzi, med katero LCD nekako zaspi. Tudi mi še ni jasno zakaj v asemblerju zadeva dela samo preko data in clk, v bascomu moram pa obvezno programsko vključevati in izključevati PSB, drugače ne dela NIČ. Počasi bo že...
Sicer pa - mogoče vprašanje za Jureta: nekje sem zasledil ukaz:
Dim a as Byte At $60. ( primer).
Mar to pomeni tisto, kar jaz mislim in rabim? Namreč da v spremenljivko A v bascomu dam recimo chr$(64), potem pa izvedem strojno kodo za pošiljanje znaka na LCD, tam pa berem isto spremenljivko na lokaciji $60...? Namreč ne vem, kako bi bascom spremenljivko prenesel v asembler rutino. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Silvo Profesionalec
Pridružen/-a: Tor Jan 2004 19:06 Prispevkov: 234
|
Objavljeno: Pon Apr 16, 2012 10:13 pm Naslov sporočila: |
|
|
protoncek je napisal/a: | No, glede bascoma - puške še nisem v koruzo vrgel, to je dejstvo. ... |
Tisto ni bilo namenjeno tebi... bilo je mišljeno splošno. Marsikdo namreč že čisto na enostavni stvari obupa. Ti si kar neverjetno vstrajen. To se vidi skozi tole sporočilo.
Zakaj sem prej omeni "navaden" displej? Je najpogostejša periferija, ki se zelo pogosto spaja z mikrokontrolerjem, ob enem je tudi največji vir težav. (vsaj po tem kar zasledim po forumih) Ko tisti, ki napiše nekje na forum: "Prilopil sem LCD na mikrokontroler, pa mi ne dela, kaj bi lahko bilo?" , vem da niti ni skušal najti datasheta, kaj da bi ga pogledal. Takemu uporabniku je zelo težko pomagati, kajti vse je potrebno vleči iz njega.
Assembler -> bascom. Bascoma ne pozam. (ok sintakso raznih višjenivojskih jezikov poznam tako, da razumem napisano kodo. Da bi sam nekaj napisal bi rabil nekaj več časa) "Povezava" podatkov bi verjetno bila najlažja preko srama morebiti tudi preko registrov. Skratka v assemblerju točno veš kam pišeš oz. od kot bereš. Ok v skrajni sili tudi preko eeproma, kar pa bi bila bolj slaba rešitev. Torej povejte mi, kam lahko dajete oz. od kot lahko berete podatke pa ti bom kodo pripravil za povezavo. |
|
Nazaj na vrh |
|
|
besoft Profesionalec
Pridružen/-a: Čet Maj 2010 10:26 Prispevkov: 98
|
Objavljeno: Pon Apr 16, 2012 10:44 pm Naslov sporočila: |
|
|
Se strinjam z napisanim..namreč sam se tak, da če rešitev ni takoj na vidiku ali na inetu.potem gremo na drugo verzijo..ali lažjo ali iskanje kompromisov..je pa tudi res, da za kašne raziskave in poglabljanja nimam časa.
Sem pa v enem prejšnjem postu omenil, da sem dobil v roke kar zanimive GLCD.. bom jih probal spraviti k življenju z Bascom AVR. vendar najprej moram najti razpored pinov za prikop. Ga pa krmili kontroler T6963C. Kolikor sem brskal po netu je ta kontroler kar popularen. |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Tor Apr 17, 2012 7:33 am Naslov sporočila: |
|
|
protoncek je napisal/a: | Sicer pa - mogoče vprašanje za Jureta: nekje sem zasledil ukaz:
Dim a as Byte At $60. ( primer).
Mar to pomeni tisto, kar jaz mislim in rabim? Namreč da v spremenljivko A v bascomu dam recimo chr$(64), potem pa izvedem strojno kodo za pošiljanje znaka na LCD, tam pa berem isto spremenljivko na lokaciji $60...? Namreč ne vem, kako bi bascom spremenljivko prenesel v asembler rutino. |
S tem se nikoli nisem ukvarjal, ker tega nisem potreboval. Mogoče bo Vilko lahko kaj povedal o tem...
Kot vidim iz Help datoteke s tem ukazom definiraš, kje v spominu se ti nahaja spremenljivka, vendar moraš paziti, saj v primeru zasedenosti spominske lokacije Bascom shrani spremenljivko v naslednji prazen prostor. Podobno bi naredil, če bi jo shranil v EEPROM z ukazom Dim A as ERAM byte.
@besoft: Bascom seminarji načeloma niso namenjeni čistim začetnikom - tistim, ki vklapljajo LEDice, vsem ostalim pa, saj predavatelj poskrbi, da je snov vsem jasna.
Lp
Jure |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Tor Apr 17, 2012 8:33 am Naslov sporočila: |
|
|
OK, to z vgradnjo strojne kode je še v planu...če mi kaj uspe bom gotovo še kaj težil Vilkotu...
za zdaj sem v čistem bascomu uspešno napisal kodo za pisanje na LCD ter vklopil grafični način in ga zbrisal (LCD ima posebej ukaz za CLS teksovnega dela in grafičnega). Naslednje je risanje črte in kroga, potem sem pa že na koncu.
Ukaz CLS se vidi da kar dela ker traja cca pol sekunde da pobriše cel zaslon, tekst napiše hitro, to ni problem, tako da mogoče bi samo nekatere rutine dal v asembler, npr. CLS grafike. Pri tej rutini načeloma niti ne bi rabil vnašati spremenljivk v asembler, saj samo zapolni nule na vse lokacije. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Tor Apr 17, 2012 9:02 am Naslov sporočila: |
|
|
Protonček,
eden od načinov je pa tudi, da ASM del narediš kot knjižnico in potem to knjižnico vklopiš v program. Na ta način je program bolj pregleden.
Jaz sem podobno naredil takrat, ko sem na SPI vodilu krmilil 3 LCD-je.
Lp
Jure |
|
Nazaj na vrh |
|
|
Silvo Profesionalec
Pridružen/-a: Tor Jan 2004 19:06 Prispevkov: 234
|
Objavljeno: Tor Apr 17, 2012 10:21 am Naslov sporočila: |
|
|
No protonček, lepo, da ti je uspelo.
Glede brisanja displeja. Moje priporočilo. (velja splošno za vse displeje, ne glede na to s čim je koda napisana) Namesto brisanja raje čez celoten vidni del zaslona napiši karakter 32 (presledek) na koncu pa postavi kazalček na željeno mesto. Vgrajena funkcija brisanja je morda primerna za rabo ob inicializaciji, kasneje pa ni preveč primerna. Razlog si že sam ugotovil. Je zelo počasna. Počasna pa je zato, ker briše DDR ram tudi izven vidnega dela. Sam si po navadi napišem makro, ki prejme dva parametra. 1.parametr je vrstica katero želim brisati. 2. parameter pa mesto kam naj se postavi kazalček po brisanju. Na ta način se olajša nadalno programiranje. Brisanje se običajno uporablja pred novim pisanjem na displej in to takrat, ko je željen prikaz krajši od tistega, ki je na displjeju. Na ta način imam po brisanju lokacijo DDR rama že nastavljeno za novo pisanje. |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Tor Apr 17, 2012 10:56 am Naslov sporočila: |
|
|
Silvo, hvala, zelo uporabna ideja!
Jure, bom tudi to možnost pretehtal. Sicer se še nisem ukvarjal z knjižnicami, ampak vse je enkrat prvič. Samo ustrezna navodila najdem in voljo, pa bo... _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|