www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Izpis na LCD
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Feb 08, 2009 11:59 am    Naslov sporočila:  Izpis na LCD Odgovori s citatom

Pozdrav

Imam:
-Bascom AVR
-Mega8
-LCD 1 x 16

Ko pa hočem napisati text, pa ga ispiše samo polovico (8 znakov).
Probal sem obe varianti v nastavitvah Config Lcd = 16 * 1 in Config Lcd = 16 * 1a,
Config Lcdbus = 4.

Ko pa s trimerjem nastavljam vidnost karakterjev pa so vidni vsi karakterji.

Kje ali kaj bi bilo narobe?

LP,marko

Pa še to: Kje je kakšen aktiven SLO forum o avtomobilih?

_________________
Če ne veš kam greš, se ne moreš zgubiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.27
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 08, 2009 1:25 pm    Naslov sporočila:   Odgovori s citatom

Ti imaš LCD ki je fizično 1x16 on pa se počuti kot 2x8. Poizkusi uporabiti ukaz lowerline in nadaljuj z besedilom. Ali pa samo napiši locate 2 , 1 pa ti bo pisal tudi na naslednjo polovico.

Za Avtomobilizem si že slišal?

_________________
Razsvetljujemo od leta 1920!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Ned Feb 08, 2009 4:26 pm    Naslov sporočila:   Odgovori s citatom

Zdravo

Shema za priključitev LCD 2*16 znakov je v priponki. Kontrast spreminjaš tako da spreminjaš potencial na nožici 3 med 0 in +5V. Sedaj nisem povsem prepričan kdaj se bolje vidi če greš s potencialom proti 0 ali proti +5V. Ugotoviti je možno da je vpliv trimerja na kontrast le v ozkem območju se pravi mala sprememba na trimerju zelo spremeni kontrast. Jaz običajno pomerim zgornji in spodnji nivo tega potenciala v odvisnosti od željenega kontrasta in dodam ustrezne predupore serijsko s trimerjem tako da z vrtenjem trimerja v obe skrajni legi dosežem vrednost pomerjenih potencialov. Na ta način se kontrast spreminja od max na min oz obratno ko vrtimo trimer iz ene skrajne lege v drugo.

Lp.

Darko



LCD.-.2x16.-.priključna - shema.JPG
 Opis:
 Velikost datoteke:  19.34 KB
 Pogledana:  7743 krat

LCD.-.2x16.-.priključna - shema.JPG



_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.19

PrispevekObjavljeno: Tor Maj 19, 2009 5:47 pm    Naslov sporočila:   Odgovori s citatom

Imam sledečo vprašanje, in sicer gre za izpis na LCD, ko uporabim PIC16F84A gre vse lepo prikazati na zaslon. Ko pa uporabim drugi čip PIC16F876A potem pa mi noče prikazat. LCD imam korektno povezano po shemi kot je prikazano v helpu.
Programiram v mikroBASIC.

Uporabljena koda:

program lcd_test

dim text as char[10] 'definiran text z dolžino 10 črk
text1 as char[10] 'defiiran text1 z dolžino 10 črk
INTCON = 0
TRISB = 0 'inicializacija portaB
Lcd_Init(PORTB) 'inicializacija LCD-ja po defoltu
Lcd_Cmd(Lcd_CURSOR_OFF) 'izklop curzorja
text = "mikroEle" 'text beseda ni celotna zaradi izpisa na zaslonu

text1 = "ktronika" 'drugi del besede

'********************GLAVNI PROGRAM************************************
main:
Lcd_Cmd(LCD_CLEAR)
delay_ms (1000)
Lcd_Out(1, 1, text) 'izpis črk na zaslonu 1,1,text pomeni 1 vrstica, 1 stolpec in text
delay_ms (1000)
Lcd_Out(2, 1, text1) '2 vrstica, 1 stolpec in text1
delay_ms (1000) 'tak zapis je zaradi tega, ker prvi prikaže pol besede na levi polovici LCD-ja
'drugi pa prikaže drugo polovico na desni strani LCD-ja
goto main 'na levo in desno stran 1x16 LCD-ja gre največ 8 znakov
end.

Ali moram kaj pri tem drugem čipu upoštevat npr. izklopit komparator, prekinitve ali kaj podobno?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Tor Maj 19, 2009 5:56 pm    Naslov sporočila:   Odgovori s citatom

Sicer ne poznam PICev in mikroBasica, vendar če ti z f84 stvar dela, potem je HW pravilno zvezan, SW pa tudi pravilno prilagojen za ta uC. Zakaj ti na drugem ne dela pa poglej v datasheet kje je razlika. Mogoče je kateri od pinov, ki jih imaš priklopljene na LCD tipa open collector (HW del za I2C) je že en takih pri drugih uC; in potrebuješ vmes pull-up upor. Malce poglej kako so nastavljeni pini (GPIO); Vzemi datasheet in poglej vsak pin, kateri ti pelje na LCD kako je konfiguriran ob resetu (se pravi če ga ti ne konfiguriraš drugače) kaj potrebuje za delovanje itd...Kaj pa sama frekvenca oscilatorja? Kako imaš tam konfigurirano? Če uC [slovenščina je zame španska vas] na drugačni frekvenci (kak interni oscilator) in imaš zakasnitve za LCD preračunane na nižjo frekveco, potem imaš prekratke zakasnitve, kar pa povzroča kup težav z LCDjem.

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.19

PrispevekObjavljeno: Tor Maj 19, 2009 6:21 pm    Naslov sporočila:   Odgovori s citatom

Kaže da je res nekaj na PORTB-ju. Ker sem trenutno preveril kako je z PORTC-jem in na tem portu deluje prav.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Samo87
Član
Član



Pridružen-a: Pet 25 Jan 2008 2:14
Prispevkov: 462
Aktiv.: 2.18
Kraj: Kamnik

PrispevekObjavljeno: Sre Dec 30, 2009 2:11 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni!

Sem začetnik v C-ju. Uporabljam AVR Studio 4.18 in WinAVR-20090313. Problem imam pri izpisu spremenljivke tipa double (in tudi float) na LCD. Namesto željene številke mi vedno izpiše "?". Program je sledeč:

Koda:

#include <avr\io.h>
#include <stdio.h>
#include "lcd.h"


int main(void)
{

lcdInit();
LCDcls();
LCDcursorOFF();

char msg[16];

sprintf(msg,"%f", 12.34);
LCDputs(msg);

while (1);

return 0;
}


V čem bi bil lahko problem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Samo87
Član
Član



Pridružen-a: Pet 25 Jan 2008 2:14
Prispevkov: 462
Aktiv.: 2.18
Kraj: Kamnik

PrispevekObjavljeno: Čet Dec 31, 2009 8:07 pm    Naslov sporočila:   Odgovori s citatom

Prosim, prosim, prosim ... za pomoč! Pray Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 60.05
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Čet Dec 31, 2009 8:13 pm    Naslov sporočila:   Odgovori s citatom

Se misliš na silvestrovo ukvarjat z AVR-ji?

Jaz tudi.

Tako na prvi pogled je vse v redu. Ne vidim napake. Je pa res, da ne delam s tem tipom prevajalnika kot ti.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Samo87
Član
Član



Pridružen-a: Pet 25 Jan 2008 2:14
Prispevkov: 462
Aktiv.: 2.18
Kraj: Kamnik

PrispevekObjavljeno: Čet Dec 31, 2009 9:52 pm    Naslov sporočila:   Odgovori s citatom

No ja, za danes je dovolj AVR-jev, jutri pa spet naprej Smile

Saj o tem problemu sem že govoril z Jvolk-om, pa tudi nisva mogla rešiti problema, zato mi je svetoval, naj vprašam na forumu. Če se ne motim ima on enak problem.
Saj razmišljam, da bi kak drugi prevajalnik preizkusil, ker me tukaj tudi timerji iz tira mečejo saj mi nič ne deluje, čeprav prevede brez napak...
Kateri prevajalnik pa ti uporabljaš?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 60.05
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Čet Dec 31, 2009 10:15 pm    Naslov sporočila:   Odgovori s citatom

Samo87 je napisal/a:
Kateri prevajalnik pa ti uporabljaš?

CodeVisionAvr . No tudi s tem so problemi. Ima namreč nekaj piškotov, ki jih drugi nimajo in je potem problem ko hočeš narediti kaj kar je standardno.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Samo87
Član
Član



Pridružen-a: Pet 25 Jan 2008 2:14
Prispevkov: 462
Aktiv.: 2.18
Kraj: Kamnik

PrispevekObjavljeno: Pet Jan 01, 2010 5:04 am    Naslov sporočila:   Odgovori s citatom

Pa to sem že ničkolikokrat razmišljal... kako da ni v uporabi le en standardni prevajalnik, za katerega bi bilo potem seveda dovolj praktičnih primerov in vse literature, ne pa da se meša vse skupaj med sabo --> Pa saj to ni problem za izkušenejše, ki vejo kaj delajo, za začetnike, ki iščemo čim boljšo literaturo in uporabne, ter za uporabljene prevajalnike delujoče primere, pa je to razmeroma velik problem... Sad
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ticla
Član
Član



Pridružen-a: Sob 15 Dec 2007 22:52
Prispevkov: 440
Aktiv.: 2.06
Kraj: Župečja vas

PrispevekObjavljeno: Pet Jan 01, 2010 12:34 pm    Naslov sporočila:   Odgovori s citatom

Poskusi s sprintf tako
Citiram:
int spremenljivka=1234;
sprintf(lcd_buffer,"%u.%02u ", spremenljivka/100, spremenljivka%100);


Sam trenutno delam izpis temperature na zaslon in imam narejeno tako
Citiram:
sprintf(lcd_buffer,"T=%u.%02u °C ", temperatura/100, temperatura%100);


Trenutna vrednost spremenljivke temperatura je 2061, na lcd pa mi izpiše T=20.61 °C
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Samo87
Član
Član



Pridružen-a: Pet 25 Jan 2008 2:14
Prispevkov: 462
Aktiv.: 2.18
Kraj: Kamnik

PrispevekObjavljeno: Pet Jan 01, 2010 7:33 pm    Naslov sporočila:   Odgovori s citatom

Aha, to pa je varianta. Če imam double spremenljivko, jo samo še pomnožim z 10^n, kjer je n število željenih decimalnih mest, in jo pretvorim v int, to pa potem izpišem kot si predlagal. Hvala ticla!

Ampak vseeno, sprintf bi drugače morala delovati tudi z double in float, kajne?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.66
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Sob Jan 02, 2010 7:23 pm    Naslov sporočila:   Odgovori s citatom

Hehe, ravno delam podobno stvar in sem naletel na isti problem : če hočeš izpisati float oz. double, se na character displayu pojavijo vprašaji.

Sem se hitro spomnil v čem je problem: če hočeš uporabljati float in printf s floati, moraš seveda vključiti kot prvo softversko knjižnico za delo s števili z plavajočo vejico, prav tako pa drugo verzijo printf.

Več si lahko prebereš tukaj


LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group