Stránka 1 z 2
Programovani AVR a LCD displej
Napsal: 23 dub 2013, 22:56
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
Napsal: 24 dub 2013, 00:38
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
Napsal: 24 dub 2013, 02:00
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?
Napsal: 24 dub 2013, 09:54
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.
Napsal: 24 dub 2013, 10:20
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ů.
Napsal: 24 dub 2013, 10:44
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í.
Napsal: 24 dub 2013, 16:29
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;
}
Napsal: 24 dub 2013, 20:52
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.
Napsal: 24 dub 2013, 21:43
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

Napsal: 25 dub 2013, 09:53
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.

Napsal: 25 dub 2013, 16:23
od termixnator
uz vse funguje jak ma

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

Napsal: 25 dub 2013, 16:45
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).
Napsal: 25 dub 2013, 17:24
od termixnator
OK takze to je skoda

tak zacnu hledat zase jen v C diky. jinak ten Uart jste nezkouseli nekdo ?
Napsal: 25 dub 2013, 19:52
od Atlan
Goooogle chlape, okrem toho na svetelektro bezi pekny serialik o atmega... Tak bez studovat.
Napsal: 25 dub 2013, 20:00
od termixnator
GOOGLUJU co se da ten serialek mam komplet stazenej prectenej...

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...
