Ничего не понимаю: 1. генерю проект с помощью визарда в CVAVR, ставлю контроллер AtMega16, частоту 1М, использую таймер 0 и для него прерывание по переполнению. Компилю, иду в VMLAB - там запускаю - в окне для дампа памяти таймер счетчик считает, прерывания происходят.
2. Делаю тоже самое для AtMega168 - никаких движений не происходит - ни таймер не считает, ни прерываний, соответственно, не происходит.
Руками ничего не правил, ничего не ставлял, только код, сделанный визардом.
Только проект для VMLAB ручками писал ( отличается для разных контроллеров маркой контроллера и именами файлов ).
; Micro + software running ; ------------------------------------------------------------ .MICRO "ATmega168" .TOOLCHAIN "GENERIC" .TARGET "z62.hex" ; Generated externally .COFF "z62.cof" ; " " .SOURCE "z62__.c" ; CodeVision adds a '__' to the filename
.TRACE ; Activate micro trace
; Following lines are optional; if not included ; exactly these values are taken by default ; ------------------------------------------------------------ .POWER VDD=5 VSS=0 ; Power nodes .CLOCK 1meg ; Micro clock .STORE 250m ; Trace (micro+signals) storage time
X1 TTY(57600 8) PD0 PD1
.plot V(PD0) v(PD1) ; --- --- --- ---------------- --------------- Xdisp LCD(16 2 250K) PA0 PA1 PA2 PA7 PA6 PA5 PA4 nc3 nc2 nc1 nc0
Как заставить 168 мегу считать?
И еще в даташите на иписании регистров таймера есть 2 цифры адреса, одна из них в скобках - как это понимать?
|