Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с Таймерами
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
SergeyM
Народ помогите!
Как в асме работать с прерываниями и их обработкой для таймера. Если можно то ссылку, где есть комментарии. А лучше небольшой пример прям тут, чтобы можно было вопросы задать если что не понятно будет.
niksal
Вот исходник с timer 0 overflow:
http://www.ustr.net/avrfiles/avr304.asm

А вот исходник Timer/Counter1 Compare:
http://www.avr-asm-tutorial.net/avr_en/source/Lcd4IncCE.asm

А вообще посмотрите сами тут:
http://www.google.com/search?hl=en&lr=&saf...+interrupt+reti
yung
.device at90s8515
.include "8515def.inc"
.include "ind.inc"

.org 0
rjmp start

.org 7 ; адрес вектора смотри в datasheet на кристалл
rjmp timer0

start: ........... ; основной кусок, в т.ч. инициализация стека,
; таймера и разрешение прерываний
...........

timer0: ; прерывание от переполнения т/с0
; частота прерываний около 1 кГц (1 МГц/1024)
push rin

lds rin,c_time0
inc rin
sbrc rin,6
ldi rin,0b01000000 ; увеличить программный счетчик
sts c_time0,rin ; числа переполнений
pop rin
reti
nml
Цитата(yung @ May 16 2005, 08:24)
timer0: ; прерывание от переполнения т/с0
  ; частота прерываний около 1 кГц (1 МГц/1024)
  push rin

  lds rin,c_time0
  inc rin 
*


А SREG кто сохранять будет, а? Команда INC флаги модифицирует!
LeoLabs
Цитата(yung @ May 16 2005, 12:24)
.org 7  ;      адрес вектора смотри в datasheet на кристалл
rjmp timer0

*

?? адресация побайтовая или пословная?
при побайтовой - косяк нечетный.
yung
Виноват насчет сохранения статуса, необходимо

push rin
in rin,SREG
push rin
.................
.................
pop rin
out SREG,rin
pop rin
reti

Что касается адресации, то директива .org в данном случае работает с памятью программ - со словами. Побайтная адресация памяти программ вроде бы работает через регистры в команде LPM (в новых кристаллах команд больше, но сути это не меняет).
SergeyM
Спасибо примерчики скачал, появятся вопросы то я спрошу :-)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.