piotreks-89 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Zdecydowanie za słabo osłonięte te diody. Jak pisał KD93, jak ich dobrze nie osłonisz to będą "wredne"
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Może na takie wyglądają ale na tych termokurczkach jest 6 warstw paśmy izolacyjnej.
piotreks-89 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 No to rzeczywiście niemało. Nachodzi mnie jednak pytanie, dlaczego tylko przednie diody IR są osłonięte? Ja osłoniłbym wszystkie
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Osłoniłem tylko je ponieważ korzystałem tylko z jednej, a drugą niechcący osłoniłem na początku... poza tym nie będą osłonięte tak ostatecznie.
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 No dobra znalazłem tabelkę, i te rejestry tylko zupełnie nie wiem gdzie wpisać te wartości... Do rejestru Rejestry m16 ma 8-bitowe, czyli 8 cyferek, ty się interesujesz rejestrami timera 1, czyli TCCR1A i TCCR1B. W opisie rejestru masz nazwy poszczególnych bitów, patrzysz na nazwę bitu, szukasz go w tabelkach niżej, sprawdzasz jak powinieneś go ustawić i tak go wpisujesz do rejestru. Robiłeś to tutaj: Tccr1a = &B10111111 Mógłbym Ci oczywiście podać gotowca, ale nie zrobię tego, ponieważ dopóki nie zrozumiesz na jakiej zasadzie działają rejestry i jak je konfigurować, to nie pójdziesz dalej, a co najgorsze C zawsze będzie dla Ciebie czarną magią. Jeśli coś źle zrozumiesz i ustawisz to nic nie szkodzi, wytłumaczymy ci jak powinno być i dlaczego, ale musimy wiedzieć że ustawiłeś to według jakiegoś swojego myślenia, a nie spisałeś albo ustawiłeś "na pałę".
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Mógłbym Ci oczywiście podać gotowca, ale nie zrobię tego, ponieważ dopóki nie zrozumiesz na jakiej zasadzie działają rejestry i jak je konfigurować, to nie pójdziesz dalej, a co najgorsze C zawsze będzie dla Ciebie czarną magią. Ja nawet nie chce gotowca- rozumiem i doceniam Wasze starania o wzbogacenie mnie w nową wiedzę Jeszcze tylko nie rozumiem w jakiej kolejności mam wpisywać te rejestry ? Tak jak pisałeś patrzeć na opis rejestru i po kolei wpisywać? [ Dodano: 15-04-2012, 16:57 ] Tccr1a = &B01010000 może coś takiego opierałem się na tabelkach ze strony http://impuls.elektroda.eu/joomla/index.php?option=com_content&view=article&id=58&Itemid=135
piotreks-89 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Każdy rejestr zawiera bity "najstarsze" i "najmłodsze". Liczy się to w kolejności takiej: bit najbardziej po lewej - najstarszy, ten najbardziej po prawej - najmłodszy Jednym zdaniem - numerujesz od prawej do lewej.
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 No to tak: COM1A1 i COM1A2 ustawione kolejno 0 i 1, czyli OC1A przełączne przy zrównaniu, jest dobrze COM1B1 i COM1B2 ustawiłeś tak samo, a chcesz przecież żeby działało jako normalne I/O (nie generowało nośnej) - zajrzyj do tabelki i zobacz czemu musisz ustawić 0 0. FOC1A ustaw na 1, żeby wymusić zdarzenie na OC1A. WGM ma 4 bity, dwa są w rejestrze TCCR1A, a dwa następne w TCCR1B, nie zapomnij o tym. Teraz musisz ustawić drugi rejestr dla timera1, TCCR1B. 1
klonyyy Kwiecień 16, 2012 Autor tematu Udostępnij Kwiecień 16, 2012 Dzięki, właśnie nie byłem pewien co do foc1a, i to wgm sprawiało mi problemy - muszę patrzeć na ustawienie tego przy ctc ? Tccr1a = &B01001100 Tccr1b = &B10001110 poprawiłem i dodałem tccr1b - nie jestem pewien co do ostatnich trzech bitów które ustawiłem "wyzwalanie zboczem opadającym" i nie wiem co w tabelce znaczy "-" 0 czy 1.
KD93 Kwiecień 16, 2012 Udostępnij Kwiecień 16, 2012 Zboczem opadającym, ale przy "External clock source on T1 pin", czyli zewnętrznym źródłem zegarowym. Tu po prostu ustawiasz preskaler timera, tam jak przy polecniu Config Timer, ustawiając prescaler musisz wziąć pod uwagę wartość, która będziesz wpisywał do rejestru żeby uzyskać 36kHz. Na pewno nie wykroczysz, bo ten timer jest 16 bitowy, więc ustaw prescaler na 1. Co do bitu 7 rejestru TCCR1B, to służy on do redukcji szumów na pinie ICP1, jeśli używasz wewnętrznego sygnału dla przerwań, ale nie używasz więc ustaw na 0. Trochę wprowadziłem Cię w błąd z tym FOC, otóż on służy do zrównywania wartości licznika w dowolnym momencie, nie będziesz tego robił więc poustawiaj na 0. Timer1 jest 16-bitowy i bardziej pokomplikowany od 8-bitowców, jak widać sam się w nim zaczynam gubić [ Dodano: 16-04-2012, 16:36 ] PS, nie dawaj mi punktów za pomoc przy każdym poście, raz wystarczy, a na dodatek jeszcze w niczym Ci nie pomogłem.
klonyyy Kwiecień 16, 2012 Autor tematu Udostępnij Kwiecień 16, 2012 Coś takiego ? : Tccr1a = &B01000000 Tccr1b = &B00111001
KD93 Kwiecień 16, 2012 Udostępnij Kwiecień 16, 2012 No jeszcze tylko tyle, że 5 bit rejestru TCCR1B to krecha z tego co widzę, więc jest on zarezerwowany i nie możesz go ustawić. Pamiętaj, że ustawiłeś zliczanie do wartości rejestru ICR1B, więc tam musisz wpisać wartość maksymalną.
klonyyy Kwiecień 16, 2012 Autor tematu Udostępnij Kwiecień 16, 2012 No to co mam zrobić z tą kreską jeśli nie jest zerem ani jedynką ? A wartość maksymalną mam jakoś w rejestrach ustawić czy poza nimi ?
dondu Kwiecień 16, 2012 Udostępnij Kwiecień 16, 2012 Pokaż swój aktualny kod i komunikaty kompilacji.
KD93 Kwiecień 16, 2012 Udostępnij Kwiecień 16, 2012 klonyyy, jest zarezerwowany, domyślnie jest 0 i tak zostawiasz, to jest napisane w dokumentacji. [ Dodano: 16-04-2012, 22:54 ] A wartość max ustawiasz z działania taktowanie/preskaler/(częstotliwość*2).
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »