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



Teraz jest 23 sty 2025, o 01:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 50 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 7 gru 2012, o 15:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

Mam nadzieję że będę mógł potestować działające Menu w ten weekend. Zapowiada się ciekawie :)

Swoją drogą ciekawe jak długo powisi Twoje zapytanie o nie działające menu na wiadomym portalu ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2012, o 15:49 

Pomógł: 0

No już tam zablokowałem temat i dałem odnośnik z rozwiązaniem na to forum :P, a co mi tam ;). tam nie będę publikować naprawionej wersji.

Właśnie rzeźbię menu do mojego "sterownika" jak córka pozwoli tj. nie będzie za bardzo absorbująca to powinienem samo menu ogarnąć dzisiaj, potem zostaje napisanie poszczególnych procedur, ale to już w tym temacie
topic1767.html będę publikować.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2012, o 13:11 
Offline
Użytkownik
Avatar użytkownika

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

Od kilku dni wałkuję temat menu wielopoziomowego i chciałbym się podzielić swoimi "przemyśleniami". Jako podstawę wykorzystałem przykłady z linku podawanego przeze mnie wcześniej w tym wątku i na stronie http://stsystem.elektroda.eu/programowanie/avr/100-multimenu. Zmieniłem trochę funkcję odpowiedzialną za zmianę i wyświetlanie menu. Dodałem dodatkową zmienną przekazywaną przez tą funkcję, która określa czy nastąpiła zmiana pozycji menu co ułatwia życie oraz zdefiniowałem długość wyświetlanego menu na wyświetlaczu. Pozwala to na wyświetlanie np 3 linii menu na wyświetlaczu z 4 liniami.

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


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


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


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


I plik main z automatycznym wyjściem z menu przy określonej bezczynności. Pętla główna obsługuje wielowątkowość.

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


------------------------ [ Dodano po: kilkunastu sekundach ]

A tak to działa:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2012, o 13:17 

Pomógł: 0

No i fajnie nam się wątek rozwija. Musze przetrawić co mi kolega Krauser rzucił :) w tym temacie topic1767-30.html



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 09:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 cze 2012
Posty: 102
Pomógł: 2

rezasurmar napisał(a):
No już tam zablokowałem temat i dałem odnośnik z rozwiązaniem na to forum :P, a co mi tam ;). tam nie będę publikować naprawionej wersji.

Właśnie rzeźbię menu do mojego "sterownika" jak córka pozwoli tj. nie będzie za bardzo absorbująca to powinienem samo menu ogarnąć dzisiaj, potem zostaje napisanie poszczególnych procedur, ale to już w tym temacie
topic1767.html będę publikować.



Szukałem na elektrodzie. Szukałem i szukałem. I w końcu znalazłem! W koszu...
no comment

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 09:59 

Pomógł: 0

No bo mod wywalił mi informację gdzie i kto znalazł rozwiązanie problemu, więc niech się za przeproszeniem gonią. Sprawa się oparła o sysopa czyli gulsona, więc powiedziałem, że skoro nie chcą rozwiązania niech posta wywalą do kosza!, a nie, że mod mi będzie mówił gdzie i co mam publikować!



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 10:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

rezasurmar napisał(a):
No bo mod wywalił mi informację gdzie i kto znalazł rozwiązanie problemu, więc niech się za przeproszeniem gonią. Sprawa się oparła o sysopa czyli gulsona, więc powiedziałem, że skoro nie chcą rozwiązania niech posta wywalą do kosza!, a nie, że mod mi będzie mówił gdzie i co mam publikować!


sobie jaja robia ?? Masakra ...

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 10:10 

Pomógł: 0

Dokładnie, banda, rozumiem, jak bym ofen dał linka do forum atnel. No to mogę zrozumieć.
Sam podałem tylko informację, że kolega Krauser z forum atnel znalazł rozwiązanie i tyle w tej kwestii, a mod od razu wywalił, na czerwono i, że bez zgody podmiotu bla bla bla ;).

Do dupy takie forum, gdzie nawet nie można wspomnieć o reszcie świata.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 10:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

rezasurmar napisał(a):
Do dupy takie forum, gdzie nawet nie można wspomnieć o reszcie świata.


Jak w Chinach normalnie :lol: :lol: :lol:

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2012, o 10:41 

Pomógł: 0

Dokładnie, jak by mi kto w twarz napluł, a najgorsze w tym wszystkim jest to, że ten chamski moderator, miał czelność mieć mi za złe i napisać to w zablokowanym usuniętym temacie, gdzie ja już nie miałem możliwości odniesienia się do jego słów, normalnie jak za komuny, dostałeś pałą od zomo i miałeś siedzieć cicho.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2013, o 08:29 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 6
Lokalizacja: Piła
Pomógł: 1

Na początek witam wszystkich forumowiczów :)

Tak czytam i czytam kod menu użytkownika nixie, niby wiem jak działa ale jednak nie do końca :D
Jeśli dobrze rozumiem, to dzięki wskaźnikowi callback, a dokładniej jego zmiennej event wykona się funkcja, która znajduje się w wybranym podmenu np( set_clock). Jeśli event=null wskaźnik jest przeźroczysty. Ale tutaj pojawia się dalszy kod programu z wywoływaną funkcją:

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


Tutaj mam zgrzyt :P

if(inout == in)
if(inout == current)
switch(event)
case E_Next:
case E_Click:

