Ahoj našel sem na mcu.cz/news.php?extend.395.15 knihovnu,kterou potřebuju.Na těch stránkách je rozdělena do dvou částí “Header file” a “Source file”.Nevim jak z těch dvou částí udělat knihovnu, kterou jen připíšu do include a budu moc bez problemu užívat její fce.
Ahoj.
Pokud pouzivas AVR Studio, tak musis vytvorit 2 soubory.
NokiaLCD.h do neho zkopirujes tu prvni cast, NokiaLCD.c do toho zkopirujes druhou cast.
Oba dva soubory si zkopirujes do projektu, ktery delas a potom spustit AVR Studio.
Kliknes v leve casti v tom robalovacim seznamu pravym tlacitkem na Header a das tam ADD Existing header a pridas tam soubor NokiaLCD.h
To same udelas s tou polozkou nad tim a das Add Existing source a pridas tam soubor NokiaLCD.c.
Potom uz to ve tvem main muzes naincludovat jako
#include "NokiaLCD.h"
Doufam, ze jsem to nepopletl, nemam moznost to vyzkouset.
Ahoj.
Myslim, ze ma spatne ten prvni radek, zkus misto
#include <NokiaLCD.h>
dat
#include "NokiaLCD.h"
A dale prosim pouzivej misto
void main(void)
int main(void)
. Sice nevim proc, ale je to tak.
Zatim
Soubory v adresáři projektu se dávají do uvozovek, include soubory překladače do lomených závorek.
Hmm. Zas pozdě
S tím mainem je to úplně jedno, jelikož nejsi na OS, tvůj program není volán externě a tedy ani nepotřebuje návratovou hodnotu. Maximálně ti to hodí varování, že návratovej tym mainu není int, ale to můžeš s naprosto klidným svědomím ignorovat.
Děláš zmeny na špatných místech.
Include s avr/io.h má bejt v main zdrojáku (když ho pojmenuješ jako projekt, tak aby se v tom prase vyznalo) první řádek kódu, a iom16.h je zbytečný, protože se o jeho načtení postará io.h. Všechny následující části kódu a includované soubory už ho uvidí.
Kontrolní otázka: proč ty přílohy nepřiložíš k postu?
edit: Zas kecám, io.h je potřeba v každym zdrojáku, když je tam využíván, ve tvém případě tam tedy patří. Kdyby byly sestavené definice trochu rozumě, tak by tam nebyl potřeba.
Je tam zajímavá funkce “delay”… S tou bych tedy moc neriskoval a nahradil ji. Překladač ji může vyhodit jako zbytečnou (není mu řečeno, že nesmí).
Takhle nějak by měl ten projekt vypadat: C_lcd.zip (35.1 KB)
Většinou se program píše tak, aby byla co nejmenší část hw závislá. Tedy třeba tady bys místo PORTB psal něco jako LCD_PORT a měl samostatný soubor (zde pravděpodobně dříve onen macros.h), ve kterém svůj obecný název LCD_PORT pověsíš na konkrétní port procesoru: #define LCD_PORT PORTB. Když ti pak rupne v kouli a rozhodneš se, že se ti portb nehodí nebo vyměníš mcu, provedeš změnu na 1 místě a máš hotovo.