Programovani AVR a LCD displej

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

Programovani AVR a LCD displej

#1 Příspěvek od termixnator »

Ahoj zacal jsem programovat AVR v jazyku C jsem zacatecnik jen jsem si precetl par knizek o programovani nejake zaklady C a zacal jsem s blikani ledkou no pri programovani LCD sem narazil na problem nechce se mi smazat horni radek LCD a smaze se jen spodni ktery je nahrazen splacanim textu ktery ma byt zobrazen na hornim a spodnim radku a nevim dke delam chybu :(

Kód: Vybrat vše

 #include <avr/io.h>
#include "lcd.h"
#include <util/delay.h>
int main(){
_delay_ms(50);  // prodleva 50ms pri zapnuti
lcd_init(LCD_DISP_ON); //inicializacia displeja
lcd_puts("Ahoj\nsvete"); // vypis text
_delay_ms(2000);  // pockej 2000ms
lcd_clrscr();  //smaz LCD
lcd_puts("Zdravi\nTermix"); // vypis text
return 0;
}


mozna pouzivam blbe knihovny stahl jsem si z nejmenovaneho fora ktere byly prilozeny k teorii o AVR. Diky za pomoc vsem
Uživatelský avatar
bastlir40
Příspěvky: 463
Registrován: 27 srp 2010, 00:00
Bydliště: Příbram

#2 Příspěvek od bastlir40 »

Po smazání LCD, ho musíš znova inicializovat. Tak že po příkazu:
lcd_clrscr(); //smaz LCD "pokračuješ znova příkazem:
lcd_init(LCD_DISP_ON); //inicializacia displeja
Zdraví vás Mirek

www.mojeelektro.xf.cz
Uživatelský avatar
Hydrawerk
Příspěvky: 8516
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#3 Příspěvek od Hydrawerk »

Hele, je dost těžké radit, když ani nevíme, jakou knihovnu používáš. Není to ta od pána jménem Peter Fleury?
Uživatelský avatar
nokijec
Příspěvky: 315
Registrován: 01 úno 2011, 00:00

#4 Příspěvek od nokijec »

Dej po smazání displeje nějaké zpoždění.Smazání displeje je časově nejpomalejší povel displeje, 2ms by měly stačit.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#5 Příspěvek od ZdenekHQ »

Odkdy se musí po smazání displeje znovu inicializovat ? Naopak dvojí inicializace při zapnutém napájení umí dělat pěkný zmatky, i když to jde udělat tak, že to funguje bez problémů.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
Hydrawerk
Příspěvky: 8516
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#6 Příspěvek od Hydrawerk »

nokijec píše:Dej po smazání displeje nějaké zpoždění.Smazání displeje je časově nejpomalejší povel displeje, 2ms by měly stačit.

Delší dobu jsem si už s displejem nehrál, ale myslím, že s tímto jevem jsem se setkal. Zkus tam dát to zpoždění.
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

#7 Příspěvek od termixnator »

dekuji za pomoc rano jsem si stim jeste hral. Nasel jsem v knihovne jeste asi jeden ze zakladnich prikazu lcd_command(1<<LCD_CLR); ktery funguje ovsem smaze mi prvni pismeno v prvnim radku pri druhem zobrazeni vse je videt v kodu :) knihovny mam odsud http://svetelektro.com/clanky/programuj ... t-459.html zitra jeste vyzkousim jak radite vy se spozdenim snad to pomuze :)

Kód: Vybrat vše

 #include <avr/io.h>
#include "lcd.h"
#include <util/delay.h>
int main(){
_delay_ms(50);
lcd_init(LCD_DISP_ON); // inicializacia displeja
lcd_puts("Ahoj\npracanti"); //vypis text
_delay_ms(2000);
lcd_command(1<<LCD_CLR);
lcd_puts("ZZdravi\nTermix"); //vypis text tady musi byt 2 pismena
return 0;
}
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#8 Příspěvek od ZdenekHQ »

Otázka je, kde vlastně po smazání displeje zůstává kurzor, protože pro tohle je samostatný příkaz.

Já to nepoužívám, mažu řádek po řádku před případným výpisem pomocí mezer nebo prostě přepisuju.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

#9 Příspěvek od termixnator »

nemel bys nejakej ukazkovej program abych se priucil ? zatim mam takovej pocit ze programovani neni uplne jednoduche ale da se... snad se to casem naucim poradne. Jeste jsem se chtel zeptat jestli nemate nekdo zkusenosti s UART rad bych z PC pres nejaky program ovladal vystupni piny podle nastaveni. Prevodnik mi ma kazdou chvili prijit jenze v knizkach pisou jen co to je ale ne jak ho programovat :(
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#10 Příspěvek od ZdenekHQ »

Když já jsem stará škola a všechno píšu v JSA (assembler), to ovládání displeje mám v kódu kompatibilním s 8051. Ale můžeš si to přepsat. :)
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

#11 Příspěvek od termixnator »

uz vse funguje jak ma :D ted jsem dal dohromady ovladani tlacitkama po sepnuti konkretniho tlacitka se vypise text a udela napsana vec. Tak jsem se zase trochu poucil. ted bych chtel nejak udelat menu ze bych si sipkama vybral jednu z moznosti a po potvrzeni tlacitkem OK by se vykonala na prislusnem vystupu ale to bude asi dost orisek. Nevite jestli se da hex prepsat napriklad zpet na C ? rad bych se priucil nebo prevzal nektere veci z ruznych zapojeni nebo se podival jak to maji vyresene ale vetsinou uz je vse v Hexu :(
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#12 Příspěvek od Panda38 »

Zpět na C asi těžko, ale do ASM by to neměl být problém (uložit do BIN a pak disassembler, ale možná některé budou umět načíst i přímo HEX).
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

#13 Příspěvek od termixnator »

OK takze to je skoda :) tak zacnu hledat zase jen v C diky. jinak ten Uart jste nezkouseli nekdo ?
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#14 Příspěvek od Atlan »

Goooogle chlape, okrem toho na svetelektro bezi pekny serialik o atmega... Tak bez studovat.
Uživatelský avatar
termixnator
Příspěvky: 94
Registrován: 17 říj 2009, 00:00
Bydliště: Praha

#15 Příspěvek od termixnator »

GOOGLUJU co se da ten serialek mam komplet stazenej prectenej... :D je tam toho dost ale uplne zaklady ne a co jsem tak koukal nebo pouzil tak tam jsou i chyby co pro me jako pro zacatecnika je docela zbrzdeni pri testovani ruznych zapojeni... pak se musim ptat proc a jak atp... :D
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“