Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Knihovny pro LCD  (Přečteno 6447 krát)

DanielK

  • Aktivní člen
  • *
  • Příspěvků: 127
Knihovny pro LCD
« kdy: 02 Února 2017, 15:12:51 »
Ahoj,

Chci se naučit používat lcd, mám display typu DEM16217SYH a MCU Atmega8.
Stáhnul jsem si knihovny lcd.h a lcd.c, které jsem uložil do adresáře ve kterém kompiluji.
Bohužel mi při kompilaci vypíše:

Kód: [Vybrat]
/home/daniel/Plocha/c/avr/26.c:8: undefined reference to `lcd_init'
/home/daniel/Plocha/c/avr/26.c:12: undefined reference to `lcd_gotoxy'
/home/daniel/Plocha/c/avr/26.c:12: undefined reference to `lcd_puts'

Kompilovaný kód (zkopírovaný z http://svetelektro.com/Download/avr_kniha.pdf#page=16&zoom=110,-222,768):
Kód: [Vybrat]
#include <avr/io.h>
#include "lcd.h"
int main(){
lcd_init(LCD_DISP_ON); //inicializacia displeja
lcd_gotoxy(4,0); // chod na poziciu x=4, y=0
lcd_puts("Posunute"); // vypis text
return 0;
}

Problém bude asi v instalaci knihoven, jak se s nimi pracuje?

Děkuji za rady.

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Knihovny pro LCD
« Odpověď #1 kdy: 02 Února 2017, 17:39:37 »
To ti těžko někdo poví, pokud přímo s těmito knihovnami nepracuje. Já podobné případy řeším hledáním příkladů na internetu.
Někdy to je fuška něco sehnat, ale obvykle se to povede...
(Používám stavebnice s diplayem od STM)
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

DanielK

  • Aktivní člen
  • *
  • Příspěvků: 127
Re:Knihovny pro LCD
« Odpověď #2 kdy: 02 Února 2017, 18:00:18 »
Nevím jak to myslíš. Knihovny i kód jsou odzkoušeny. Ostatní používají program ve kterém je i kompilátor a knihovny musí ručně naklikat. Já používám to co jsem našel a zatím to fungovalo: Program píšu v textovém editoru Gedit, a následně takto kompiluji

Kód: [Vybrat]
echo "running: avr-gcc -g -Os -mmcu=atmega8 -c cesta/k/souboru.c";
avr-gcc -g -Os -mmcu=atmega8 -c  cesta/k/souboru.c;
echo "running: avr-gcc -g -mmcu=atmega8 -o  cesta/k/souboru.elf  cesta/k/souborusta.o";
avr-gcc -g -mmcu=atmega8 -o  cesta/k/souboru.elf  cesta/k/souboru.o;
echo "running: avr-objcopy -j .text -j .data -O ihex  cesta/k/souborus.elf  cesta/k/souboru.hex";
avr-objcopy -j .text -j .data -O ihex  cesta/k/souboru.elf  cesta/k/souboru.hex;

Ale nevím jestli stačí když jsou ty knihovny ve stejném adresáři, nebo jestli se musí do GCC nějak přidat


miro_

  • Aktivní člen
  • *
  • Příspěvků: 226
Re:Knihovny pro LCD
« Odpověď #3 kdy: 03 Února 2017, 11:15:05 »
Dival jsem lehce na webu pdf DEM16217SYH. Myslim ze se jedna o bezny znakovy LCD.
V pdf je tabulka povelu jeho radice. Chtelo by to porovnat hlavne inicializaci
s jinymi typy podobnymi typy napr. rady 1602. Vetsinou uzivaji radice typu HD4480.
Na webu je spousty clanku napr. serial  http://www.mikrozone.eu/pluginy/content/content.php?content.81.
Zkus zda se ti povede na LCD zapsat nejaky znak. Pak jiz muzes zkoumat tabulku povelu radice z pdf.
Primo procedury lcd_gotoxy() a lcd_puts() mozna na webu nenajdes.
Pokud se ti povede na lcd zapisovat znaky tak by nemelo slozite je napsat.

DanielK

  • Aktivní člen
  • *
  • Příspěvků: 127
Re:Knihovny pro LCD
« Odpověď #4 kdy: 03 Února 2017, 15:17:01 »
Asi bych mohl zkusit stáhnout nějaký .hex soubor a napálit ho do MCU, předpokládám, že to bude fungovat. Můj problém je to, že nedostanu svůj kód přes kompilátor. Nevím jak přesně se pracuje s knihovnami, nevím které jsou nainstalované a které ne. Chtělo by to nějaký seznam knihoven, které mám nainstalované a které je potřeba nainstalovat, ale to nevím jak zjistit.

Díky za rady. 

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Knihovny pro LCD
« Odpověď #5 kdy: 03 Února 2017, 16:34:30 »
Z těch tvých příkazů se mi zdá, že nepřekládáš knihovnu lcd.c. Pokud nemáš zdroj, použij knihovnu a přidej ji ke kompileru, teď z hlavy nevím jak se přidává, ale to najdeš na internetu. (Záleží v jakém formátu ji máš.)
Ale nejlepší cesta je mít připravené vývojové prostředí, například Code::Blocks, ten umí i tvůj čip Atmega8. Nejspíše ještě bude potřeba stáhnout i toolchain, i když ty už něco máš, jinak by jsi to nemohl překládat.
Ale jak říkám, je potřeba nejdříve nalézt co nejvíce informací na netu...
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

miro_

  • Aktivní člen
  • *
  • Příspěvků: 226
Re:Knihovny pro LCD
« Odpověď #6 kdy: 03 Února 2017, 16:37:22 »
"lcd.h" je v knihovne 'avrlib'.  Hledej na webu 'avrlib.zip'.
Zrejme Ti pak budou chybet pro ok kompilaci dalsi '#define ..' atd. dle io uziteho procesoru.
Zacinal jsem s IDE AVR na starem AVRstudiu  pod windows. Pokud mas jeste windows zkus najit verzi  4.18. 
Pozor pro win7 a novejsi je nutno upravit jeji instalaci. Na webu je funkcni uprava v 'msys-1.0.zip'.
AVR studio se mi zda pro zacatecnika nejjednodusi. Pro uziti  IDE Eclipse v linux mi prijde prilis slozite projekt
a Eclipse  nakonfigurovat.


 

Provoz zaštiťuje spolek OpenAlt.