ATtiny2313 a nadawanie IR
ATtiny2313 a nadawanie IR
Cześć
Ostatnio chciałem zrobić sobie pilota RC5 współpracującego z PClot'em (EdW6/06), bo wnerwiał mnie pilot od TV.
Tylko, że ATtiny2313 nie chce nic nadawać! Odbiornik IR 38kHz reaguje, ale komputer już nie.
Kiedy podłączyłem diodę pod płytkę testową z ATmega8 to szło pięknie. Ale co z ATtiny2313? Układ na płytce prototypowej też nie chciał z nim pracować. Oprogramowanie pisałem w Bascom, z książką M. Wiązani "Programowanie µC w języku Bascom". Montaż jest poprawny, co robić?
Ostatnio chciałem zrobić sobie pilota RC5 współpracującego z PClot'em (EdW6/06), bo wnerwiał mnie pilot od TV.
Tylko, że ATtiny2313 nie chce nic nadawać! Odbiornik IR 38kHz reaguje, ale komputer już nie.
Kiedy podłączyłem diodę pod płytkę testową z ATmega8 to szło pięknie. Ale co z ATtiny2313? Układ na płytce prototypowej też nie chciał z nim pracować. Oprogramowanie pisałem w Bascom, z książką M. Wiązani "Programowanie µC w języku Bascom". Montaż jest poprawny, co robić?
Ale jak zaprogramowałem ATmegę, to żadnych fusebitów nie ustawiałem a działało. Poza tym jak w Bascomie się fusy ustawia?
Każdy proc był taktowany 8MHz, wszystko określiłem w programie łącznie z parametrem
A dla ATmegi8:
Sprawdzałem kilka egzemplarzy ATtinów i żaden był władcy nie posłuszny...
Każdy proc był taktowany 8MHz, wszystko określiłem w programie łącznie z parametrem
Kod: Zaznacz cały
$regfile = "2313def.datKod: Zaznacz cały
$regfile = "m8def.dat"Jak chcesz taktować attiny zegarem 8MHz to musisz w fusach wyłączyć CKDIV8 bo domyślnie jest 1MHz. Swoją drogą skoro w atmedze nie ruszałeś fusów to też masz 1MHz. Zresztą dziwne, nic nie ruszałeś w fusach i ci atmega działała która ma domyślnie włączonego Watchdoga (nie wiem czy w kodzie go kasujesz) a attiny2313 nie ma więc raczej atmega nie powinna działać a attiny tak.
W okienku programowania masz zakładke "Lock and Fuse bits" no to tam sie ustawia.. Ale z tymi fusebitami to ostroznie..
A trzeba tez ustawic w fusach taki kwarc zeby był taki sam jak w programie.. Attiny ma chyba dzielnik przez 8 ustawiony..
Ostatnio zmieniony 19 sie 2008, 9:30 przez grysek67, łącznie zmieniany 1 raz.
Dopóki nie ustawisz w procesorze że ma korzystać z takiego RC lub z zewnętrznego kwarca poprzez zmianę fusebitów, to deklarowanie w programie nic nie da a w zasadzie to pewnie da skutek odwrotny do zamierzonego. Także jak masz nieruszane fusy to zadeklaruj w programie $crystal = 1000000Co do kwarca, to oznaczyłem na początku programu $crystal = 8000000
Jeżeli nic w procesorze nie przestawiałeś za pomocą fusów to nie ma sensu dołączać kwarcu bo po prostu nie będzie procesor z niego korzystał. Na RC też będzie pracował, poprawnie powinien pod warunkiem że prawidłowo w kodzie ustawisz częstotliwość zegara i czasy się będą zgadzać. W każdym razie deklarowanie częstotliwości 8MHz i dołączanie kwarcu bez przestawienia fusebitów na taki zegar mija się z celem bo nie będzie z tego korzystał. Proponuję poczytać podstawy dotyczące programowania procesorów a nie tylko wklepywać kod w Bascomie bez zrozumienia jak działa procek i co trzeba poustawiać w różnych sytuacjach 