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



Teraz jest 23 mar 2026, o 07:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 14 gru 2015, o 16:33 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

Witam! Programuję koledze mini sterownik "Inteligętnych schodów" ich inteligecja ma polegać na tym że kiedy wchodzimy to czujnik ruchu PIR HC-SR501 uruchamia schody po kolei do góry a kiedy idziemy w dół to czujnik zamontowany na górze uruchamia światło na dół, wszystko proste do oprogramowania tylko mam pewien problem :( funkcje zapalające światło działają tylko raz a puźniej blokują program i nie wiem dla czego :cry:

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


Bardzo prosiłbym o sugestie z jakich powodów dzieją się te dziwne anomalie :)
Z góry dziękuje i życzę wesołych świąt :)

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

Tak teraz zauważyłem (po dodatkowych testach :) ) że funkcje UpDiodeOn() i UpDiodeOff() działają prawidłowo, problemy pojawiają się przy funkcjach DownDiodeOn() i DownDiodeOff()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2015, o 18:37 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

Po poprawce zaproponowanej przez pana Mirka wstawiłem nową wersję kodu, funkcje działają prawidłowo tylko w funkcjach DownDiodeOn() i DownDiodeOff() pętla for(sterowania zmienna n) wykonuje się jeden krok za mało i jedna dioda się nie zapala :( bardzo bym prosił o wskazówki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2015, o 20:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2012
Posty: 174
Lokalizacja: Gliwice
Pomógł: 19

Cześć,

to powoduje że n kończy się na 4
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zrób tak :

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


powinno zadziałać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2015, o 21:01 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

Dzięki za odpowiedź, ale to nie jest rozwiązanie mojego problemu :|
To co ty zaprezentowałeś pochodzi z funkcji UpDiodeOn i UpDiodeOff a one działają prawidłowo :)

Problem mam przy funkcjach DownDiodeOn i DownDiodeOff, już nie zapętlają programu ale ostatnia dioda się nie zapala reszta idzie jak powinno

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


tu wstawiam same funkcje i w oznaczonych miejscach prawdopodobne miejsca błędnych warunków (pętla robi za 1 obieg za mało)

Ale dziękuję za zainteresowanie użytkownika sz4t4n i życzę wesołych świąt :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2015, o 21:12 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

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

powinno działać. Problem był w tym, że na górze masz tablice pwm[5] czyli jest 5 pwmów od 0 do 4 a ty w pętli masz warunek n>0 więc n nigdy nie będzie miało wartość zero i zaczynasz liczyć od pięciu a piąty pwm ma indeks w tablicy pwm 4 a nie 5.



Ostatnio edytowano 15 gru 2015, o 13:27 przez Bartek123, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2015, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2012
Posty: 174
Lokalizacja: Gliwice
Pomógł: 19

Ja bym jednak zmienił to 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: 14 gru 2015, o 21:47 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Ile programistów tyle rozwiązań ;) . Zmiennej n (nie jestem pewien na 100%) trzeba na początku dać 4 nie pięć taka mała uwaga. ;)

PS: Poprawiłem kod który wstawiłem, bo dopiero w szkole zauważyłem, że jest zły.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2015, o 14:01 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

Rozwiązanie użytkownika Bartek123 już testowałem i powoduje ono zapętlenie programu :( tak samo jak w przypadku użytkownika sz4t4n

Na szybko rozwiązałem ten problem 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.


i działa prawidłowo tylko razi w oczy ten dodatkowy for ;)
mimo wszystko dziękuję za zainteresowanie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2015, o 20:57 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Nie wiem który testowałeś ten pierwszy mój czy drugi, bo pierwszy nie działa, spróbuj zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak nie działa to już nie mam pomysłu. Możesz spróbować jeszcze popatrzyć co się dzieje w programie na podstawie zapalenia diody i np warunku if i wtedy dowiesz się gdzie dokładnie leży problem. Sprawdziłem u siebie tę pętlę i mi dobrze działa(nie zapętla się). Sprawdziłem samą pętle a nie cały kod.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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