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



Teraz jest 15 sty 2025, o 00:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 20 lip 2014, o 22:43 
Offline
Użytkownik

Dołączył(a): 06 lip 2014
Posty: 131
Pomógł: 0

Witam proszę o pomoc chciałem zrobić taki prosty woltomierz ma to działać tak że jak napięcie wzrośnie o 0,5 volta to zapali się dioda jeśli napięcie wzrośnie o kolejne 0,5 volta to zapali sie kolejna dioda i tak dalej. W tej chwili nie jest ważne żeby co 0,5 volta zapalała się kolejna dioda bo nie przeliczałem tej wartości ADC na napięcie chciałem najpierw żeby to zadziałało i w tych ifach te wartości ADC ustawiłem tak po prostu żeby coś było ale nic nie działa diody są ciągle zgaszone pewnie w ogóle nie można zrobić tak jak ja to zrobiłem że do ifa jako warunek dałem rejestr ADCW. A może tą wartość z rejestru ADCW skopiować jakoś do zmiennej i tą zmienną podać do ifa?


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: 20 lip 2014, o 23:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

topic7026.html proszę powinno cie zainspirować do działania

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2014, o 00:35 
Offline
Użytkownik

Dołączył(a): 06 lip 2014
Posty: 131
Pomógł: 0

sorry ale po przeanalizowaniu tego dalej nie wiem jak to zrobić proszę o dalszą pomoc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2014, o 01:10 
Offline
Użytkownik
Avatar użytkownika

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

Nie ustawiłeś kanału ADC na którym robisz pomiar.
Jest taki rejestr ADMUX, sterujący multiplekserem ADC. MCU ma kilka kanałów ale prztwornik tylko jeden, dlatego jest potrzebny MUX i trzeba temu MUXowi pokazać który kanał ma dołączyć przy pomiarze.

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


Czyli Twoja funkcja pomiar nie może mieć argumentu typu void tylko powinieneś do niej przekazać numer kanału ADC.
Tzn w sumie może mieć void, ale wtedy na stałe musisz ten kanał ustawić.
Lepiej jest zrobić tak (literalnie z poradnika Mirka):

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


------------------------ [ Dodano po: 3 minutach ]

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


Ale tamten sposób jest w moim odczuciu wygodniejszy, bo łatwiej zmienić kanał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2014, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

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

Niepotrzebnie dałeś tam bitowe or |.

W funkcji init_pin() do wszystkich bitów portu C zapisujesz jedynki. A potem w warunkach robisz np. 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.
czyli
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 w PORTC są same jedynki to co będzie wynikiem takiej operacji
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście 0b11111111 czyli wszystkie diody wyłączone.

Najprościej będzie usunąć bitowe or z tych warunków. I wtedy program będzie działać. Ja bym dodał jeszcze jeden warunek wyłączający pierwszą diodę gdy ADCW jest mniejsze od 200. Bez tego dioda raz włączona już się nie wyłączy nawet jak pomiar ADC będzie wynosił zero.

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

Reszta programu bez zmian.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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