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



Teraz jest 31 maja 2026, o 03:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 30 gru 2014, o 16:01 
Offline
Użytkownik

Dołączył(a): 22 paź 2014
Posty: 72
Pomógł: 0

Witam
Próbuję napisać program do pomiaru prądu, napięcia i temperatury. I udawało mi się do momentu, w którym podłączyłem drugi kanał ADC. Program ma wyświetlać odczyty co sekundę (temp. co 3) i nie robi tego poprawnie. Obie wartości ADC są takie same i zależą tylko od potencjometru podłączonego do kanału 5. Pomiar jest dokonywany na tym kanale jako pierwszy.
Próbowałem dawać jakieś opóźnienia ale to nie pomogło. Wydaje mi się, że problem tkwi w tym, że uC ma za mało czasu na wykonanie pomiaru i przełączenie się na drugi kanał.
Procesor to ATmega8, taktowana wew. rezonatorem 8MHz.

Z góry dziękuję za wszelką pomoc.

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: 30 gru 2014, o 16:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Z tego co zauważyłem to w pętli while funkcji show_adc ciągle
odblokowujesz ADC nie wiem czy to może być przyczyną
błędu ale spróbuj przenieść włączenia ADC do funkcji main
zaraz po ustawieniu rejestrów ADC.

O ile się nie mylę to wystarczy ADC włączyć tylko raz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2014, o 17:15 
Offline
Nowy

Dołączył(a): 27 gru 2014
Posty: 4
Lokalizacja: Oppeln
Pomógł: 1

Ja myślę, że błąd jest gdzieś indziej, a w sumie to w 3 miejscach na raz

Zombol napisał(a):
                              napiecie=( pomiar (5) );
                               
                                wynik_u=napiecie *25;
                                cz_d_u= wynik_u / 10000;
                                cz_u_u= wynik_u % 1000;
 
                              [...]
                               
                                prad=( pomiar (3) );
 
                                wynik_i=napiecie *25;
                                cz_d_i= wynik_i / 10000;
                                cz_u_i= wynik_i % 1000;
 
 


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2014, o 18:16 
Offline
Użytkownik

Dołączył(a): 22 paź 2014
Posty: 72
Pomógł: 0

No masakra ten mój błąd. A sprawdzałem czy nie zrobiłem literówki, bo bałem się przy tych zmiennych dla części dziesiętnej i ułamkowej :)
No cóż, najadłem się wstydu ;) Na drugi raz będę dokładniej sprawdzał :)

Wielkie dzięki za pomoc.



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

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