ATNEL tech-forum https://forum.atnel.pl/ |
|
Tworzenie menu https://forum.atnel.pl/topic23328.html |
Strona 1 z 1 |
Autor: | miki53 [ 6 wrz 2020, o 18:38 ] |
Tytuł: | Tworzenie menu |
Witam Mam takie zapytanie, tworzę menu sterowane pilotem do swojego projektu sterownika i zastanawiam się czy nie można by było to menu napisać nieco prościej Ja nie mam pomysłu jak to zrobić , więc przesyłam ten kod na forum może koledzy będą mieli jakiś pomysł na skrócenie kodu, ponieważ jest w nim wiele elementów powtarzających się ( ustawianie czasów dla poszczególnych wyjść ) Jak to uprościć ? OTO KOD |
Autor: | mirekk36 [ 6 wrz 2020, o 19:08 ] |
Tytuł: | Re: Tworzenie menu |
miki53 napisał(a): lcd_cls(); lcd_locate(0,6); nie widzisz chociażby tak drastycznie powtarzających się linii ?, które aż się proszą żeby je usunąć z obecnego kodu i dać w jednym miejscu przed switch. Sparametryzować wskaźnikami nazwy wyświetlane po tych komendach z jakiejś tablicy i już masz milion linii twojego kodu zaoszczędzone... Ale jak popatrzyłem dalej to takich "kwiatków" jest po prostu taki ogrom w tym kodzie, że szok. Dlatego spróbuj odnieść się do tego co napisałem i uprościć - to na pewno sam zauważysz dalszych milion takich miejsc |
Autor: | mario2015 [ 6 wrz 2020, o 19:16 ] |
Tytuł: | Re: Tworzenie menu |
Cytuj: Ja nie mam pomysłu jak to zrobić , więc przesyłam ten kod na forum może koledzy będą mieli jakiś pomysł na skrócenie kodu, ponieważ jest w nim wiele elementów powtarzających się ( ustawianie czasów dla poszczególnych wyjść ) Jak to uprościć ? Tak jak już Mirek napisał stwórz jakieś tablice a jak tego będzie mało,to te fragmenty kodu, które się powtarzają a są często wykorzystywane, możesz jeszcze ubrać w funkcje. |
Autor: | miki53 [ 6 wrz 2020, o 20:23 ] |
Tytuł: | Re: Tworzenie menu |
Panie Mirku widzę że powtarza się kod i dlatego wstawiłem go tu na forum aby z pomocą kolegów go uprościć ( ale z pomocą a nie żeby to zrobili za minie ) Dlatego potrzebuję przykładu jak to zrobić to nie jest ustawianie wartości dla jednej zmiennej lecz jest to cała sterta różnych zmiennych do których są przypisywane wartości i wpisywane do struktury |
Autor: | miki53 [ 7 wrz 2020, o 13:57 ] |
Tytuł: | Re: Tworzenie menu |
Mógłbym prosić o jakieś podpowiedzi jak uprościć ten fragment kodu język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w tym fragmencie mam 8 zmiennych do których są wpisywane wartości za pomocą pilota i mam takich sekcji 8 jak widać w kodzie wyżej i teraz jak za pomocą tego jednego kodu do nastawiania, ustawić wartości dla wszystkich zmiennych niezależnie Nawet jak wezmę tablicę to każda zmienna musi mieć swój indeks i jak ustawiać hh,mm,ss,wy Jak zmieniać nazwy zmiennych w kodzie do ustawiania wartości aby trafiały tam gdzie mają |
Autor: | Jarecki [ 8 wrz 2020, o 07:18 ] |
Tytuł: | Re: Tworzenie menu |
miki53 napisał(a): Mógłbym prosić o jakieś podpowiedzi jak uprościć ten fragment kodu język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w tym fragmencie mam 8 zmiennych do których są wpisywane wartości za pomocą pilota i mam takich sekcji 8 jak widać w kodzie wyżej i teraz jak za pomocą tego jednego kodu do nastawiania, ustawić wartości dla wszystkich zmiennych niezależnie Nawet jak wezmę tablicę to każda zmienna musi mieć swój indeks i jak ustawiać hh,mm,ss,wy Jak zmieniać nazwy zmiennych w kodzie do ustawiania wartości aby trafiały tam gdzie mają np. tak dla case 0: |
Autor: | miki53 [ 14 wrz 2020, o 11:28 ] |
Tytuł: | Re: Tworzenie menu |
Kombinowałem jak zrobić aby za pomocą tego kodu wpisywać do wszystkich zmiennych wartości Poniższy kod używać jako funkcję język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
niestety nic mi z tego nie wychodzi ponieważ mam 64 niezależne zmienne i nawet jeśli zastosowałem wskażniki i na nich zmieniałem wartości a potem je przypisywałem do zmiennych to jakoś nie wychodziło bo wszystkie zmienne miały te same wartości ? Gdybym podstawiał zmienne pod ten kod to może by zadziałało ( jeden kod do nastawiania dla wszystkich zmiennych ) ale jak zmieniać nazwy zmiennych które aktualnie nastawiam ? Przepraszam jeśli zawile tłumaczę o co mi chodzi proszę o pomysły jak to rozwiązać Może tego się nie da inaczej uwarunkować aby wpisywać wartości do zmiennych dla każdej niezależnie? Potrzebuję podpowiedzi i przykładów jeśli wpisywanie wartości można inaczej zrobić |
Autor: | miki53 [ 15 wrz 2020, o 07:14 ] |
Tytuł: | Re: Tworzenie menu |
Ludziska podpowiedzcie chociaż czy dobrze kombinuję z tym sposobem ustawiania czasów czy można to zrobić prościej czy nie? |
Autor: | Szofer [ 15 wrz 2020, o 09:06 ] |
Tytuł: | Re: Tworzenie menu |
Czy chodzi oto aby wyzerować wszystkie zmienne czasowe które używasz? |
Autor: | miki53 [ 15 wrz 2020, o 11:42 ] |
Tytuł: | Re: Tworzenie menu |
Nie mi chodzi oto czy jest jakiś prosty ( inny ) sposób wpisywania wartości do zmiennych |
Autor: | Jarecki [ 15 wrz 2020, o 13:00 ] |
Tytuł: | Re: Tworzenie menu |
miki53 napisał(a): Nie mi chodzi oto czy jest jakiś prosty ( inny ) sposób wpisywania wartości do zmiennych Sprawdzałeś co Ci wyżej pokazałem? |
Autor: | miki53 [ 15 wrz 2020, o 14:40 ] |
Tytuł: | Re: Tworzenie menu |
Tak jeśli dobrze odczytałem kod to on wiele nie zmienia, zmieniła się tylko forma zapisu do zmiennych Czyli i tak potrzebuję tyle samo kodów wpisujących co u mnie Dla jasności co nazywam kodem wpisującym |
Autor: | Szofer [ 15 wrz 2020, o 14:54 ] |
Tytuł: | Re: Tworzenie menu |
A na wskaźnikach się nieda? W case przypisujesz odpowiednie wskaźniki do zmiennych, przekazanej do funkcji i funkcje wywolujesz z argumentami wskaźnikowymi na odpowiednie zmienne czasowe, tymi wskaźnikam posługujesz się też do zapisu nastaw. Jedna funkcja do wszystkich nastaw. |
Autor: | miki53 [ 15 wrz 2020, o 17:25 ] |
Tytuł: | Re: Tworzenie menu |
To musiałbym zrobić wskażniki do każdej zmiennej to mam 64 zmienne potem do tych zmiennych 64 wskażniki Ale sposób wpisywania wartości do tych wskażników zostaje bez zmian Czyli MASŁO MAŚLANE nie da rady uprościć tego menu jedynie co mogę zrobić to to co Mirek napisał mirekk36 napisał(a): miki53 napisał(a): lcd_cls(); lcd_locate(0,6); Sparametryzować wskaźnikami nazwy wyświetlane po tych komendach z jakiejś tablicy i już masz milion linii twojego kodu zaoszczędzone... Dzięki za pomoc |
Autor: | Szofer [ 15 wrz 2020, o 17:43 ] |
Tytuł: | Re: Tworzenie menu |
A poco, no Poco tyle wskaźników? Poco? Masz 4 zmienne do zmiany hh, mm, ss, wyj case 1: wsk = & hh; wsk1 = & mm; wsk2 = & ss; wsk3 = & wyj; funkcja(*wsk, *wsk1, *wsk2, *wsk3) ; break Pokombinuj tak. Pisane z głowy mogłem babola zrobić w zapisie. |
Autor: | miki53 [ 15 wrz 2020, o 18:16 ] |
Tytuł: | Re: Tworzenie menu |
Szofer napisał(a): Masz 4 zmienne do zmiany hh, mm, ss, wyj case 1: wsk = & hh; wsk1 = & mm; wsk2 = & ss; wsk3 = & wyj; funkcja(*wsk, *wsk1, *wsk2, *wsk3) ; break Tak te 4 zmienne obsługują mi czasy włączenia wyjścia nr1 Następnie potrzebny jest drugi taki kodżik dla wyjścia nr1 ale ustawienia czasów wyłączania i takich wyjść mam 8 i każde niezależnie działające |
Autor: | Szofer [ 15 wrz 2020, o 19:14 ] |
Tytuł: | Re: Tworzenie menu |
Zmienne które przetrzymują ci dane czasu, wyjść i innych itp itd co tam masz musisz i tak posiadać bo to twoje dane obsługiwane w kodzie, jak sprawdzenia czasu co włączyć co wyłączyć itp, ale jak je nastawiasz to nie potrzebujesz tysiąca zmiennych do ich nastawienia, funkcja ma nastawić parametry wymagane do przechowywania parametrów i sprawdzenia zakresów nastaw i zapisanie, tylko na potrzeby menu, patrz na to jako uniwersalne rozwiązanie dla wielu zadań z tej samej kategorii. Wydaje mi się że zbyt globalnie patrzysz na program, nie dzielisz go sobie na sekcje co masz zrobić i odpalać krok po kroku, tysiąca lini kodu nie unikniesz, no chyba że to tylko mryganie diodą. Popatrz na biblioteki Mirka jaki ogrom "treści", pisania tez nie mało, ale ile trzeba poświęcić czasu przy kompie i nie tylko, bo napewno jak ma jakis twardy orzech to nie siada bezmyślnie i pisze miliony lini, tylko najpierw myśli a potem robi. |
Autor: | Szofer [ 15 wrz 2020, o 19:17 ] |
Tytuł: | Re: Tworzenie menu |
Pozatym wskaźnik na zmienna, to nic innego jak przetrzymanie jej adresu, ale ten adres możesz zawsze zmienić (jeśli nie jest const ) i wskazywać wskaźnikiem na adres innej zmiennej. |
Autor: | andrews [ 18 wrz 2020, o 20:22 ] |
Tytuł: | Re: Tworzenie menu |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |