|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jjakob Član
Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 6.05
|
Objavljeno: Ned Feb 22, 2009 7:15 pm Naslov sporočila: |
|
|
target = (datoteka, v kateri imaš main)
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Feb 22, 2009 7:28 pm Naslov sporočila: |
|
|
Kam pa moram to napisati?
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
jjakob Član
Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 6.05
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Feb 22, 2009 7:44 pm Naslov sporočila: |
|
|
Hmmm Jakob. Hvala za vso ponujeno pomoč, sam kam pa naj dam tale makefile? V Isto mapo kot imam lcdtest.c ? In potem tudi za v naprej ga kar kopiram ali kako? Ali lahko kje to v AvrStudiu povem kam naj gre to gledat? Sorry, s tem res nisem še nikoli delal (razen da sem blinkal lediko).
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
jjakob Član
Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 6.05
|
Objavljeno: Ned Feb 22, 2009 8:04 pm Naslov sporočila: |
|
|
Makefile je datoteka, ki pravzaprav compilerju pove, kaj naj sploh naredi. V njej imaš ponavadi konfiguracijo mikrokontrolerja (frekvenca, tip), compilerja (poti, optimizacija), ...
Za vsak projekt imaš svoj makefile, v projektni mapi poleg vseh programskih datotek. Nima smisla imeti en skupen makefile.
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Feb 22, 2009 8:16 pm Naslov sporočila: |
|
|
No, sem skopiral tvoj Makefile v mapo, kjer imam ta projekt, pa še vedno ne skompajlira...
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3353 Aktiv.: 16.96
|
Objavljeno: Pon Feb 23, 2009 7:24 am Naslov sporočila: |
|
|
RGorazd: Očitno imaš isto knjižnico kot jaz.
1. Inkludaš jo takole:
#include <avr/io.h>
#include <util/lcd_lib.c>
#include <util/delay.h>
#include <avr/interrupt.h>
2. mislim, da se ravno pri uporabi te knjižnice mora v Project/Configuration options/custom options v desno okence dodati tekst (stikalo) -std=gnu99. To ima nekaj veze z verzijami C jezika
3. makefile izvoziš v tisto mapo, kjer imaš projekt.
4. EDIT: ali imaš uporabljen pravi port za povezavo z LCDjem? V defaultu je v tej knjižnici uporabljen PORTB, mogoče pa tvoj AVR tega nima...
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Pon Feb 23, 2009 7:46 pm Naslov sporočila: |
|
|
No, sedaj mi je ratalo zadevo skompajlirat. Sedaj pa grem lcd.h popravljat na moj moj harware. Upam, da mi ne bo spet žrlo živcev. Hvala vsem trem za pomoč!
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Pon Feb 23, 2009 10:09 pm Naslov sporočila: |
|
|
Evo mene! S cel kup novimi problemi...
A mi lahko kdo razloži kje ga biksam. Sedaj mi kodo pravilno prevede, vendar se na displeju ne dogaja kaj dosti (razen tega da je tiho tudi ničesar ne prikazuje).
Tu je lcd.h
Koda: |
#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 7 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 6 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 5 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 4 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 1 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 2 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 0 /**< pin for Enable line */
|
Jaz imam razpored za LCD takle (testna plata doma narejena in sem LCD priključil prek enega DIP Switcha na PORTD od ATmega8 (ostale periferije se na tem portu najmanj uporablja).
Signal E = Portd.0
Signal RS = Portd.1
Signal R/W = GND
Signal DB4 = Portd.7
Signal DB5 = Portd.6
Signal DB6 = Portd.5
Signal DB7 = Portd.4
LCD je priklopljen v 4 bitnem I/O načinu...
Koda vsebuje samo inicializacijo, brisanje LCDja ter izpis stringa...nič drugega zaenkrat...pa še to ne dela...
Aja, v lcd.h imam pravilno nastavljeno frekvenco kristala in ostale parametre...
Hvala za pomoč
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3353 Aktiv.: 16.96
|
Objavljeno: Tor Feb 24, 2009 8:18 am Naslov sporočila: |
|
|
Očitno imam malce drugačno knjižnico kot ti. V moji je malce lažje razumljiva nastavitev izhodov. Poglej v priponko.
dobil sem jo pa nekje tukaj
Opis: |
|
Download |
Ime datoteke: |
AVR-LCD4b.zip |
Velikost datoteke: |
2.81 KB |
Downloadano: |
11 krat |
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Sre Feb 25, 2009 10:44 pm Naslov sporočila: |
|
|
No, s pomočjo Lojszek-a (hvala) sem uspel priti do te stopnje, da mi ukazi kot so LCDclr();LCDhome(); in LCDcursorOnBlink(); delujejo. Ko pa hočem izpisati kak karakter ali string se pa ne zgodi nič. (s hardverom je vse OK, saj mi na hitro spisan program v Bascomu normalno izpisuje na LCD);
Drugo vprašanje pa je v zvezi s samim Build-om in sicer:
Ko tole kodo:
Koda: |
#include <lcd_lib.c>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <string.h>
int main(void)
{
DDRB=0xff;
PORTB = 0x02;
LCDinit();
LCDclr();
_delay_ms(1000);
LCDhome();
LCDcursorOnBlink();
LCDstring("Adijo World",12);
_delay_ms(1000);
while (1)
{
PORTB = ~PORTB;
_delay_ms(500);
}
}
|
prevedem, mi kot warning javi tole:
../Lcd_lojzek.c:17: warning: pointer targets in passing argument 1 of 'LCDstring' differ in signedness
Če pa stistnem še enkrat Build, pa tega opozorila ni več. A je mogoče tudi to, da je to opozorilo vir mojih težav?
Pa še to, a je potrebno F_CPU definirati samo tam v tistem "Configuration options" ali je to potrebno po vseh knjižnicah spremeniti?
Muči me dejstvo, da ko hočem simulirati v AvrStudiu skompajlirano kodo, mi tam ob strani piše, da je moj clock 4Mhz....
Hvala za pomoč.
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
Sokrat Član
Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 25.06
|
Objavljeno: Sre Feb 25, 2009 11:46 pm Naslov sporočila: |
|
|
Tale tema je odlicen primer zakaj se za take reci napise svoje knjiznice ... v vsem tem casu, ki si ga zapravil doslej z iskanjem napak, ki jih je morda zagresil nekdo drug, bi imel izpis na LCD ze 10x narejen.
_________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Sre Feb 25, 2009 11:52 pm Naslov sporočila: |
|
|
Sokrat res maš, vendar ta knjižnica deluje, tako Lojzku kot še komu drugemu...Problem je v mojem nepoznavanju okolja. S tem še nisem delal, s Cjem se še nisem dajal...to je zame vse "novo"... Silvotov primer pisanja na LCD v assemblerju mi je bil precej jasen in mi je z malo njegove pomoči in malo mukami celo ratalo spraviti v življenje, zdaj me zanima pa, kako se to dela v Cju, ker je to moj naslednji korak.
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
upornik Član
Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.17 Kraj: Celje
|
Objavljeno: Sre Feb 25, 2009 11:54 pm Naslov sporočila: |
|
|
Se strinjam s tem. Pa še več se naučiš pri pisanju svoje knjižnice in večje zadovoljstvo imaš. Je pa dobro shranjevati na varno mesto, kajti sam sem jo že enkrat pomotoma izbrisal
|
|
Nazaj na vrh |
|
|
Sokrat Član
Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 25.06
|
Objavljeno: Čet Feb 26, 2009 12:01 am Naslov sporočila: |
|
|
RGorazd je napisal/a: |
Silvotov primer pisanja na LCD v assemblerju mi je bil precej jasen in mi je z malo njegove pomoči in malo mukami celo ratalo spraviti v življenje, zdaj me zanima pa, kako se to dela v Cju, ker je to moj naslednji korak. |
Saj ni nic druagce - tlacis vrednosti v registre in to je to. Lazje je toliko, ker iams elemente visjenivojskega jezika, s katerim je precej bolj pregleno pisanje zank, preverjanja pogojev, vejitev ...
_________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
|
|
|
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: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|