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



Teraz jest 29 mar 2024, o 09:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 56 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 20 kwi 2017, o 21:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

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

czy o to chodziło. ?

------------------------ [ Dodano po: 4 minutach ]

a... poprawiłem post bo pomyliłem LED1 z LED_1 :)

------------------------ [ Dodano po: 7 minutach ]

ustawianie flagi można zrobić poza wskazaniem sondy.
bo jeżeli nie będzie akurat ta sonda załączona to nie zmieni jej flagi.

------------------------ [ Dodano po: 22 minutach ]

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

co prawda w tych linijkach jeszcze stany PC6 są identyczne, ale wyłączenie pompy wyłączy diodę na PC6. wspólny pin. ?
to bym poprawił.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 kwi 2017, o 22:18 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Przycisk nie reaguje pompa i kontrolka pompy załączają i wyłączają się to nie to.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 kwi 2017, o 22:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

popraw na PORT. w 71-szej linijce
Daro68 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bo robisz wyjścia z pinów zamiast ustawić stan wysoki. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 15:07 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Myślę puścić napięcie 12V prosto z transformatora a dopiero sygnał z sondy przepuścić przez mostek prostowniczy i LM7805 takie są założenia i nie wiem czy słuszne :?: , najpierw chcę napisać program przy okazji ucząc się programowania ale wszelka pomoc i sugestie mile widziane ale zaznaczam że jestem kompletnym amatorem.
Wracając do kodu wymyśliłem coś takiego :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ale program nie działa tak jak sobie założyłem diody reagują poprawnie na naciśnięcie klawisza tylko pompa załącza się co drugi klawisz więc wrócę do podpowiedzi Daro69 i całą obsługę klawiszy i led przeniosę poza pętle ‘ wihile ‘ . ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 15:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Daro68 napisał(a):
całą obsługę klawiszy i led przeniosę poza pętle ‘ wihile ‘

NIe, nie...
nie poza while. ! :? --> poza obsługę sond. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 15:59 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

No właśnie tak myślałem jak coś napisze to przedstawię
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 17:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

jakoś w tę stronę,
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: 25 kwi 2017, o 19:40 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Myślałem coś w ten sposób
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: 25 kwi 2017, o 20:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

ok.
czyli dioda ma się świecić tylko wtedy gdy pracuje pompa ?

------------------------ [ Dodano po: 2 minutach ]

czy ma się świecić obok diody sondy,
że zezwalasz na pracę pompy gdy sonda będzie załączona. ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 20:22 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Tak dioda ma się świecic gdy pracuje pompa , dalsza część nie wiem czy dobrze
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: 25 kwi 2017, o 20:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

po naciśnięciu klawisza 1, gdy sonda 1 jest załączona
- ustawi flagę która zapali diodę.
co jeszcze włączy ta flaga ? i gdzie się wyzeruje. ?

------------------------ [ Dodano po: 9 minutach ]

a... dobra " led_1_on(__); " -to też załączanie pompy .
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: 25 kwi 2017, o 21:05 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

coś takiego jeśli flaga = 1 wykonaj funkcję void jeśli flaga = 0 wyłącz diode i pompe
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

funkcja void
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: 25 kwi 2017, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

coś się już pogmatwało. ;)
Daro68 napisał(a):
                                if (flaga){ // jeżeli flaga=1.
                                led_1_on(1); // <-- znowu ta sama jedynka. :) . zamiast tych dwóch linijek. "led_1_on(flaga);"
                                  }
                              else { // jeżeli flaga nie jest 1, czyli jeżeli jest "0".
                                    flaga = 0; //< --- wyzeruj ją ???
                                    LED_1_OFF;
                                    POMPA_OFF;
                              }


------------------------ [ Dodano po: 9 minutach ]

funkcja którą napisałeś. - w takiej formie ->" led_1_on(flaga);",
jeżeli będzie flaga miała 1, to załączy pompę i diodę w funkcji.
jeżeli będzie flaga miała 0, to wyłączy pompę i diodę w funkcji.

stan flagi zmieniaj klawiszem ,
po naciśnięciu - jeżeli flaga była 0 to niech zmieni na 1, i odwrotnie"
napisałem wyżej jak to można sformułować. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 22:22 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Jeśli mogę jeszcze trochę po marudzić ale chciałbym to dobrze zrozumieć po pierwsze czy zapis funkcji void jest prawidłowy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

po drugie dodałem komentarze proszę o sprawdzenie i poprawienie błędów
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: 25 kwi 2017, o 22:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

no właśnie pisałem :) - w linijce 14. jeżeli flaga jest 0. to wykona to w klamrach za "else".
Po co więc zerować tu flagę, skoro program tu wejdzie tylko wtedy gdy ta flaga jest wyzerowana. ?
Daro68 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

gdy flaga będzie 1. wykona pierwszą część funkcji { LED_2_ON; POMPA_ON;}
a gdy flaga będzie 0, to wykona drugą część funkcji. { LED_2_OFF; POMPA_OFF;}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2017, o 23:29 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Daro69 napisał(a):
if(klawisz_stan(KLAWISZ1_PIN)){  //klawisz wciśnięty
                           if(flaga) flaga = 0;

ty w swoim zapisie najpierw przypisałeś do flagi – 0 a dopiero w else flaga = 1 czy to ma jakieś znaczenie
Daro69 napisał(a):
else flaga=1; // zmiana stanu flagi na przeciwny
                           led_1_on(flaga);  // gdy flaga 1 włączy, gdy 0 wyłączy.

i jak wywołać z funkcji void zapis else i czy wo gule jest on prawidłowy
Daro69 napisał(a):
void led_1_on ( uint8_t efekt){
        if( efekt){
        LED_1_ON;
        POMPA_ON;
        }
        else{
                LED_1_OFF;
                POMPA_OFF;
        }
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

ojć, :? Daro ! :)
to musisz opanować. if, else if , else, for, while, do while..
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

if pozwoli wykonać "flaga=0;" tylko wtedy gdy wartość flagi w nawiasie if(flaga) będzie miało jakąś wartość (np=1).
jeżeli nie będzie miało wartości,(czyli jeżeli będzie 0) wykona tę drugą część - czyli przypisze do flagi wartość 1. od teraz flaga będzie miała wartość 1.
czyli jeżeli program wejdzie w tego ifa z wartością flagi 0, to wpisze jej 1,
a jeżeli z wartością 1 to wpisze jej 0.
Taka zmiana stanu flagi na przemian .0 - 1 - 0 - 1 -....za każdym naciśnięciem klawisza jedna zmiana.

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

No tu sam napisałeś tę funkcję, :?
nie musisz pisać led_1_on(1); jeżeli flaga będzie miała teraz 1, to led_1_on(flaga);(program podstawi w miejsce flaga) jej wartość, czyli teraz 1.
a jeżeli flaga będzie miała akurat wartość 0. to program tę wartość weźmie pod uwagę i w to miejsce wstawi led_1_on(0);
czyli dla flagi =1 wykona pierwszą część funkcji led_1_on(flaga); -->> (led_1_on(1);)
a dla flagi=0, wykona drugą. led_1_on(flaga); -->> led_1_on(0);

// gdy flaga 1 włączy, gdy 0 wyłączy.
:) pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 22:58 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Dziękuje za wyjaśnienie :D if (flaga) flaga=0; else flaga=1; teraz zaczęło mi się to wszystko układać w jedną logiczną całość a teraz chciałbym wrócić jeszcze do funkcji którą sobie wymyśliłem :? to znaczy led_on ma zapalić diode i włączyć pompe a else miało wyłączyć diode i pompe a zamierzenie było następujące sondy mają wskazywać pziom wody zapalając kolejne didy a włączanie i wyłączanie pompy będzie można nastawić osobno klawiszami na przykład sonda1 sonda2 pompa włączona albo tylko sonda3 pompa włączona dlatego napisałem tę funkcję ;) ale teraz widzę że to nie tak ne wiem jak to wszystko powiązać w jedną całość przeglądam kody, BB żeby ruszyć z miejsca i nic proszę o jakąś podpowiedz .

Pozdrawam,



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2017, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

a zerknij na post z " 25 kwi 2017, o 18:12" :)post187864.html#p187864
spróbuj się na nim wzorować.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 17:12 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Dziękuje za podpowiedz teraz program działa zgodnie z założeniem :D ale chciałem zając się jeszcze przyciskami przeczytałem lekcje Mirka na temat /obsuga-klawiszy-drgania-stykow i sprubowałem to wykorzystać proszę o sprawdzenie kodu bo jakoś dziwnie przycisk reaguje jak sonda jest zanurzona to działa poprawnie a jak sondy są wynurzone to zaczyna się przycinać i nie wiem gdzie mam szukać przyczyny :?: czy w podłączeniu czy w kodzie .
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A tutaj próbowałem to samo wykorzystać w funkcji ale coś nie tak :(
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 17:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

jeżeli obsługę klawiszy masz zawartą wewnątrz : "if (sonda_stan( SON....." ,
podejrzewam że tak jest - ,
to obsługa klawiszy będzie od tego warunku bezpośrednio uzależniona. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 21:33 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

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

dwa sposoby obsługi klawisza klawisz_1 działa a z pozycji funkcji na pozostałych klawiszach bez wykorzystania delay_ms nie
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 21:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

za każdym razem gdy wchodzi w funkcję "sonda_stan..." , zatrzymuje cały program na pół sekundy. :?
tu może być problem. :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 23:23 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Myślę że pozostałe trzy przyciski zrobię tak jak klawisz_1 lub podciągnę sprzętowo zobaczę jak mi pójdzie z nauką , ale mam jeszcze jeden problem to znaczy przy zaniku zasilania i ponownym uruchomieniu trzeba na nowo ustawiać ustawiać klawiszami moment w którym pompa ma się uruchomić w jaki sposób uC może zapamiętać stan ustawienia załączania pompy.
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2017, o 09:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Można ustawienia zapisać np. w eeprom procesorka a po resecie ponownie załadować do do zmiennych.
Tak sobie myślę że dobry moment w Twoim rozrastającym się projekcie,
by zacząć zaprzęgać timery. :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2017, o 23:35 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

I tu masz 100% racji timerów i eeprom jeszcze nie ruszyłem więc najwyższy czas wrócić do BB i przyswoić ten temat dzięki za pomoc wracam do nauki.
Poz.



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