спасибо, но не совсем понял (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Misha190E 10 февраля 2005 г. 23:53
В ответ на: Ответ: отправлено колян безпарольный 10 февраля 2005 г. 23:34

по пункту 1 - понятно,
во втором случае вопрос такой - в какой момент TCNT0 перейдет из состояния 255 в 0, и когда этот "флаг переполнения" выставится?
т.е. как я понял перед считыванием таймера, нужно остановить его, потом посмотреть флаг переполнения, если он есть (то и TCNT0 по идее уже в 0 перейдет?) то увеличить старший байт и сохранить оба байта. Если флага нет, то тупо сохранить оба байта виртуально таймера.
так?

а ишо, как в в С, используя асмовские инструкции обращаться к переменным С?
т.е. есть у меня глобальная переменная
unsigned char Time_H; // страший байт счетчика
unsigned char Time_L; // младший байт счетчика

и где в процедуре любой нуна сделать так:
asm(
" sub r27, Time_L \n" // remainder = remainder - divisor
" sbc r28, Time_H \n"
" nop " );

сейчас я вместо Time_L и Time_H пишу g0, g1 и другое, т.е. компилю текст, смотрю куда компилятор засунул эти переменные и потом переправляю код, но это жутко неудобно, т.к. он их тусует все время по разным регистрам (непонятно зачем - я оптимизацию отрубил)... как бы мне ссылаться на эти переменные?
ImageCraft C (ICCtiny)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru