ATNEL tech-forum https://forum.atnel.pl/ |
|
[C++ avr ] liczenie stanów wysokich na TCCR2 https://forum.atnel.pl/topic24113.html |
Strona 1 z 1 |
Autor: | mark162 [ 18 sty 2022, o 18:04 ] |
Tytuł: | [C++ avr ] liczenie stanów wysokich na TCCR2 |
Próbuje na różne sposoby wypuscić określoną liczbę stanów wysokich, generowanych sprzętowo na timerze 2 |
Autor: | Makowka [ 18 sty 2022, o 19:15 ] |
Tytuł: | Re: [C++ avr ] liczenie stanów wysokich na TCCR2 |
Pętla while(iii>eee) nigdy się nie wykona, bo wartość delaya zawsze będzie większa od zera. To tak na szybko. Nie sprawdzam poprawności wpisów w rejestry, bo nie mam pod ręką noty. |
Autor: | mark162 [ 19 sty 2022, o 16:25 ] |
Tytuł: | Re: [C++ avr ] liczenie stanów wysokich na TCCR2 |
wpisy do rejestrów są dobre gdyż atmega daje pożądaną częstotliwość... Cytuj: Pętla while(iii>eee) nigdy się nie wykona, bo wartość delaya zawsze będzie większa od zera nie bardzo rozumie co masz na myśli mówiąc "delaya" ?? a czy taki zapis będzie dobry ?? język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. problem na pewno polega na tym że iii++ nie działa zawsze pokazuje 0. |
Autor: | mario2015 [ 19 sty 2022, o 18:24 ] |
Tytuł: | Re: [C++ avr ] liczenie stanów wysokich na TCCR2 |
Pętla język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. nigdy się nie wykona ponieważ po wejściu do funkcji ustawiasz zmienną iii na 0 i z tego tytułu iii nigdy nie będzie większe niż zmienna eee (uint8_t eee - zakres od 0 do 255). W tym przykładzie język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. masz to samo tzn. zmienna iii nigdy nie będzie większa od eee a zatem warunek znowu nie będzie nigdy spełniony ponieważ zawsze gdy wchodzisz do funkcji to ustawiasz zmienną iii na 0. Żeby pętla się wykonywała to sprubój tak: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. wtedy gdy jako argument funkcji eee podasz np: liczbę 100, to ta zmienna będzie dekrementowana aż do zera i pętla wykona się 100 razy. |
Autor: | mark162 [ 20 sty 2022, o 16:15 ] |
Tytuł: | Re: [C++ avr ] liczenie stanów wysokich na TCCR2 |
Pętla while i zmienna iii działa, ale problem dalej pozostaje na oscyloskopie widzę że atmega nie daje tyle okresów co mu wpisze w programie (na 20 zadanych daje 5-6). Nie mam pomysłu jak by to rozwiązać. język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Próbowałem dołączyć przerwanie ctc do liczenia ale nie wiem dlaczego wykonuje się dużo wolniej. |
Autor: | mark162 [ 20 sty 2022, o 18:38 ] |
Tytuł: | Re: [C++ avr ] liczenie stanów wysokich na TCCR2 |
przychodzi mi pomysł zastosowanie rozwiązania z enkodera kodu Graya język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Nie zdążę go dzisiaj sprawdzić i przerobić na zapis bitowy... Może ktoś ma inny lepszy pomysł na rozwiązanie?? |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |