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



Teraz jest 24 gru 2025, o 12:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 5 gru 2016, o 12:39 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Witam , chciałem poprosić o pomoc, rzecz być może jest dla Was banałem , ale ja dziś mam coś nie tak z mysleniem i tak wgl to dopiero zaczałem się uczyć c. No więc, mam 2 zmienne, które zliczają mi minuty oraz sekundy --> l_pom, l_sek.

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


Zmienna l_sek wykorzystuje do innych celów, natomiast l_pom chciałem wykorzystać do wpisywania elementów do tablicy co minute, no i w pętli głównej zrobiłem sobie takie brzydkie cos.

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


Tam gdzie zaznaczyłem strzałka to zrobiłem tak, bo wydawało mi się ze ta zmienna l_pom będzie sobie co minute smigać po wartościach od 1-9 (10 elementowa tablica), no a tam gdzie zaznaczyłem gwiazdką , to wydawało mi się ze w zależnosci od numeru licznika, do elementu o takim numerze będzie wpisywała się wartośc pomiaru. W tym samym czasie gdy zmienna l_pom++, wykonuje mi się pomiar na ADC. Poprostu chciałem aby pomiar nie był ciąły tylko wszystko odbywało się co minutę, natomiast z tych elemtnów wpisanych do tablicy chciałem wyliczać na dodatek srednią.

Wszystko wyswietlam na lcd , l_pom zmienia się tak jak chciałem , natomiast ta srednia to napewno nie jest srednia ponieważ wychodzi troche za wysoka. To co napisałem to jest sknocone, ze tak powiem , dlatego chciałem was prosićo pomoc. Jak mniej wiecej to powinno wyglądać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2016, o 13:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 237
Lokalizacja: Rzeszów
Pomógł: 11

Zerujesz gdzieś to sr1 ? Jeśli nie, to będzie się dodawać, aż się zakres nie przekręci.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2016, o 14:23 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

A ogólnie idę w dobrą strone?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2016, o 15:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Tak napisał APAP75 musiasz po obliczeniu średniej wyzerować zmienną sr1, bo inaczej cały czas będzie zwiększać i średnią poprawną będziesz miał tylko po pierwszym obiegu pętli.
Poza tym to można zrobić bez tablicy.
np.

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


Jeśli wartość ADC nie przekracza 1023 to suma 10 pomiarów zmieści się w zmiennej 16 bitowej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2016, o 19:45 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Dziekuje Panom za podpowiedzi, ale kurcze chciałbym zeb to było na tablicy. Wydaje mi się jednak ze jak będe zerował srednią to przy odbieraniu pomiaru co minutę , to srednia przy 10 elementowej tablicy będzie liczona dopiero co 10 minut. Dobrze to rozumiem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2016, o 19:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Zmienna sr1 ma być wyzerowana zaraz po obliczeniu średniej, wartość średniej możesz sobie skopiować, wyświetlić itd.
Możesz ją wyświetlać w ciągu napełniania się tablicy. Chodzi tylko o to, że za każdym razem, po obliczeniu średniej powinna być wyzerowana.

Polecam Ci obejrzeć odcinek poradnika Mirka o cyfrowym fitrze dolnoprzepustowym, znaduje sie w serii poradników o ADC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2016, o 11:06 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Jak tylko wrócę do domu to obejrzę. W części 4b jest pokazane bardzo fajne uśrednianie na tablicy, natomiast odbywa się ono przy pomiarze ciągłym. Ja natomiast sam pomiar adc aktywuje w określonej sekundzie i trwa 1 sekundę. I chciałbym, aby wynik tego pomiaru wskoczył do danego elementu tablicy, który również zmienia się wraz z kolejnym pomiarem.

Problem jest jednak w tym, że tak jak pokazałem to wyżej ( pewnie jest to nie elegancko), ale jako indeks tablicy wrzuciłem sobie zmienną l_pom ( licznik od timera) . No i gdy uruchamiam program to pierwszy pomiar wykonuje si, już gdy l_pom=1, a przecież pierwszy indeks tablicy powinien być 0 .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2016, o 11:43 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Przyznaję nie czytałem kodu, ale jeśli tak jest to jaki problem zrobić
l_pom ( (licznik_od_timera - 1) )

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2016, o 11:53 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Też o tym myślałem , ale zmienną licznik_od_timera zeruję, czyli wędruję sobie ona od 0 do takiej wartości jaki ma być rozmiar tablicy. No i pewnie by to nie działało w momencie gdy wartość licznik_od_timera ==0.

------------------------ [ Dodano po: 28 minutach ]

A mam jeszcze takie pytanko, dlaczego licznik sekund na timerze przeskakuje, tzn. omija czasem sekundy :) czy ma to związek z ustawieniami timera?



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 1 gość


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