Bascom mimo, że uważany za narzędzie nieprofesjonalne nie jest taki zły. Pisze w nim programy po kilkanaście.. kilkadziesiąt tysięcy linii kodu i jestem ogólnie zadowolony. Za niewielkie pieniądze mamy narzędzie do pracy ze wsparciem. Tam gdzie nie domaga wstawiam asm i do przodu...
Zamysłem moim było generowanie na pinach OC1A i OC1B przebiegów konkretnej częstotliwości o wypełnieniu 50% nie PWM. Opisywanym smaczkiem jest to że ważne jest aby te przebiegi były identyczne (czytaj zgodne w fazie czyli jak na Jedym jedynka to na drugim też jedynka)
Z tego wynika że:
- Praca w trybie Timer (config = timer )
- Praca w trybie Compare Toggle (compare = toggle)
- Praca w trybie CTC (clear_timer = 1)
Jak ktoś słusznie zauważył w składni bascoma jest wpisany config nie na timer a na counter. Jest to składnia przepisana z helpu bascoma. Przetestowałem również składnię:
Zaloguj się, aby zobaczyć kod
I generalnie niewiele to zmienia. Obydwie składnie działają tak samo. Czyli obydwie generują przebieg o identycznej częstotliwości ale losowym początku.
Przed konfiguracją timera i rozpoczęciem generowania przebiegu ustwiam już obydwa porty na ten sam poziom. (mimo że katalog twierdzi że nie ma to znaczenia bo ja przełącza się wyjścia w tryb compare to rejestr port nie ma wpływu na piny OC1nX.)
Znalazłem w katalogu wzmianke że istnieją fity FOCA i FOCB odpowiednio TCCR1C.7 i TCCR1C.6 służące do wymuszania stanu początkowego wyjścia. Niestety wzmianka jest lakoniczna i nie ma konkretnego przepisu jak nich korzystać. Czy zapisywać stan bezpośrednio czy sprawdzać stan i w razie potrzeby zmieniać stan na przeciwny zapisując jedynkę.
Moje próby zabawy tymi bitami nie doprowadziły do sensownego rozwiązania tzn.
Ta sama składnia wymuszana co jakiś czas w programie powoduje inna reakcję na pinach OC1A/B.
Aktulnie kod:
Zaloguj się, aby zobaczyć kod
Gneruje raz po raz takie np przebiegi... (wybrałem co ciekawsze zgodne niezgode i wogóle z jakimś syfem na początku, niewielkie echa pomiedzy przebiegami wynikają z tego że nóżki spięte są rezystorem)
DS1Z_Qucik..nt6.png Download (35.15 kB)
DS1Z_Qucik..nt5.png Download (34.58 kB)
DS1Z_Qucik..nt7.png Download (34.41 kB)