|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.67 Kraj: Mengeš
|
Objavljeno: Pon Mar 28, 2011 10:30 pm Naslov sporočila: |
|
|
Nedavno sem nabavil 2x8 LCDje in so organizirani kot 1x16, torej če je LCD namesto 2x8 model 1x16 bo druga vrstica pač napisana v prvi, to je vse. No, izpis je lahko malce "čuden" ker se zadnja črka prve in prva črka druge vrstice po vsej verjetnosti držita skupaj brez presledka...
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Mar 28, 2011 10:31 pm Naslov sporočila: |
|
|
Azrael,
Vsa koda za avr ter pic se nahaja tukaj. Bom jutri poiskal asm ter ga pripel. Vse je na delavniškem računalniku sedaj sem na "hišnem".
Vsi enovrstični prikazovalniki s katerimi sem imel opravka do sedaj se obnašajo kot bi imel dvovrstičnega z 2x8 znakov v eni vrsti. To pomeni da od lokacije 0x0 - 0x8 pišeš v prvo vrstico. Vse kar sledi naprej na prikazovalniku ni vidno. Tja seveda lahko pišeš, potem pa lahko displej pomakneš za osem znakov levo pa bo tisto vidno. (recimo na tak način si v pomnilik displeja lahko napišeš kar nekaj menujev ter jih v nadaljevanju ko jih rabiš le premikaš displej. Druga vrstica se začne na 0xC0. Mesto, kjer se izvede premik DDRAMA v drugo vrstico sem označil z *** Če tisto odmakneš, se bo pri 2x16 displeju pisalo naprej v prvi vvrstici. Enako storiš s kodo v glavni zanki za labelo KANAL1.
koda:
Koda: |
;/////////////////////////////////
;pozdravni napis
bsf RS ;omogocim pisanje
clrf TMP1
TEKST1
movf TMP1,w
call NAPIS
addlw .0
btfsc STATUS,Z
goto TEKST2
call POSLJI_ZNAK
call Pavza15mS
incf TMP1,f
goto TEKST1
TEKST2
bcf RS ;***
movlw b'11000000' ; ***lokacija pisanja (druga vrsta
call POSLJI_ZNAK ;***
bsf RS ;omogocim pisanje
clrf TMP1
|
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Sre Mar 30, 2011 6:23 pm Naslov sporočila: |
|
|
Torej zaenkrat brez pravega uspeha.
Prekopiral sem celotno kodo iz linkane teme za PIC16F88 v txt datoteko, ki sem jo preimenoval v asm in jo spustil skozi quickbuild v Mpasm, rezultat kup napak in nič od hex datoteke, odpraviti pa sem znal samo zadnjo napako, manjkajoč end.
Potem sem poskusi sam napisati program v GCB, ki ima vgrajeno podporo za LCD zaslončke.
Definicijo pinov sem napravil po primerih v help datoteki in je sledeča:
Koda: |
#define LCD_IO 4 '4 bitna povezava
#define LCD_DB4 PORTB.0
#define LCD_DB5 PORTB.1
#define LCD_DB6 PORTB.2
#define LCD_DB7 PORTB.3
#define LCD_Enable PORTB.4
#define LCD_RS PORTB.5
#define LCD_NO_RW 'RW pin spojen na maso |
Rezultat spet daleč od pričakovanega, glej spodnje slike. Izpisati bi se moralo:
Koda: |
V A meter V 1.1
Elektronik.si |
Namesto tega pa se stalno izpisujejo znaki, med katerimi ne opazim črk in številk.
Zanima me ali je tak izpis (stalno se izpisuje samo zgornja vrstica) posledica zafuranih timingov ali napačne definicije pinov? HW je drugače brezhiben, Silvotov program deluje brez težav (slika03).
Opis: |
|
Velikost datoteke: |
165.45 KB |
Pogledana: |
0 krat |
|
Opis: |
|
Velikost datoteke: |
131.42 KB |
Pogledana: |
0 krat |
|
Opis: |
|
Velikost datoteke: |
114.98 KB |
Pogledana: |
0 krat |
|
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Mar 30, 2011 9:01 pm Naslov sporočila: |
|
|
Friderik,
Danes ni bilo dosti časa, tako da sem komajda prišel v delavnico. Upam, da je pravi program. Če ne bo šlo bom popravek naredil jutri. (sedaj grem namreč v nočno)
Opis: |
|
Download |
Ime datoteke: |
Volt88.zip |
Velikost datoteke: |
15.74 KB |
Downloadano: |
8 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Sre Mar 30, 2011 10:22 pm Naslov sporočila: |
|
|
Saj ne priganjam, dokler mi poštar ne prinese trimerjev, stvar stoji, lahko samo prčkam po kodi, pa še tu nisem kaj prida uspešen.
Hvala za datoteke, kot sem ugotovil, čisto moja napaka, saj sem zadevo sestavil tako kot si sledi tema in so prišle tabele na napačno mesto. Se vidi, da nimam pojma o zbirniku.
Bom jutri, če bo čas, poskusil prikaz spremeniti tako kot si predlagal.
Poročam, kaj se bo zgodilo.
|
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Sob Apr 02, 2011 10:29 pm Naslov sporočila: |
|
|
Zgornja asm in posledično hex datoteka se razlikuje od tiste, ki je pripeta pri projektu in vsaj na moji verziji HW ne dela pravilno.
Imam občutek, da se rezultata V in A metra pišeta na isto mesto in se posledično prekrivata.
Nato sem uporabil program PICDisasm 1.6 in mu dal prežvečiti kodo pravilno delujoče hex datoteke, da sem dobil asm datoteko. Sledilo je še malo igranja z Beležko, da sem poimenoval podprograme in spremenjivke enako kot so v izvirniku in prenesel večino komentarjev, saj dega disassembler ne more obnoviti.
Rezultat je pripet spodaj. Iz te asm datoteke nastane hex datoteka, ki je identična delujoči (preverjeno s programom fc).
Sedaj pa sledi težje delo, spraviti napisa v isto vrstico in če še ne bom obupal, dodati W in Ohm meter, da ne bo 2x16 zaslon tako prazen.
Opis: |
|
Download |
Ime datoteke: |
v.zip |
Velikost datoteke: |
2.61 KB |
Downloadano: |
5 krat |
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Apr 02, 2011 11:03 pm Naslov sporočila: |
|
|
Imam shranjene ene tri verzije. Na pamet ne vem, v čem se razlikujejo. Tale verzija izgleda, da je tista, ki je pripeta pri projektu. Hex je enak.
Opis: |
|
Download |
Ime datoteke: |
Volt88_2.zip |
Velikost datoteke: |
17.21 KB |
Downloadano: |
2 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.67 Kraj: Mengeš
|
Objavljeno: Ned Apr 03, 2011 9:29 am Naslov sporočila: |
|
|
Tudi meni se to dogaja---namreč da ne vem razlike v verzijah. zadnje čase sem začel pisati txt datoteko zraven projekta in notri spremembe. Drugače čez mesec, dva ne veš več, kateri program je pravi in delujoči. Saj shraniš kot V1, V2....ampak vseeno je dobro vedeti zakaj toliko verzij...
samo toliko OT...
|
|
Nazaj na vrh |
|
|
Highlag Član
Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 18.11 Kraj: Črnuče
|
Objavljeno: Ned Apr 03, 2011 12:27 pm Naslov sporočila: |
|
|
Jaz ponavadi kar izvorno kodo dopišem. Kaj program dela (če sploh ) In kateri segmenti delujejo. Če rabim nov hex pač prevedem.
_________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Ned Apr 03, 2011 9:44 pm Naslov sporočila: |
|
|
@Silvo
Hvala za datoteke.
Datoteke so ustrezne in sem asm predelal po tvojih nasvetih. Program sedaj izpisuje podatke v eni vrstici in je tako uporaben za 1 x 16 (če je dejansko tak in ne 2 x 8) in 2 x 16 LCD zaslončke.
Če koga zanima, predelane datoteke se nahajajo v sw.zip (spremembe v asm datoteki sem dokumentiral). Kako pa vse skupaj izgleda na zaslončku, pa si lahko pgledate v avi filmčku, ki se nahaja v datoteki Posnetek.zip
Opis: |
|
Download |
Ime datoteke: |
Posnetek.zip |
Velikost datoteke: |
1.49 MB |
Downloadano: |
22 krat |
Opis: |
Asm, hex in ostale datoteke |
|
Download |
Ime datoteke: |
sw.zip |
Velikost datoteke: |
20.61 KB |
Downloadano: |
6 krat |
|
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Tor Apr 05, 2011 9:55 pm Naslov sporočila: |
|
|
Imam prošnjo.
Naložil sem zadnje popravke GcBasic in dol potegnil preizkusno verzijo Pic Simulator IDE v katerem sem preveril delovanje kode napisane v GcBasic in nato še kodo napisano z Basic compilerjem vgrajenim v Pic Simulator IDE (zaradi omejitev preizkusne verzije, je ta program precej okrnjen).
V simulatorju (z enakimi nastavitvami!) pravilno delujeta ti dve kodi in tudi ta ki jo je napisal Silvo.
Na realni strojni opremi pa pravilno dela samo koda, ki jo je spisal Silvo, ostali dve pa rišeta zmedo, kot je videti na slikah zgoraj ali pa ekranček ostane v stanju kot da se je samo incializiral (zatemnjena zgornja vrstica).
Zanima me ali če je kdo od vas, ki ste zgradili omenjeni merilnik, pripravljen preveriti delovanje spodaj pripetih dveh kod na svojem merilniku ?
Obe kodi sta za 2 x 16 zaslon, ki prikazuje vrednosti v V, A , W in Ohm. Naj bi.
Ugibam. če je mogoče pri meni problem LCD zaslon, ki je najcenejša kitajska roba ali je samo simulator preveč toleranten ?
Opis: |
|
Download |
Ime datoteke: |
Gcbasic.zip |
Velikost datoteke: |
20.33 KB |
Downloadano: |
4 krat |
Opis: |
|
Download |
Ime datoteke: |
PIC Simulator IDE.zip |
Velikost datoteke: |
12.04 KB |
Downloadano: |
4 krat |
|
|
Nazaj na vrh |
|
|
Azrael Član
Pridružen-a: Čet 29 Jan 2009 19:46 Prispevkov: 4432 Aktiv.: 23.92 Kraj: Gorje
|
Objavljeno: Sob Apr 09, 2011 3:14 pm Naslov sporočila: |
|
|
Takole, napisal sem program še v MikroBasic Pro. Koda na realni strojni opremi deluje (slika spodaj) toda program PIC Simulator IDE me tudi sedaj ni prepričal razen, da zaščita 30 zagonov preizkusne različice res deluje.
Namreč v simulatorju se je hex zgeneriran z MikroBasic Pro izvajal salamensko hitro, praktično identično hitro kot program v zbirniku, ki ga je napisal Silvo. V realnosti pa se izvaja nekako 500x počasneje in je tako brez čakalnih stanj na spodnji meji uporabnega. (izpis se obnavlja na nekako 2 do 3 sekunde)
Ga bom poskusil izboljšati (prej sem mislim, da nima smisla, glede na rezultat simulacije) in če bo uspelo, ga bom pripel.
Opis: |
|
Velikost datoteke: |
141.16 KB |
Pogledana: |
3 krat |
|
|
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.67 Kraj: Mengeš
|
Objavljeno: Sob Apr 09, 2011 3:55 pm Naslov sporočila: |
|
|
Vprašanje, ki se sicer ne tiče neposredno tegale projekta, ampak podobnega: imam podobno vezje na mojem novem usmerniku - mega16 ter 4x20 LCD, ki ima poleg V in A metra še nekaj drugih funkcij. LCD-ju se "zmeša" ko dobi neko motnjo. Napajanje AVR-ja in LCD-ja je fizično ločeno (drug trafo) samo masa je seveda skupna. Ko na izhodu usmernika pride neka motnja (npr dovolj je neko induktivno breme) LCD izpiše naključne znake. Po ukazu CLS (npr če grem v meni in nazaj ven) spet deluje normalno samo nima več mojih znakov, ki sem jih definiral (čšž--). KAM moram dati blokado? napajanje imam preko 4,7 ohma in 47 uF elektrolita, tudi 100n je tam. Res pa je da je na PCB-ju, LCD pa je povezan z cca 8 cm flat-kablom. Kakšne ideje? Ima kdo s silvotovim projektom podobne probleme?
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Apr 09, 2011 4:14 pm Naslov sporočila: |
|
|
Težava skoraj zanesljivo ni na LCD-ju. Zmešnjavo povzroči mikrokontroler. Motnja ali programska napaka. Če točno veš kaj povzroči motnjo naredi preizkus. Na LCD nekaj napiši potem loči "E" pin ter ga daj fizično na maso. Nato poskusi povzročat motnjo. V koliko se ti bo v tem primeru "zrušil" displej (kar dvomim) išči napako na napajanju LCD-ja. V koliko bo displej stabilen, je težava mikrokontroler.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.67 Kraj: Mengeš
|
Objavljeno: Sob Apr 09, 2011 4:24 pm Naslov sporočila: |
|
|
Naredil sem npr. preprost preizkus: vzel sem mini trafo 9V na 24V kak watt moči. Napajanje sem nastavil na 5V, en pin (npr plus) priključil direkt na trafo, drugega pa preko pile nanj. Potegnem po pili (simuliram motnjo) in se mi LCD takoj zruši. Sam AVR deluje naprej, saj lahko delam vse - spreminjam napetost, prko piskača slišim da gre v meni, samo včasih se ob vstopu in izstopu iz menija postavi nazaj včasih pa ne, takrat pomaga samo reset. Bom poskusil kot praviš. Je mogoče da bi AVR ven dal motnjo in kljub temu naprej deloval nemoteno?
EDIT: naredil kot si rekel: sesuje se LCD. Torej je napaka na njem...bi pomagalo če direktno na LCD na napajanju dam kakšen 100n SMD?
|
|
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 Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|