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



Teraz jest 22 lut 2025, o 20:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 16 sty 2015, o 12:00 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 76
Pomógł: 0

witam,

bardzo proszę o wsparcie w kwestii możliwości zatrzymania programu w funkcji void setup do czasu wybrania odpowiedniej opcji,
tak aby program nie przechodził samoczynnie do void loop

w moim programie mam proste menu, jest ono umieszczone w void loop, w jednej z fukcji tego meu jest ustawianie wartości zmiennej M,
poprzez klikanie dodaję do niej wartość +1 i kiedy przekracza zakres jaki mnie interesuje zapętlam odczyt i resetuję znowu do
minimalnej wartości zakresu jaki akceptuję - to działa

kolejną funkcją w tym menu jest zapisanie tej ustawionej przeze mnie wartości do pamięci EEPROM,
potem przy restarcie arduino, program czyta wartość zapisaną w pamięci EEPROM i ustawia od nowa moją wartość M,

chciałbym abym mógł ustawiać tą wartość M już w funkcji void setup i żeby program czekał do momentu aż zdecyduję czy
ją będę ustawiał, czy też użyję "skip" i przejdę dajej do void loop,
proste menu w funkcji void setup mogę zrobić na switch/case ale ono zamiast czekać na mój odczyt, przechodzi od razu do
void loop

jest na to jakiś sposób aby zatrzymać program w miejscu void setup, tam coś ustawić i dopiero przejść do void loop?
pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 12:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

może po prostu użyj do tego flagi.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 12:03 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 76
Pomógł: 0

nie wiem o co chodzi z flagami,
wciąż szukam ale nie znalazłem jeszcze odpowiedzi,

ktoś ma jakiś inny pomysł?



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Flaga to inaczej zmienna która przyjmuje stan 0 , 1 czasami i więcej

czyli jeżeli wchodzisz do menu ustawiasz 1 a te 1 będzie oznaczało że nie ma przeskakiwać do void loop

Posłuż się zmienną jak zwykłą flagą nie mniej aby ktoś mógł coś więcej pomóc to pokaż schemat i kod.

_________________
Usługi druku przestrzennego - www.drumik.pl



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

Dołączył(a): 12 lis 2014
Posty: 76
Pomógł: 0

a tak wygląda testowy kod


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: 16 sty 2015, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Wydaje mi się że najprościej uzyć goto
generalnie unikam jak mogę
switch
i go to

wolę oprzeć to na fladze i mam większą kontrolę ...

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 15:03 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 76
Pomógł: 0

dzięki za info, nie umiem się jeszcze posługiwać flagami,
będę szukał dalej



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

bigplik napisał(a):
dzięki za info, nie umiem się jeszcze posługiwać flagami,
będę szukał dalej


Kolego ależ to proste.

deklarujesz sobie np:

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


później w pętli głównej wykonujesz sobie sprawdzenie ...

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


i np przyciskami czy innym zdarzeniem wywołujesz sobie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


lub

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


To takie najprostsze wykorzystanie flagi.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2015, o 15:51 
Offline
Użytkownik

Dołączył(a): 12 lis 2014
Posty: 76
Pomógł: 0

Wielkie Dzięki za wytłumaczenie, faktycznie wygląda na proste ;)

Rozumiem, że Kiedy umieszczę te flagi w void setup to program nie wejdzie samodzielnie do void loop?



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Jeżeli je odpowiednio umieścisz to program samodzielnie nie powinien wejść w void loop ... a za pomocą przycisku w odpowiednim momencie możesz zmienić flagę i program poleci do void loop

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sty 2015, o 02:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Obejrzyj serię poradników Mirka o wężu:

http://mirekk36.blogspot.com/2012/12/ws ... a-bez.html

Zobaczysz, że pomysł zatrzymywania programu jest nie za dobry, tak się nie programuje mikroprocków. Po obejrzeniu zrobisz to zupełnie inaczej - poprzez event w pętli głównej. Bedziesz mógł zmienić wartość M w menu w dowolnym momencie, i ją zapisywać w epromie dowoli.

_________________
--... ...-- - --- -- . -.-



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: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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