Dzień dobry,
Mam odbiornik podczerwieni TSSP4038 (http://www.vishay.com/docs/82458/tssp4038.pdf) który ma zastosowanie w barierach podczerwieni. Sygnał 38kHz nadaję diodą IR za pomocą wyjścia cyfrowego w taki sposób:
1 000 000 (sekunda w mikrosekundach) / 38 000 (kHz) = ~26 mikrosekund / 2 = ~13 mikrosekund pojedynczy stan.
Powiedzmy, że przy tym kodzie całość w pętli wykonuje się co 1-2 mikrosekundę. W przypadku nadawania sygnału 38kHz na wyjściu układu TSSP powinien pojawić się stan niski. Po przecięciu bariery pojawia się stan wysoki.
Na teście działania wychodzi mi przeplataniec tzn. raz otrzymuję wartość 1-5, przy następnym wykonaniu pętli dostaję już stan wysoki, później znów wysoki, później niski itd. Przykładowo przy kolejnych odczytach wejścia analogowego wygląda to następująco:
Wygląda to tak jakby kod nie generował ładnej częstotliwości 38kHz i układ TSSP "przerywał" barierę. Przy bardziej skomplikowanym kodzie ~1000 linii, pętla generująca 38kHz nie wykonuje się już co mikrosekundę, więc odczyt z TSSP jest jeszcze gorszy i zawiera więcej stanów wysokich. Moje pytanie w jaki sposób to obejść, ewentualnie gdzie leży problem, bo w sumie układ ma tolerancję pewnie z 10% jeśli chodzi o nadawany sygnał, więc powinien ładnie działać.
Mam odbiornik podczerwieni TSSP4038 (http://www.vishay.com/docs/82458/tssp4038.pdf) który ma zastosowanie w barierach podczerwieni. Sygnał 38kHz nadaję diodą IR za pomocą wyjścia cyfrowego w taki sposób:
1 000 000 (sekunda w mikrosekundach) / 38 000 (kHz) = ~26 mikrosekund / 2 = ~13 mikrosekund pojedynczy stan.
Kod: C / C++
Powiedzmy, że przy tym kodzie całość w pętli wykonuje się co 1-2 mikrosekundę. W przypadku nadawania sygnału 38kHz na wyjściu układu TSSP powinien pojawić się stan niski. Po przecięciu bariery pojawia się stan wysoki.
Na teście działania wychodzi mi przeplataniec tzn. raz otrzymuję wartość 1-5, przy następnym wykonaniu pętli dostaję już stan wysoki, później znów wysoki, później niski itd. Przykładowo przy kolejnych odczytach wejścia analogowego wygląda to następująco:
3
5
1
1021
1019
4
4
1
2
1023
1023
1023
1021
1021
Wygląda to tak jakby kod nie generował ładnej częstotliwości 38kHz i układ TSSP "przerywał" barierę. Przy bardziej skomplikowanym kodzie ~1000 linii, pętla generująca 38kHz nie wykonuje się już co mikrosekundę, więc odczyt z TSSP jest jeszcze gorszy i zawiera więcej stanów wysokich. Moje pytanie w jaki sposób to obejść, ewentualnie gdzie leży problem, bo w sumie układ ma tolerancję pewnie z 10% jeśli chodzi o nadawany sygnał, więc powinien ładnie działać.