[BASCOM] histereza przy porównywaniu

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Nick_2
Użytkownik
Posty: 105
Rejestracja: 09 maja 2007, 8:11

[BASCOM] histereza przy porównywaniu

Post autor: Nick_2 » 07 mar 2014, 18:02

Koledzy pojawił sie kolejny problem z rozwiazaniem ktorego nie bardzo wiem jak sobie poradzic. Na dwa na dwa wejscia przetwornika ADC w procesorze Atmega 8 podaje napiecia z dwoch potencjometrów P1 i P1. Gdy napiecie na jednym z nich jest wyzsze od drugiego (P1>P2) ma zapalic sie dioda D1, gdy P2>P1 zapala sie dioda D2. To wszystko dziala bez problemu. Kiedy napiecia sa sobie równe obie diody powinny zgasnac. I tu pojawia sie wlasnie problem. Praktycznie nie ma takiej mozliwosci aby fizycznie zrównac oba te potencjały. Niezbedne jest ustawienie histerezy tylko jak to zrobic? Moze ktos ma jakis pomysl jak programowo ustawic taka histereze?

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 07 mar 2014, 19:37

Nie histereza, bardziej tu pasuje określenie martwa strefa.

Spróbuj odjąć od siebie oba pomiary i analizować wynik. Niech LED1 świeci gdy wynik jest powyżej 50, a LED2 świeci gdy wynik jest poniżej -50. Gdy wynik znajdzie się w środku przedziału, obie diody zgasną.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 07 mar 2014, 20:02


Nick_2
Użytkownik
Posty: 105
Rejestracja: 09 maja 2007, 8:11

Post autor: Nick_2 » 08 mar 2014, 10:18

zastosowałem wskazowke która podał Ertew i faktycznie wszystko działa, zakres jest dla mnie wystrczajacy.
Jeszcze jedno pytanie odnosnie PWM. Wykorzystuje dwawyjscia PWM (rejestry pwm1a i pwm1b) do sterowania pracu polmostkiem w okreslona strone w zaleznosci od polozenia potencjometru dolaczonego do wejscia przetwornika ADC(0). Wartosc odczytana z przetwornika wpisuje wprost do rejestru pwm1a i pwm1b. Tu wszystko działa. Problem w tym ze co jakis czas musze wymusic na tych wyjsciach wylaczenie PWM tak zrby mostek nie dzialal. Pytanie brzmi jak to zrobic? Probowalem roznych metod ale nie dzialaja

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 10 mar 2014, 20:39

matrix, dzięki za film. Dowiedziałem się kilku ciekawych rzeczy, a oglądanie jak profesjonalista idzie na żywioł bardzo poprawiło mi humor.



Nick_2, masz 2 opcje.
- możesz na pinach ustawić odpowiednie stany i zwyczajnie wyłączać PWM. Włączony PWM powoduje że stan pinu zależy od logiki PWM, jego wyłączenie spowoduje że na pinie pojawi się stan podany w rejestrze 'PortX'.
- możesz mieć PWM cały czas włączone i ustawić w obu wartość 0 (względnie max: 255, 511, 1023 itd) tak żeby na obu wyjściach ustawić żądany stan logiczny.

ODPOWIEDZ