Skocz do zawartości

[C] atmega8+lcd 2x16


Pomocna odpowiedź

Napisano

Witam,
posiadam płytę ewaluacyjną evb avr 04(od propoxu) oraz wyświetlacz (http://www.sklep.propox.com/index.php?d=produkt&id=1682). Wyświetlacz jest wpięty, podświetla się i są na nim tylko prostokąty jednak po podaniu jakiegoś przykładowego programu nic się nie dzieje.

oto kod:

int main(void)
{
LCD_Initalize();
LCD_Clear(); 
LCD_WriteText("Linia pierwsza");

while(1)
{

}
return 0;
}

Co zrobić w takim wypadku? Przeszukałem siec, jednak nic ciekawego nie znalazłem..

Jako, że jestem bardzo poczatkującym skorzystalem z jakiegoś poradnika dot. obsługi lcd i mój kod wygląda następująco:

#include <avr/io.h>
#include <inttypes.h>
#include <util/delay.h>
#include <hd44780.c>
int main(void) 
{ 
   LCD_Initalize(); 
   LCD_Clear(); 
   LCD_WriteText("Linia pierwsza"); 

while(1) 
{ 

} 
return 0; 
}

Dzięki za odpowiedzi. Zastosowałem się do w.w kursu jednak otrzymuję błąd:

ake.exe: *** No rule to make target `main.elf', needed by `elf'. Stop.

Mój Makefile

http://pastebin.com/RaRvaDL8

W tym samym katalogu co jest plik Makefile znajdują się plik main.c(kod programu) oraz

hd44780.c, hd44780.h .

[ Dodano: 21-10-2010, 21:11 ]

Już wiem w czym problem a mianowicie, po podaniu w makefile ściezki do sterownika wyświetlacza (hd44780.c) wywala taki bład. pytanie, jak to naprawić?

Hm, teraz wywala tylko:

> "make.exe" all

makefile:532: *** multiple target patterns. Stop.

[ Dodano: 21-10-2010, 21:50 ]

Jeżeli w lini 83 wstawię SRC = $(TARGET).c hd44780.c bez ścieżek(jest w tym katalogu co main.c plik hd..)

To otrzymuję:

Compiling C: main.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o 
main.c: In function 'main':
main.c:26: warning: implicit declaration of function 'lcd_init'
main.c:28: warning: implicit declaration of function 'LCD_DISPLAY'
main.c:28: error: 'LCDDISPLAY' undeclared (first use in this function)
main.c:28: error: (Each undeclared identifier is reported only once
main.c:28: error: for each function it appears in.)
main.c:33: error: 'LCD_CLEAR' undeclared (first use in this function)
main.c:37: warning: implicit declaration of function 'LCD_LOCATE'
main.c:40: warning: implicit declaration of function 'LCD_WRITE_DATA'
main.c:67: warning: implicit declaration of function 'lcd_puts'
make.exe: *** [main.o] Error 1

Używasz może C++ Builder'a? miałem kiedyś podobne błędy, chyba coś się gryzło z WinAVR...

A jak nie to to już skończyły mi się pomysły. Ostatni jaki mam to może ściągnij sobie AVR Studio ze strony Atmela które generuje plik Makefile automatycznie i unikniesz takich błędów

Hej, ja zawsze do LCD urzywam biblioteki radzia i zawsze działało, albo żle podłączyłeś wyświetlacz, albo wybrałeś złą biblioteke ( z lub bez odczytu flagi zajętośći), albo nie skonfigurowałeś pinuów biblioteki, o co mogę się założyć czyli w pliku "hd44780.h" edytujesz tak aby pasowało do odpowieniego podłączecia pinów portów.

I teraz te sygnały połączyłeś z mikroprocesorem, w bibliotece masz takie coś:

//-------------------------------------------------------------------------------------------------
//
// Konfiguracja sygnałów sterujących wyświetlaczem.
// Można zmienić stosownie do potrzeb.
//
//-------------------------------------------------------------------------------------------------
#define LCD_RS_DIR		DDRD
#define LCD_RS_PORT 	PORTD
#define LCD_RS			(1 << PD2)

#define LCD_E_DIR		DDRD
#define LCD_E_PORT		PORTD
#define LCD_E			(1 << PD3)

#define LCD_DB4_DIR		DDRD
#define LCD_DB4_PORT	PORTD
#define LCD_DB4			(1 << PD4)

#define LCD_DB5_DIR		DDRD
#define LCD_DB5_PORT	PORTD
#define LCD_DB5			(1 << PD5)

#define LCD_DB6_DIR		DDRD
#define LCD_DB6_PORT	PORTD
#define LCD_DB6			(1 << PD6)

#define LCD_DB7_DIR		DDRD
#define LCD_DB7_PORT	PORTD
#define LCD_DB7			(1 << PD7)

wstaw własne wartości i powinno hulać.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...