Po pierwsze to bardzo proszę o to aby nie umieszczać kodów źródłowych całych bibliotek z książki / z płyty DVD
Pytanie powinno być bardziej skonkretyzowane że tak brzydko powiem a nie - wklejone całe kody i co ? oczekiwanie, że ktoś przerobi to tutaj pod m644p i udostępni ? Oj - nieładnie.
Pewnie, że m644p ma inne nazwy rejestrów oraz także nazwy bitów w tych rejestrach. Z czego to wynika ? Z tego panie kolego, że tu każdy Timer sprzętowy (zresztą nie tylko timer) ma o wiele więcej opcji niż w m32 a co za tym idzie producent nie zmieściłby się z bitami odpowiadającymi za te wszystkie dodatkowe opcje w tych kilku rejestrach jakie ma m38.
Stąd wprowadzono dodatkowe rejestry. Ale co za problem otworzyć sobie dwie noty PDF czyli od m32 i obok od m644p
wtedy wystarczy wykonywać z pełnym zrozumieniem ćwiczenie i porównywać gdzie znajdują się jakie rejestry. Np chcemy ustawić preskaler dla Timer0 - zaglądamy do PDF od m32 i widzimy, że bity preskalera CS02, CS01, CS00 znajdują się w rejestrze TCCR0A - więc jeśli mamy ustawić preskaler = 8 to wpisujemy dla m32 taką linię:
Kod:
TCCR0A |= (1<<CS01);
a teraz to samo czyli preskaler =8 chcemy ustawić a tu ? - O!!! zaglądamy do noty PDF a tam nie ma tych bitów w rejestrze TCCR0A - no to co mamy się poddać ? - dlaczego - patrzymy na kolejny rejestr O! teraz jest dodatkowo TCCR0B a w nim!!!! nasze ukochane bity CS02, CS01 oraz CS00 ... więc co za problem żeby wg tego co też pisałem w książce ustawić teraz preskaler dla tego procka tak:
Kod:
TCCR0B |= (1<<CS01);
Taka duża różnica ?
I analogicznie działamy z innymi bitami mając na uwadze to, że procku m32 gdy wybieraliśmy tryb to bity WGMxx którymi to robiliśmy były tylko w TCCR0A a w procku m644p są ale rozrzucone po dwóch rejestrach TCCR0A i TCCR01 więc co za problem w razie czego ustawić daną kombinację bitów w jednym albo w dwóch rejestrach ?
Podobnie z rejestrem przerwań, w m32 był tylko jeden TIMSK w którym były tak na prawdę opisane wszystkie przerwania wszystkich timerów a że większy procek m644p ma więcej opcji to by się nie zmieściły więc został utworzony dla każdego timera oddzielny rejestr TIMSKx, np TIMSK0 - tylko trzeba jeszcze zwrócić uwagę czy przypadkiem o jedną literkę nie zmieniły się nazwy samych bitów.....
to nie jest trudne, warto to robić i trenować - bo różnice programowania pomiędzy prockami polegają głównie na tym i tylko na tym. Więc chwila treningu i po kłopocie
No a jak nie możemy sobie poradzić nadal z jakąś drobnostką to proszę bardzo można tu zapytać ale o konkretny szczegół ? komunikat błędu ? o konkretne ustawienie? o konkretny rejestr ?
a nie wklejanie całych bibliotek OK ?
Nie wspomnę już o tym, że czasem warto przeszukać to może jeszcze niewielkie forum ale okazuje się, że już takie pytania dokładnie były - więc odpowiedź można było już znaleźć...http://forum.atnel.pl/topic19.htmlAle proszę zobaczyć jak było w ogóle pytanie zadane itd
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]