Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 31 sty 2025, o 09:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 14 paź 2012, o 14:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 sie 2012
Posty: 198
Lokalizacja: /dev/null
Pomógł: 2

Witam
mam problem z przykładem programu z dvd dot lcd
błąd polega na wyswietlaniu bledów tego typu
Kod:
15:07:03 **** Incremental Build of configuration Release for project 04_LCD ****
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
../main.c:22:9: error: variable 'znak_termo' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
../main.c: In function 'main':
../main.c:33:2: warning: passing argument 1 of 'lcd_str_P' discards 'const' qualifier from pointer target type [enabled by default]
../LCD/lcd44780.h:172:6: note: expected 'char *' but argument is of type 'const char *'
../main.c:35:2: warning: passing argument 1 of 'lcd_str_P' discards 'const' qualifier from pointer target type [enabled by default]
../LCD/lcd44780.h:172:6: note: expected 'char *' but argument is of type 'const char *'
../main.c:44:22: error: 'znak_buzka' undeclared (first use in this function)
../main.c:44:22: note: each undeclared identifier is reported only once for each function it appears in
make: *** [main.o] Error 1

15:07:09 Build Finished (took 5s.390ms)

na każdej wersji eclipse i avr gcc i avrdude
plik main.c
Kod:
/*
 * main.c
 *
 *  Created on: 2010-03-31
 *       Autor: Mirosław Kardaś
 */
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>

#include "LCD/lcd44780.h"

// poniższą linijkę czasami trzeba wpisać w eclipse przed definicjami
// zmiennych w pamięci EEPROM, żeby nie podkreślał składni jako błędnej
#define EEMEM __attribute__((section(".eeprom")))

const char PROGMEM tab1[] = {"FLASH"};
char EEMEM tab2[] = {"EEPROM"};

uint8_t znak_L[] = {16,16,18,20,24,16,31,0};      // wzór znaku litery Ł w pamięci RAM
uint8_t znak_o[] EEMEM = {4,32,14,17,17,17,14,0};   // wzór znaku litery ó w pamięci EEPROM uint8_t znak_buzka[] PROGMEM = {14,17,27,17,17,21,17,14};   // wzór znaku buźki w pamięci FLASH
uint8_t znak_termo[] PROGMEM = {4,10,10,10,17,31,31,14};   // wzór znaku termometru w pamięci FLASH

volatile uint8_t pwm1, pwm2, pwm3;

int main(void)
{
   DDRD |= (1<<PD0);
   PORTD |= (1<<PD0);

   lcd_init();

   lcd_str_P(tab1);            // napis z pamięci FLASH
   lcd_locate(0,10);
   lcd_str_P( PSTR("Linia1") );   // napis z pamięci FLASH
   lcd_locate(1,0);
   lcd_str_E(tab2);            // napis z pamięci EEPROM
   lcd_locate(1,10);
   lcd_str("Linia2");            // napis z pamięci RAM

   // załadowanie znaków do pamięci CGRAM
   lcd_defchar(0x80, znak_L);
   lcd_defchar_E(0x81, znak_o);
   lcd_defchar_P(0x82, znak_buzka);
   lcd_defchar_P(0x83, znak_termo);


   // wyświetlenie własnych znaków na LCD
   lcd_locate(0,7);
   lcd_str("\x80\x81");
   lcd_locate(1,8);
   lcd_str("\x82");
   lcd_locate(1,7);
   lcd_str("\x83");

   while(1);
}


Dodam ze jeszcze nie jestem w książce nad tym , ale user chata zaproponował ten program do testu lcd , który chciałem przetestować ale nieda skompilować sie ;(.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2012, o 14:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 307
Lokalizacja: Lbt
Pomógł: 8

Skompiluj najpierw takie coś, a nie porywasz się od razu na sprawdzenie wsyztskich funkcji.
Pobrałeś aktualizacje pliku lcd44780.c?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W liniach w których wyrzuci Ci błędy o __attribute__((progmem)) pododawaj const.
Po kompilacji
Kod:
Device: atmega8

Program:     840 bytes (10.3% Full)
(.text + .data + .bootloader)

Data:         10 bytes (1.0% Full)
(.data + .bss + .noinit)


Finished building: sizedummy


Autor postu otrzymał pochwałę

_________________
Ujemna delta to dopiero początek zabawy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2012, o 14:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 sie 2012
Posty: 198
Lokalizacja: /dev/null
Pomógł: 2

Erata pobrana do lcd .

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2012, o 14:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 233
Lokalizacja: Gdynia
Pomógł: 15

Kod:
../main.c:44:22: error: 'znak_buzka' undeclared (first use in this function)


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Powinno być:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2012, o 00:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 sie 2012
Posty: 198
Lokalizacja: /dev/null
Pomógł: 2

Dziękuje za pomoc w eliminacji błędów:))
po wymianie zasilacza dodatkowo programy zaczęły wyświetlać na lcd .

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO