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



Teraz jest 30 wrz 2025, o 10:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 13 kwi 2016, o 18:20 
Offline
Nowy

Dołączył(a): 03 kwi 2016
Posty: 23
Pomógł: 0

Witam, to mój drugi temat na tym forum. Mam problem z pewnym zagadnieniem. Mam napisać kod realizujący następującą funkcję: pomiar napięcia za pomocą ADC mikrokontrolera (ATmega32), oraz regulacja wypełnienia (PWM) diody przy pomocy tegoż napięcia. Wymyśliłem iż będę przypisywał wartość rejestru ADCH do OCR0 i tutaj pojawia się problem. Czy mogę tak po prostu przypisać wartość, czy potrzebna jest operacja zmiany wartości bitowej na dziesiętna rejestru ADCH i dopiero później przypisanie jej do OCR0? Poniżej znajduje się kod programu. Proszę o porady.

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: 13 kwi 2016, o 19:02 
Offline
Użytkownik
Avatar użytkownika

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

Witaj
Wartość w ADCH jak i W OCR0 jest binarna, rejestr to jest pamięć cyfrowa, i ona liczbę tylko w postaci binarnej jest w stanie przechowywać. Możesz normalnie przypisać te wartość.
Musi działać.

Inną sprawą jest tryb pracy przetwornika ADC czy to ma być pomiar jednorazowy czy freerunnig mode. Czy chcesz korzystać z przerwania itd.
Konwersja napięcia w ADC trochę trwa. ADC potrafi generować przerwanie gdy zakończy konwersję. Ale to już inne zagadnienie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2016, o 19:13 
Offline
Nowy

Dołączył(a): 03 kwi 2016
Posty: 23
Pomógł: 0

Jest to pomiar na żądanie, ustawiam odpowiednią wartość w rejestrze (bit ADSC). Wiem, że można robić to w przerwaniach, narazie chciałbym jednak ogarnąć podstawy :). Podsumowując mogę wstawić w pętli while następujący kod? Mam nadzieję, że nie robię zbrodni :).

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: 13 kwi 2016, o 19:21 
Offline
Użytkownik
Avatar użytkownika

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

Tak, jak najbardziej możesz tak zrobić. W końcu to są też zmienne :)
Oczywiście później musisz znowu odpalić kolejny pomiar.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2016, o 19:39 
Offline
Nowy

Dołączył(a): 03 kwi 2016
Posty: 23
Pomógł: 0

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] 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