Zadatak: Napisati program za GLCD
Moderators: pedja089, stojke369, [eDo], trax
Re: Zadatak: Napisati program za GLCD
kolega,nemoj se opterecivati previse time,polako ima vremena da isprobamo.Bolje se naspavaj nego da trosis vrijeme na to danas.Idem se ja malo s time igrat mozda nesto prokuzim.Ako sam dobro shvatio test program bi trebao prikazivati sat na GLCD-u.Sve postavke za za glcd se nalaze u GLCD_pbp fajlu a za pic bi trebao natipkat u TEST fajlu.to sve izkompajlirat i to bi trebalo raditi.
Re: Zadatak: Napisati program za GLCD
Pozdrav !
Evo jako dugo sam trazio bas ovo i sad ko iz neba dode . Pedja ti si CAR . Hvala ti na ovom , probat cu nesto iskemijat kad uhvatim vremena . Svaka cast na trudu. Jel jos uvijek vrijedi nagrada ?
Evo jako dugo sam trazio bas ovo i sad ko iz neba dode . Pedja ti si CAR . Hvala ti na ovom , probat cu nesto iskemijat kad uhvatim vremena . Svaka cast na trudu. Jel jos uvijek vrijedi nagrada ?
Re: Zadatak: Napisati program za GLCD
Code: Select all
include "glcd_pbp.pbp"
define osc 4
pause 1000
Start:
@ PrintStr 0,0," Test Clock"
@ PrintStr 0,1," 128 x 64"
END
U include ovo treba dirati samo:
Code: Select all
symbol RW=portb.3
symbol RS = portb.2
symbol E = portb.4
symbol CS1 = portb.0
symbol CS2 = portb.1
symbol RST = portb.5
Symbol LCD_DATA=portb
LCD_DATA=0
TRISb=0
Ovo bi trebalo da je za easypic
Code: Select all
symbol RW=portb.3
symbol RS = portb.2
symbol E = portb.4
symbol CS1 = portb.0
symbol CS2 = portb.1
symbol RST = portb.5
Symbol LCD_DATA=portd
LCD_DATA=0
TRISD=0
Re: Zadatak: Napisati program za GLCD
promjenio u include fajlu kao si napisao,probao test izkompajlirati,ne javlja nikakvu gresku ali i ne pise nista na ekranu.
Re: Zadatak: Napisati program za GLCD
Ne znam sad ovako napamet nista...
Mislim a je najbolje da se probas poigrati sa onim smajlijima, pa vidi koji raspored pinova na njima radi, pa ga prepisi...
Mislim a je najbolje da se probas poigrati sa onim smajlijima, pa vidi koji raspored pinova na njima radi, pa ga prepisi...
Re: Zadatak: Napisati program za GLCD
mislim da je greska u include fajlu jer kad u njemu u labeli :
lcd int stavim da su mi svi CS=0 onda dobim nekakve znakove zivota na ekranu
onda mi na ekranu napise 44 mada je hour=48
a ako napisem @ PrintStr 20,20, "test" onda mi izbaci gresku u kompajliranju
Program word too large . Truncated to core size
lcd int stavim da su mi svi CS=0 onda dobim nekakve znakove zivota na ekranu
Code: Select all
include "glcd_pbp.pbp"
define osc 4
TRISA = $00 'Postavi sve pinove porta A kao IZLAZNI
TRISB = $00 'Postavi sve pinove porta B kao ulazne
TRISC = $00 'Postavi sve pinove porta C kao IZLAZNI
TRISD = $00 'Postavi sve pinove porta D kao izlazne
TRISE = $00 'Postavi sve pinove porta E kao ulazne
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
Hour var Word
pause 1000
Start:
hour = 48
@ PrintVar 40,10,_Hour
ENDASM
GOTO START
end
a ako napisem @ PrintStr 20,20, "test" onda mi izbaci gresku u kompajliranju
Program word too large . Truncated to core size
Re: Zadatak: Napisati program za GLCD
Mozes i bez makroa da pises po LCD...
Ili ovo stavi u petlju, pa readcode zameni sa lookup, kao sto sam ja sa smajlijem
Najveci mi je problem sto se ja ne secam toga 90%....
Mozda je to radjeno i za 18F4550... Pa zato nece da se upisuje string u kod...
Code: Select all
PosX = 0 ' move to position 0 of 83 (char best viewed at spacing of 6)
PosY = 1 ' move to second line of 6
Lcd_SetX
Lcd_SetY
Lcd_Data = "H" ' Note byte size single char.
Gosub Lcd_SendChar
Code: Select all
GLCD_StringOut:
Readcode GLCD_Addr, GLCD_Char ' Get a character
if GLCD_Char = 0 then GLCD_StringDone ' Look for Null char, Stop if found
if glcd_x=> 123 then ' If end of line, cycle to next line
PosY = PosY + 1
glcd_x=GLCD_SX
endif
If glcd_x<64 then
lcd_data=0
cs1=0
cs2=1
posx=glcd_x
else
lcd_data=0
cs1=1
cs2=0
posx=glcd_x-64
endif
Gosub Lcd_SetX
gosub Lcd_SetY
gosub Lcd_SendChar ' puttext
GLCD_Addr = GLCD_Addr + 1 ' Point to next character
glcd_x=glcd_x + 1
goto GLCD_StringOut ' Continue with rest of the string
GLCD_StringDone:
Mozda je to radjeno i za 18F4550... Pa zato nece da se upisuje string u kod...
Re: Zadatak: Napisati program za GLCD
Za sada nemam srece s GLCD-om.Nece da radi ,a trenutno nemam ideju kako da prepravim onaj kod s smajlicima da ispisava brojeve ili slova.Moram malo bolje da zgrijem stolicu u ove zimske dane pa mozda se nesto i rodi iz toga.
Re: Zadatak: Napisati program za GLCD
Cek, polako, jesi natero smajlice da rade
Ako jesi, daj mi portove iskopiraj na forum.
Ako jesi, daj mi portove iskopiraj na forum.
Re: Zadatak: Napisati program za GLCD
Jesam, misa im maloga ,smiju mi se cijeli
evo koda
evo koda
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 9.12.2012 *
'* Version : 1.0 *
'* Notes : PIC16F877A *
'* : *
'****************************************************************
TRISA = $00 'Postavi sve pinove porta A kao IZLAZNI
TRISB = $00 'Postavi sve pinove porta B kao izlazni
TRISC = $00 'Postavi sve pinove porta C kao IZLAZNI
TRISD = $00 'Postavi sve pinove porta D kao izlazne
TRISE = $00 'Postavi sve pinove porta E kao izlazni
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
symbol RW = portb.3
symbol RS = portb.2
symbol E = portb.4
symbol CS1 = portb.0 ' oba kontrolera omogucena
symbol CS2 = portb.1
symbol RST = portb.5
symbol LCDDATA = PORTD
output rw
output rs
output e
output cs1
output cs2
output rst
output lcddata
X VAR BYTE
Y VAR BYTE
I VAR BYTE
Init: 'inicijalizacija displeja
x=0
y=0
rw=0
cs1=0 ' AKO JE 1 ONDA NEMA SLIKE
cs2=0 ' AKO JE 1 ONDA NEMA SLIKE
e=1
LCDDATA=0
rst=0
pause 1
rst=1
cs1=0 ' AKO JE 1 ONDA NEMA SLIKE
cs2=0 ' AKO JE 1 ONDA NEMA SLIKE
call dispon
LCDDATA=192 'postavi prvi red memorije na prvi red glcd-a
gosub kom
gosub clr
x=15 'AKO OVO PROMJENIM MJENJA SE POZIJA SMAJLICA
y=35 'AKO OVO PROMJENIM MJENJA SE POZIJA SMAJLICA
call setx
call sety
Main:
LCDDATA = %00000000
gosub pod
LCDDATA = %01000010
gosub pod
LCDDATA = %00000000
gosub pod
LCDDATA = %00011000
gosub pod
LCDDATA = %00011000
gosub pod
LCDDATA = %10000001
gosub pod
LCDDATA = %01000010
gosub pod
LCDDATA = %00100100
gosub pod
LCDDATA = %00011000
gosub pod
LCDDATA = %00000000
gosub pod
LCDDATA = %00000000
end
return
Pod:
rs=1
e=0
pauseus 1
e=1
return
Kom: '
rs = 0
e = 0
pauseus 1
e = 1
return
SetX: 'postavi x kursor
LCDDATA=184+x
gosub Kom
return
SetY: 'postavi y kursor
LCDDATA = 64 + y
gosub Kom
return
Clr: 'ocisti ekran
for x=0 to 7
gosub setx
y=0
gosub sety
LCDDATA=0
for i=0 to 63
gosub pod
next i
next x
return
DispOff: 'Gasenje lcd
LCDDATA = 62
gosub kom
return
DispOn: 'palenje lcd
LCDDATA=63
gosub kom
return
Re: Zadatak: Napisati program za GLCD
Nadjoh sad... To je pisano za 18F4550. Zato stringovi ne rade. Ali promenljive bi trebale raditi...
Sad vidim, ima tu dosta da se doradjuje...
Evo ti jedan test, i moj include bez ispravki.
Vidi jel radi...
A za text bi trebao probati ovako nesto
Nisam siguran da li treba ovo
PosX = PosX +1
Lcd_SetX
Zaboravih dal sam uvecava, ili treba rucno...
Sad vidim, ima tu dosta da se doradjuje...
Evo ti jedan test, i moj include bez ispravki.
Code: Select all
include "glcd.pbp"
z var byte
z=12
pocetak:
@ PrintVar 1,1, _z
end
A za text bi trebao probati ovako nesto
Code: Select all
include "glcd.pbp"
i var byte
PosX = 0
PosY = 0
Lcd_SetX
Lcd_SetY
FOR i = 0 TO 5 ' Count from 0 to 5
LOOKUP i,["Hello!"],Lcd_Data
Gosub Lcd_SendChar
PosX = PosX +1
Lcd_SetX
NEXT i
PosX = PosX +1
Lcd_SetX
Zaboravih dal sam uvecava, ili treba rucno...
- Attachments
-
- glcd.rar
- (3.33 KiB) Downloaded 366 times
Re: Zadatak: Napisati program za GLCD
Code: Select all
include "glcd.pbp"
z var byte
z=12
pocetak:
@ PrintVar 1,1, _z
end
mozda je do kontrolera na displeju.Displej je kupljen u mikroelektronici u beogradu i ima oznaku
Winstar WDG0151-TMI-V#N00 128x64 GLCD display.
uglavnom u include fajlu moram ovo prepraviti da bi dobio sliku na LCD-u.Vjerojatno ima jos negdje nesto da se prepravi da bi to bilo kak se spada da ne ispisava duplo.
Code: Select all
Lcd_Init:
posx=0
posy=0
rw=0
cs1=0
cs2=0
e=1
LCD_DATA=0
rst=0
pause 1
rst=1
cs1=0 'iz 1 prepravim u 0 onda ima slike
cs2=0 ''iz 1 prepravim u 0 onda ima slike
gosub Lcd_On
LCD_DATA=192
gosub Lcd_Kom
gosub Lcd_clr
return
Re: Zadatak: Napisati program za GLCD
Da... Negde sam nesto zajebo...
cs1=0
cs2=0
Sa tim palis polovine displeja. To je prakticno 2displeja 64x64 piksela, samo su im pinovi spojeni zajedno...
Desna polovina
cs1=1
cs2=0
Leva
cs1=0
cs2=1
A tekst radi li?
EDIT:
Nisam zajebo, tako je bilo i zamisljeno, da posle inicijalizacije displeja, on onemoguci ulaze na oba kontrolera. Pa da ti onda sam biras koji ce kontroler da pise...
A mislio sam da sam napravio da x ide od 0-128, pa da on sam bira kontrolere, ali ocigledno ne pase sve...
To ti moze posluziti dobro za pocetak...
cs1=0
cs2=0
Sa tim palis polovine displeja. To je prakticno 2displeja 64x64 piksela, samo su im pinovi spojeni zajedno...
Desna polovina
cs1=1
cs2=0
Leva
cs1=0
cs2=1
A tekst radi li?
EDIT:
Nisam zajebo, tako je bilo i zamisljeno, da posle inicijalizacije displeja, on onemoguci ulaze na oba kontrolera. Pa da ti onda sam biras koji ce kontroler da pise...
A mislio sam da sam napravio da x ide od 0-128, pa da on sam bira kontrolere, ali ocigledno ne pase sve...
To ti moze posluziti dobro za pocetak...
Re: Zadatak: Napisati program za GLCD
text ne radi samo neki hijeroglifi po ekranu
Re: Zadatak: Napisati program za GLCD
text ne radi
javlja mi gresku u ovim linijama
include "glcd.pbp"
i var byte
PosX = 0
PosY = 0
Lcd_SetX +++redefinition of LABEL lcd_setx+++++ dok napisem ispred gosub onda nema greske
Lcd_SetY +++redefinition of LABEL lcd_setx+++++ dok napisem ispred gosub onda nema greske
FOR i = 0 TO 5 ' Count from 0 to 5
LOOKUP i,["Hello!"],Lcd_Data
Gosub Lcd_SendChar
PosX = PosX +1
Lcd_SetX
NEXT i
budem se jos malo igrao pa da vidim sto ce da ispane od toga
javlja mi gresku u ovim linijama
include "glcd.pbp"
i var byte
PosX = 0
PosY = 0
Lcd_SetX +++redefinition of LABEL lcd_setx+++++ dok napisem ispred gosub onda nema greske
Lcd_SetY +++redefinition of LABEL lcd_setx+++++ dok napisem ispred gosub onda nema greske
FOR i = 0 TO 5 ' Count from 0 to 5
LOOKUP i,["Hello!"],Lcd_Data
Gosub Lcd_SendChar
PosX = PosX +1
Lcd_SetX
NEXT i
budem se jos malo igrao pa da vidim sto ce da ispane od toga
Re: Zadatak: Napisati program za GLCD
A kad sam budala... Fali GOSUB
Re: Zadatak: Napisati program za GLCD
radiiiii !!!!!
Imam ispis slova i brojki na GLCD-u.
EasyPic 5 ploca ---PIC18F4550---kristal 20mhz---i Winstar WDG0151-TMI-V#N00 128x64 GLCD display.
sve radi super po PEDJINOM kodu.HVALA Pedja
Imam ispis slova i brojki na GLCD-u.
EasyPic 5 ploca ---PIC18F4550---kristal 20mhz---i Winstar WDG0151-TMI-V#N00 128x64 GLCD display.
sve radi super po PEDJINOM kodu.HVALA Pedja
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 14.12.2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ ERRORLEVEL -306 ; turn off crossing page boundary message
include "glcd.pbp"
DEFINE OSC 20
TRISA = $00 'Postavi sve pinove porta A kao IZLAZNI
TRISB = %00000000 'Postavi sve pinove porta B kao izlazni
TRISC = $00 'Postavi sve pinove porta C kao IZLAZNI
TRISD = $00 'Postavi sve pinove porta D kao izlazne
TRISE = %000 'Postavi sve pinove porta E kao izlazni
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
pause 1000
Start:
@ PrintStr 0,0,"*********************"
@ PrintStr 0,1,"* Test Clock *"
@ PrintStr 0,2,"* 128 x 64 *"
@ PrintStr 0,3,"*DIGITAL ELECTRONIC *"
@ PrintStr 0,4,"* 33405 PITOMACA *"
@ PrintStr 0,5,"* ZELJKO FERIC *"
@ PrintStr 0,6,"*PEDJA-089 Software *"
@ PrintStr 0,7,"*********************"
END
Re: Zadatak: Napisati program za GLCD
Stringovi rade super s PIC18F4550 .
,ali ne rade varijable--brljavi ,pise nepovezane brojke s PIC18F4550 , dok s PIC16F877A rade varijable a ne rade stringovi i jos s PIC16F877 ne moze se pomagnuti ispis varijable po X osi vec samo po Y osi.
Ima li tko kakvu ideju gdje fulam u pisanju.Da li se jos netko igra s GLCD kodom od pedje pa da ima isti problem kao i ja ,da probamo rjesenje naci steta bi bilo neusavrsit kod do kraja.
,ali ne rade varijable--brljavi ,pise nepovezane brojke s PIC18F4550 , dok s PIC16F877A rade varijable a ne rade stringovi i jos s PIC16F877 ne moze se pomagnuti ispis varijable po X osi vec samo po Y osi.
Ima li tko kakvu ideju gdje fulam u pisanju.Da li se jos netko igra s GLCD kodom od pedje pa da ima isti problem kao i ja ,da probamo rjesenje naci steta bi bilo neusavrsit kod do kraja.
Code: Select all
@ ERRORLEVEL -306 ; turn off crossing page boundary message
'ovo radi na pic16F877 a ne radi na PIC18F4550
include "glcd.pbp"
TRISA = $00 'Postavi sve pinove porta A kao IZLAZNI
TRISB = %00000000 'Postavi sve pinove porta B kao ulazne
TRISC = $00 'Postavi sve pinove porta C kao IZLAZNI
TRISD = $00 'Postavi sve pinove porta D kao izlazne
TRISE = %000 'Postavi sve pinove porta E kao ulazne
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
z var byte
START:
z= z+1
if z = 255 then z = 0
gosub lcd_clr
@ PrintVar 2,3, _z
pause 1000
goto start
END
Re: Zadatak: Napisati program za GLCD
greska nadjena varijabla mora biti word velicine a ne byte
z var word 'je ispravno i ne brljavi s brojevima dok broji
z var byte 'neispravno pise brojke bez nekog reda
z var word 'je ispravno i ne brljavi s brojevima dok broji
z var byte 'neispravno pise brojke bez nekog reda
Re: Zadatak: Napisati program za GLCD
Drago mi je da si to resio. Sad radim na komandi GLCDOUT