1)Dlaczego zmienna inout jest porównywana z in czy też current ?? skąd wiadomo że przyjmie wartość 1 albo 2 ??
2) skąd wiadomo, że event przyjmie wartość E_Next czy też E_Click ??
Głowię się nad tym i jakoś nie mogę wykminić.. Może po prostu nie widzę w którym miejscu są przypisywane podane wartości do tych zmiennych. Proszę o w miarę proste wyjaśnienie :) Jestem początkujący, co pewnie idzie wywnioskować z moich pytań :P :P
Pozdrawiam :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2013, o 08:59 
Offline
Użytkownik
Avatar użytkownika

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

Michal21 napisał(a):

if(inout == in)
if(inout == current)
switch(event)
case E_Next:
case E_Click:

1)Dlaczego zmienna inout jest porównywana z in czy też current ?? skąd wiadomo że przyjmie wartość 1 albo 2 ??




Przy przejściu do nowej pozycji menu (jej zmianie) funkcja zwrotna jest wywoływana z dodatkowym argumentem mającym wartość 'in', natomiast gdy wywoływane zdarzenia w danej pozycji menu nie zmienia jej to ta wartość przyjmuje 'current'. Np gdy zmieniasz wartość zegara to pozycja menu nie zmienia się. Odpowiedzialną za przekazanie tego argumentu jest funkcja change_manu().

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

Michal21 napisał(a):
2) skąd wiadomo, że event przyjmie wartość E_Next czy też E_Click ??

Pozdrawiam :)


O to już musisz sam zadbać generując takie zdarzenie np po wciśnięciu klawisza lub odebraniu komendy IR.

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: 3 kwi 2013, o 04:45 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 6
Lokalizacja: Piła
Pomógł: 1

Czyli za pomocą funkcji memcpy_P odczytujemy znacznik callback i jeśli w danym menu znajduje się jakaś funkcja np. set_clock, to zmienną event i inouth wpisujemy do wskaźnika *call za pomocą komendy pobrania adresu &call. W miedzy czasie dzięki callbeckowi wywołujemy funkcję set_clock. Następnie sprawdzamy czy mamy tą samą pozycje menu. Jeśli tak, to nadpisujemy zmienną event wartością menu_event, a zmienną inoutch wartością current, jeśli nie, to nadpisujemy wartościami (menu_event, in)

Natomiast w funkcji set_clock cały czas sprawdzamy wartość zmiennych event-(menu_event) i inout-(current,in). Jeśli nie zmienimy pozycji menu, switch(event) zaczyna sprawdzać który przycisk naciśniemy. Domyślnie jest E_IDDLE czyli 0

Wiem, że męczę :P ale chciałbym mieć pewność, że dobrze to rozumiem :) Może takie dokładne wytłumaczenie przyda się nie tylko mi :)

Co to za warunek ?? co On sprawdza ?? :

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


Czy mógłbyś wrzucić cały plik ?? staram się i nie mogę uruchomić menu z tego co wkleiłeś. Błędów nie mam a menu nie chodzi...

edit
Dobra, wszystko działa :) Dla takich zielonych osób jak ja( s1_lcnt jest to przerwanie ). Teraz muszę jeszcze przerobić menu pod siebie :) Dlatego nadal proszę o poprawnie mnie jeśli źle rozumiem działanie.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2013, o 18:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2012
Posty: 76
Lokalizacja: Węgorzewo
Pomógł: 1

Próbuję uruchomić menu rezusmara na wyświetlaczu 4x20. Z tego co rozumiem z kodu, układ menu powinien się dostosować do ustawień wyświetlacza w pliku lcd44780.h . Niestety, działa poprawnie tylko dla wyświetlacza 16 znakowego. Przy ustawieniu 20 znaków mam taki efekt:

Obrazek

oprocz tego, kompilator wywala warrningi "passing argument 1 of 'lcd_str_P' discards qualifiers from pointer target type" w pliku menu.c :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2013, o 19:16 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W tym wątku wspominał kolega elkuba, że z adresacją mogą być niespodzianki. Proponuje taki kod w odpowiednim miejscu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2013, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2012
Posty: 76
Lokalizacja: Węgorzewo
Pomógł: 1

Anty, dzięki, już się bezbłędnie kompiluje.

Krauser....chylę czoła :!:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2013, o 19:41 

Pomógł: 0

No ja miałem dokładnie ten sam problem na swoim 4x16.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 18:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

Jestem w trakcie uruchamiania menu rezusmara przy wykorzystaniu enkodera. Niby wszystko jest ok i działa jak należy jednak bezczelny kompilator podkreśla mi wszystkie linie w których wykorzystane jest makro GET_ADDR jako błąd składni :roll: . Oto definicja makra:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zaznaczam że w plikach związanych z menu póki co nic nie zmieniałem. W konsoli nie ma żadnego warn'a... może ktoś już walczył z tym problemem ?


Załączniki:

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

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2013, o 15:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

Jak dla mnie to wygląda na całkiem poprawną kompilację :(
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2013, o 16:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

no już w pierwszym poście wspomniałem że program działa i się kompiluje :), chodzi o to że to makro jest wykorzystywane bardzo często i to podkreślanie jest "ściśle irytujące", może ktoś zna sposób na dodanie wyjątku w eclipse ?

_________________
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: 50 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO