реклама на сайте
подробности

 
 
> Работа с Таймерами, Немогу с ними разобраться
SergeyM
сообщение May 15 2005, 06:17
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 1-05-05
Из: Снежинск
Пользователь №: 4 654



Народ помогите!
Как в асме работать с прерываниями и их обработкой для таймера. Если можно то ссылку, где есть комментарии. А лучше небольшой пример прям тут, чтобы можно было вопросы задать если что не понятно будет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
niksal
сообщение May 15 2005, 08:15
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 34
Регистрация: 2-10-04
Пользователь №: 760



Вот исходник с 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
Go to the top of the page
 
+Quote Post
yung
сообщение May 16 2005, 05:24
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



.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
Go to the top of the page
 
+Quote Post
nml
сообщение May 16 2005, 05:47
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Цитата(yung @ May 16 2005, 08:24)
timer0: ; прерывание от переполнения т/с0
  ; частота прерываний около 1 кГц (1 МГц/1024)
  push rin

  lds rin,c_time0
  inc rin 
*


А SREG кто сохранять будет, а? Команда INC флаги модифицирует!
Go to the top of the page
 
+Quote Post
LeoLabs
сообщение May 16 2005, 09:15
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082



Цитата(yung @ May 16 2005, 12:24)
.org 7  ;      адрес вектора смотри в datasheet на кристалл
rjmp timer0

*

?? адресация побайтовая или пословная?
при побайтовой - косяк нечетный.
Go to the top of the page
 
+Quote Post
yung
сообщение May 16 2005, 10:02
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Виноват насчет сохранения статуса, необходимо

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

Что касается адресации, то директива .org в данном случае работает с памятью программ - со словами. Побайтная адресация памяти программ вроде бы работает через регистры в команде LPM (в новых кристаллах команд больше, но сути это не меняет).
Go to the top of the page
 
+Quote Post
SergeyM
сообщение May 17 2005, 14:17
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 1-05-05
Из: Снежинск
Пользователь №: 4 654



Спасибо примерчики скачал, появятся вопросы то я спрошу :-)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016