Skocz do zawartości

Minisumo Haker2- worklog


Pomocna odpowiedź

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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łę".

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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ą.

Link do komentarza
Share on other sites

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).

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.