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



Teraz jest 16 kwi 2024, o 07:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 70 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 19 lip 2015, o 11:16 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

U mnie niestety taki oto efekt skopiowania plików wygenerowanych przez program do eclipsa.

Kod:
make all
Building file: ../LCD/lcd44780.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=14745600UL -MMD -MP -MF"LCD/lcd44780.d" -MT"LCD/lcd44780.d" -c -o "LCD/lcd44780.o" "../LCD/lcd44780.c"
Finished building: ../LCD/lcd44780.c
 
Building file: ../jbmenu.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=14745600UL -MMD -MP -MF"jbmenu.d" -MT"jbmenu.d" -c -o "jbmenu.o" "../jbmenu.c"
../jbmenu.c: In function 'display_menu':
../jbmenu.c:60:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c:62:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c:68:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c:71:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c:77:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c:80:8: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
../jbmenu.c: In function 'zmiana_wartosci':
../jbmenu.c:184:3: warning: pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign]
In file included from ../jbmenu.c:13:0:
../LCD/lcd44780.h:172:6: note: expected 'const char *' but argument is of type 'const unsigned char *'
Finished building: ../jbmenu.c
 
Building file: ../jbnapisy_flash.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=14745600UL -MMD -MP -MF"jbnapisy_flash.d" -MT"jbnapisy_flash.d" -c -o "jbnapisy_flash.o" "../jbnapisy_flash.c"
Finished building: ../jbnapisy_flash.c
 
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=14745600UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
../main.c: In function 'main':
../main.c:29:8: warning: passing argument 2 of 'lcd_defchar_P' discards 'const' qualifier from pointer target type [enabled by default]
In file included from ../main.c:15:0:
../LCD/lcd44780.h:177:6: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
../main.c:30:8: warning: passing argument 2 of 'lcd_defchar_P' discards 'const' qualifier from pointer target type [enabled by default]
In file included from ../main.c:15:0:
../LCD/lcd44780.h:177:6: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
../main.c:31:8: warning: passing argument 2 of 'lcd_defchar_P' discards 'const' qualifier from pointer target type [enabled by default]
In file included from ../main.c:15:0:
../LCD/lcd44780.h:177:6: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
Finished building: ../main.c
 
Building target: menu_test.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,menu_test.map -mmcu=atmega32 -o "menu_test.elf"  ./LCD/lcd44780.o  ./jbmenu.o ./jbnapisy_flash.o ./main.o   
./jbmenu.o: In function `zmiana_wartosci':
jbmenu.c:(.text+0x2d6): undefined reference to `copy_ram_eeprom'
./jbmenu.o: In function `on_off':
jbmenu.c:(.text+0x368): undefined reference to `copy_ram_eeprom'
collect2.exe: error: ld returned 1 exit status
make: *** [menu_test.elf] Błąd 1


Pliki skopiowane bezpośrednio z wygenerowanego folderu + dodana biblioteka LCD Mirka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2015, o 15:25 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Update w 1 poście. Na samym dole należy zapoznać się ze zmianami.
Mam nadzieję, że będzie teraz działać. W razie czego proszę o informację.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2015, o 19:49 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

Bardzo fajny program! Dziękuję, że kolega się z nami podzielił ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2015, o 08:08 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Mscichu napisał(a):
Bardzo fajny program! Dziękuję, że kolega się z nami podzielił

Ciesze się :) Czyli rozumiem, że działa wszystko, a generowany kod kompiluje się bez warningów i errorów ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2015, o 14:14 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

Na chwilę obecną nie potrzebuję tworzyć menu jako takiego. Swojego czasu skrobałem menu które ma 4 poziomy i 71 elementów do wyboru. Teraz jak będę robił podobny projekt (a planuję to zrobić) to na 100% wykorzystam możliwości Twojego dzieła i zdam relację jak działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2015, o 20:50 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

PANOWIE! Przepraszam, nie wiem jak to się stało, ale w wersji v1.3 w funkcji change_menu pojawił się błąd, który przy zapisywaniu struktury menu do pamięci FLASH powoduje złe odczytywanie, dokładnie chodzi o linie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a 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.

w 1 pości podmieniona wersja 1.3 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 13:23 
Offline
Użytkownik

Dołączył(a): 07 maja 2014
Posty: 31
Pomógł: 0

Witam
Stworzyłem nieduże menu za pomocą programu dodałem obsługe klawiszy w main.c w pętli while za pomocą mirkowego superdebounce w ten sposób

Kod:
 int main(void)
{
   uint8_t k1,k2,k3,k4;
   DDRA |= (1<<PA2);   // wyjście diody LED
   DDRC |= (1<<PC6);
   PORTC |= (1<<PC6); // podswietlenie wyswietlacza chwilowo na stale
   lcd_init(); // inicjacja LCD
   lcd_cls(); // wyczyszczenie ekranu lcd
   lcd_defchar_P(0x80, znak_strzalka); // definicja znaku LCD w pamieci
   lcd_defchar_P(0x81, znak_termo); // definicja znaku LCD w pamieci
   lcd_defchar_P(0x82, strzalka_dol); // definicja znaku LCD w pamieci
   lcd_locate(0,0);   lcd_str("TEST MENU");
   PORTD |= KL1|KL2|KL3|KL4;   /* Timer2 – inicjalizacja przerwania co 10ms */
   TCCR2 |= (1 << WGM21);         // tryb pracy CTC
   TCCR2 |= (1 << CS22) | (1 << CS20);   // preskaler = 1024
   OCR2 = 155;            // przerwanie porĂłwnania co 10ms (100Hz)
   TIMSK |= (1 << OCIE2);         // Odblokowanie przerwania CompareMatch
   sei(); // globalne wlaczenie przerwan

   while(1){


       SuperDebounce(&k1, &PIND, KL1, 20, 1000, OK, OK);
       SuperDebounce(&k2, &PIND, KL2, 20, 1000, UP, UP);
          SuperDebounce(&k3, &PIND, KL3, 20, 1000, DOWN, DOWN);
          SuperDebounce(&k4, &PIND, KL4, 20, 1000, PREV, PREV);
      MENU_EVENT();
      if(!Timer3){
         Timer3=100;
         PORTA ^= (1<<PA2);
      }
   }
}



na wyświetlaczu otrzymuje tylko to co ma wyświetlić funkcja " screen_main "
lecz jak nacisne którykolwiek z przycisków i puszcze na pierwszym miejscu wyswietlacza przez ułamek sekundy można dostrzec znak -> czyli reakcja klawisze jest.Przerwania są generowane poprawnie gdyż diodka podpięta do PA2 mruga sobie co sekunde.
Nie wiem czy coś ja skopałem z obsługą klawiszy superdebounce czy generator menu tworzy błędnie kod.
Może autor zerknie na moje wypociny i coś podpowie w temacie:)
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 13:32 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

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

?
edit:
@usiex daj znać, bo nie wiem czy szukać gdzieś dalej :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 14:02 
Offline
Użytkownik

Dołączył(a): 07 maja 2014
Posty: 31
Pomógł: 0

Widzisz co głowa to głowa .Wczytałem do ostaniej wersji programu włąśnie z tą poprawką wersje wygenerowaną z poprzedniej wersji i dałem generuj kod lecz jednak niezmieniło.Teraz mogę wejść do menu i przemieszczać się po nim.Denerwują ce jest jednak to że będąc w ekranie glównym naciskają klawisz up down lub prev ekran mruga przy puszczeniu oraz wkurzający jest ten kwadracik który się naklada gdy zmienia się wartość którą chcemy ustawić .Również trzeba by było ograniczyć ilość znaków z napisami menu gdyż je obcina a to z tego względu że pozycji aktywnego menu wyskakują na początku dwa znaki(wyświetlacz 2x16).Dużym problemem byłoby aby np temperatura zadawana była np co 0.5 C. Czy w polu jednostki można wstawić jakiś zdefiniowany znak np stopień celcjusza ? i jeszcze jedno czy parametry początkowe po zaprogramowaniu procesora powinny wynosić 0 czy powinny mieć wartośći ustalane początkowo w strukturze?.Jeżeli kolega bloniak91 chce to mogę pisać o jeszcze innych problemach jak znajdę no chyba że masz już dość ;) .Proszę tylko o sugestie to coś spróbuje pokombinować w sprawach o których pisałem.
Pozdrawiam



Ostatnio edytowano 23 lip 2015, o 14:17 przez usiex, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 14:16 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

usiex napisał(a):
Wczytałem do ostaniej wersji programu włąśnie z tą poprawką wersje wygenerowaną z poprzedniej wersji i dałem generuj kod lecz jednak niezmieniło.


Oczywiście poprawię.

usiex napisał(a):
wkurzający jest ten kwadracik który się naklada gdy zmienia się wartość którą chcemy ustawić


To migający kursor? W funkcji zmiana_warosci i on_off wywal po prostu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
.

usiex napisał(a):
.Również trzeba by było ograniczyć ilość znaków z napisami menu gdyż je obcina a to z tego względu że pozycji aktywnego menu wyskakują na początku dwa znaki(wyświetlacz 2x16).


Są niby ograniczone. Jest tak, że liczba kolumn wyświetlacza-1. Dwa znaki? Muszę sprawdzić, jak wrócę do mieszkania.

usiex napisał(a):
Dużym problemem byłoby aby np temperatura zadawana była np co 0.5 C. Czy w polu jednostki można wstawić jakiś zdefiniowany znak np stopień celcjusza ?Proszę tylko o sugestie to coś spróbuje pokombinować


No tak, funkcje, które są w generatorze nie umożliwiają takiej opcji. Rozwiązań jest tyle co programistów np. 2 zmienne do jednej wartości- jedna przechowuje całości, druga ułamki. Kombinuj ;)

Dzięki za uwagi, pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 14:25 
Offline
Użytkownik

Dołączył(a): 07 maja 2014
Posty: 31
Pomógł: 0

Co odnosnie parametrow poczatkowych tez dodalem pytanie w poprzednim poscie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 14:53 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

usiex napisał(a):
Czy w polu jednostki można wstawić jakiś zdefiniowany znak np stopień celcjusza ?

Nie ma takiej możliwości. Po wygenerowaniu kodu możesz sobie w funkcji dla wybranego podmenu podmienić string na swój zadeklarowany znak.
Albo... wpisać do pola Jednostka już bezpośrednio kod znaku( między innymi tak jest wyświetlany znak strzałki).
usiex napisał(a):
i jeszcze jedno czy parametry początkowe po zaprogramowaniu procesora powinny wynosić 0 czy powinny mieć wartośći ustalane początkowo w strukturze?


Trzeba załadować ustawienia fabryczne żeby były początkowe, zadeklarowane w strukturze. Odsyłam do poradnika Mirka na temat struktur. Funkcje z resztą są wzięte z tego otóż wspaniałego poradniczka. Czyli tam funkcja sprawdz i zaladuj ustawienia fabryczne do maina.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 16:29 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

bloniak91 napisał(a):
usiex napisał(a):
Wczytałem do ostaniej wersji programu włąśnie z tą poprawką wersje wygenerowaną z poprzedniej wersji i dałem generuj kod lecz jednak niezmieniło.


Oczywiście poprawię.


Pobrałem zamieszczoną w 1 poście wersję v1.3 i funkcja change_menu jest poprawna, być może na dysku Ci się pomieszało. Dobrze ktoś wyżej wspomniał żeby dodawać w nazwie numer wersji...

bloniak91 napisał(a):
usiex napisał(a):
.Również trzeba by było ograniczyć ilość znaków z napisami menu gdyż je obcina a to z tego względu że pozycji aktywnego menu wyskakują na początku dwa znaki(wyświetlacz 2x16).


Są niby ograniczone. Jest tak, że liczba kolumn wyświetlacza-1. Dwa znaki? Muszę sprawdzić, jak wrócę do mieszkania.


Sprawdziłem, u mnie działa dobrze- maksymalna liczba znaków jest pomniejszona o 1 czyli na znak strzałki. Na początku wyskakuje jeden znak- znak strzałki. @usiex możesz mi ewentualnie podesłać na pw kod, sprawdzę co może być nie tak, bo wróżyć z fusów niestety nie umiem.

No i niestety (albo stety 8-) ) trzeba program rozszerzyć o dodatkowe funkcje- zrobić coś z tymi jednostkami co wiąże się z deklarowaniem znaków. Dorobię też obsługę polskich znaków.

Program miał pomóc mi w wielkim projekcie, a wyszło tak, że powstanie z tego wielki kombajn.
Pozdrawiam i czekam na dalsze sugestie, informacje o błędach itd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2015, o 17:23 
Offline
Użytkownik

Dołączył(a): 07 maja 2014
Posty: 31
Pomógł: 0

Znalazlem bład z tym znakiem

w funkcji display menu jest taki dziwny znak
Kod:
lcd_str("€");//znak strzalki


a powinien byc
Kod:
lcd_str("\x80");//znak strzalki


Tak mi wygenerowało i w twoim przykładzie też jest taki dziwny znak.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2015, o 19:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 mar 2013
Posty: 64
Pomógł: 0

Pomysł na projekt jest po prostu super :)

Jeżeli będę miał jakiś większy projekt z menu do roboty to na pewno będę testował twoje dzieło drogi autorze tematu

Będziemy kibicować w rozwijaniu projektu :)

_________________
-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2015, o 12:57 
Offline
Użytkownik

Dołączył(a): 07 maja 2014
Posty: 31
Pomógł: 0

Kolejna uwaga.Program po wczytaniu jakiegoś projektu i dokonaniu w nim zmiana (zmiana nazwy w głównym menu) wyrzuca błąd w załączniku dodałem print screan.

Pozdrawiam


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2015, o 20:06 
Offline
Nowy

Dołączył(a): 08 kwi 2015
Posty: 8
Pomógł: 0

ja zadam lamerskie pytanie ,czy jest mozliwosc stworzonego menu za pomoca tego programu wrzucic je do arduino leonardo?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2016, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

Witam!
Dziękuję za program. Przykład skompilował się poprawnie. Na ekranie LCD są dwie pozycje: KONTROLA TEMP i KONTROLA ALL (trochę inaczej niż w programie na PC po wczytaniu przykładu). W którym miejscu konfigurujemy piny klawiszy do obsługi menu.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2016, o 18:22 
Offline
Nowy

Dołączył(a): 12 sty 2014
Posty: 15
Pomógł: 0

avrfun napisał(a):
Witam!
Dziękuję za program. Przykład skompilował się poprawnie. Na ekranie LCD są dwie pozycje: KONTROLA TEMP i KONTROLA ALL (trochę inaczej niż w programie na PC po wczytaniu przykładu). W którym miejscu konfigurujemy piny klawiszy do obsługi menu.
Pozdrawiam


Piny klawiszy są skonfigurowane w main.c

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


A obsługę klawiszy można zrobić np. tak

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2016, o 18:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

enzam napisał(a):
Piny klawiszy są skonfigurowane w main.c
Cytuj:
A obsługę klawiszy można zrobić np. tak

Bardzo dziękuję.
Napisz proszę czy dobrze rozumiem filozofię działania tego menu. Jest sobie zegar. Zdarzenie MENU_EVENT() wywoływane "non-stop" w pętli while(1) czuwa aby menu było dostępne (co ono tak właściwie robi?) w każdym momencie. Wciskam KL "ok" i na LCD pojawia się struktura menu. Nawiguję ("up", "down") do "USTAW GODZINĘ" i wciskam "ok" co powoduje wywołanie funkcji callback związanej z tą pozycją menu (np. przestawienie zegara w tryb setup - mruga godzina). Funkcje te trzeba sobie uprzednio zdefiniować projektując menu. Może jest całkiem inaczej?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2016, o 19:32 
Offline
Nowy

Dołączył(a): 12 sty 2014
Posty: 15
Pomógł: 0

Witam

Aż tak mocny nie jestem w tym temacie , więc nie będę próbował wyjaśnić jak to jest do końca.
Sam nad tym siedzę i próbuję zrozumieć jak te wszystkie funkcje działają.
Może skieruję prośbę do kolegi Jakuba w imieniu własny i innych forumowiczów uczących się języka C o opisy funkcji :

void change_menu ( void )
void call_event_callback_fun(void)

Program do generowania menu rewelacja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 14:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

Witam.

Po raz kolejny podchodzę do generatora menu. Przykład zamieszony przez Autora działa dobrze. Problem pojawia się w chwili gdy chcę za pomocą menu wywołać własną funkcję np. pozycja menu - temperatura3 + wciśnięcie OK -> wywołanie funkcji LED_TOG() (gdzie ją definiować) lub do zmienianej wartości nastawy w pozycji menu -temperatura1 przypisać konkretną zmienną ze swojego programu. Jak wywołać MENU_EVENT() w razie potrzeby (np. wejście w setup zegara), czy wystarczy "wyłączyć" wyświetlanie ekranu startowego? Bardzo proszę o pomoc bo program bardzo dobry i potrzebny, a Autor jakby zapadł się pod Forum ;)

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 21:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

Witam!

Zmieniam ustawienia nastawy temperatury w menu z przykładu np. na 60 stopni i przypisuję pole odpowiedniej struktury do zmiennej (w RAM). Po restarcie programu zmienna jest zerowana (bo RAM). Jak zapamiętać tą zmienną w pamięci EEPROM, aby po resecie nadal wynosiła 60? Widzę, że są odpowiednie struktury PGM_NASTAWY i EEPROM_NASTAWY, ale nie wiem jak z nich skorzystać.

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


Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2016, o 17:51 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

avrfun napisał(a):
Witam!

Zmieniam ustawienia nastawy temperatury w menu z przykładu np. na 60 stopni i przypisuję pole odpowiedniej struktury do zmiennej (w RAM). Po restarcie programu zmienna jest zerowana (bo RAM). Jak zapamiętać tą zmienną w pamięci EEPROM, aby po resecie nadal wynosiła 60? Widzę, że są odpowiednie struktury PGM_NASTAWY i EEPROM_NASTAWY, ale nie wiem jak z nich skorzystać.

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


Pozdrawiam

proponuję zobaczyć i pooglądać to: http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html
Na pewno wiele się wyjaśni i będzie wiadomo jak używać ;)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2016, o 20:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

MirkoT napisał(a):
proponuję zobaczyć i pooglądać to: http://mirekk36.blogspot.com/2012/11/av ... iazek.html
Na pewno wiele się wyjaśni i będzie wiadomo jak używać

Witam.
Obejrzałem dokładnie. Przykład z poradnika wykonałem na zestawie ATB. Działa prawidłowo. Analogia jest bardzo duża, a większość funkcji identyczna. Jeżeli "odpaliłeś" przykład dołączony do generatora menu to napisz proszę. Mam kilka pytań.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2016, o 22:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

Trudności pokonane :D
Wszystko działa jak należy. Jeszcze raz bardzo dziękuję Autorowi za program.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2016, o 12:57 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Witam,

na początku dziękuję za priva od użytkownika @avrfun. Dzięki mailowi o wiadomości zobaczyłem, że coś się tu dzieje.

Nie jestem ostatnio aktywny na forum ani nie robię nic w kierunku poszerzania swojej wiedzy elektronicznej i programistycznej. Jest mi z tym źle, ale może Wasze zainteresowanie w tym temacie zmusi mnie do działania. Nie było mnie tutaj dawno i nawet nie widziałem, że piszecie w tym temacie.

Do rzeczy. kolega @avrfun prosi o poprawienie błędów pojawiających się przy kompilacji. Proponuję, że do końca tygodnia wrzucę poprawioną wersję i wtedy odpowiem na pytania jeśli jeszcze jakieś się pojawią. Proszę o sugestie czego jeszcze brakuję, a może pokuszę się o dodanie jakiś nowych, pomocnych funkcji.

Pozdrawiam serdecznie

btw. Gry elektroniczne to jedna z największych uzależniaczy jakie przerabiam/łem. Udało mi się rzucić tytoń, zbyt częsty sok jabłkowy i inne różne rzeczy, ale gierki w sieci są niestety tak beztroskie i tak niewinne, że człowiek sam nie wie w czym jest problem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2016, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 449
Pomógł: 3

bloniak91 napisał(a):
Do rzeczy. kolega @avrfun prosi o poprawienie błędów pojawiających się przy kompilacji. Proponuję, że do końca tygodnia wrzucę poprawioną wersję i wtedy odpowiem na pytania jeśli jeszcze jakieś się pojawią. Proszę o sugestie czego jeszcze brakuję, a może pokuszę się o dodanie jakiś nowych, pomocnych funkcji.

Bardzo dziękuję!

Na gorąc obserwacja.
Tworzę MENU -> tworzę PODMENU1 -> chcę dodać funkcję (funkcja1) dla PODMENU1.
Muszę to zrobić tak:
PODMENU1 -> tworzę dowolne podmenu dla PODMENU1 np. POD_PODMENU_1 i dopiero wówczas mogę zamienić POD_PODMENU_1 na funkcję (funkcja1) poprzez użycie "Stwórz funkcję". Użycie klawisza "Stwórz funkcję" po kliknięciu na PODMENU1 zamieni je na funkcję, a nie o to chodzi. Dodatkowy krok - stwórz podmenu i zamień je na funkcję. Czy to jest zamierzona reakcja programu?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2016, o 08:47 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Witam,
dziękuję za pomoc @avrfun. Program po poprawkach wstawiony w 1 poście, który został edytowany.

Pojawił się mały problem związany z samą kompilacją plików z kodem.
Ja osobiście na Windows 7, na eclipse luna(nie wiem jaki dokładnie toolchain itd), nie mam żadnych warningów, na drugim komputerze z win 10 i Eclipse Mars, najnowsze aktualizacje posiadam warning:
warning (variable 'previous_menu' set but not used [-Wunused-but-set-variable]):

Natomiast kolega @avrfun posiada takie warningi:
(pointer targets in passing argument 1 of 'lcd_str_P' differ in signedness [-Wpointer-sign])
i
warning (variable 'previous_menu' set but not used [-Wunused-but-set-variable]):

Ktoś wie jak zrobić bardziej "uniwersalny" kod żeby tego typu konflikty się nie pojawiały?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2016, o 14:26 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

A uzywasz gdziekolwiek tej zmiennej? Bo komunikat o tym właśnie prawi.

Sent from my mobile.



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: 70 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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