|
прерывание от таймера меги16 |
|
|
|
Dec 16 2007, 15:12
|
Группа: Новичок
Сообщений: 12
Регистрация: 28-10-07
Пользователь №: 31 824

|
Подскажите в чем проблема, не наблюдаеться перехода на обработку прерывания т/с0 по совпадению, хотя TIFR флаг появляеться: .include "m16def.inc"
rjmp reset nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop rjmp TAMER0_COMP
reset: clr r16 ldi r16,low(RAMEND); out spl,r16; ldi r16,high(RAMEND); out sph,r16; ldi r16,255; out DDRA,r16; ldi r16,0; out PORTA,r16; ;;;;конфигурирование таймера sei ldi r16,9 out OCR0,r16 ldi r16,2;прерыв по совпад out TIMSK,r16 ldi r16,9;по совпадению, вн генер 1Мгц out TCCR0,r16 ;;;задержка delay: ldi r19,20; delay1: ldi r17,100; delay2: ldi r18,20; delay3: dec r18; brne delay3; dec r17; brne delay2; dec r19; brne delay1;
TAMER0_COMP: ldi r16,255; out PORTA,r16;
|
|
|
|
|
 |
Ответов
|
Dec 16 2007, 19:36
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(wert123 @ Dec 16 2007, 19:12)  Подскажите в чем проблема, не наблюдаеться перехода на обработку прерывания т/с0 по совпадению, хотя TIFR флаг появляеться: .include "m16def.inc"
rjmp reset nop Так таблица прерваний делается только для меги8\48\88\8515\8535 и тинек ,для меги16 каждый вектор идет в четыре байта ,тоесть заместь rjmp reset идет jmp reset , команда nop имеет размер 2 байта и если хотите заполнить вектора nop-ами ,нужно указавать по два nop на каждый вектор. Можно еще так  .org 0 jmp reset .org 0x26 jmp Compare_T0
|
|
|
|
|
Dec 17 2007, 10:57
|
Группа: Новичок
Сообщений: 12
Регистрация: 28-10-07
Пользователь №: 31 824

|
Цитата(bodja74 @ Dec 16 2007, 23:36)  Так таблица прерваний делается только для меги8\48\88\8515\8535 и тинек ,для меги16 каждый вектор идет в четыре байта ,тоесть заместь rjmp reset идет jmp reset , команда nop имеет размер 2 байта и если хотите заполнить вектора nop-ами ,нужно указавать по два nop на каждый вектор. Можно еще так  .org 0 jmp reset .org 0x26 jmp Compare_T0 Чтоб не начинать новую тему, да эта и похожа, у меня такой вопрос-как организовать счет внешних событий(скажем по нажатию на кнопку 5 раз) и после этого, чтоб на какой-нибудь разряд порта выдовать 1. Я думал (у меня мега16) можно сконфигурировать скажем т/с0 на прерыв по совпадению, в ОСR0 загнать 5, и TCCR0 на тактирование от внешнего источника, тоесть счет импульсов от нажатия кнопки РВ0 , но не получаеться, что не так?
|
|
|
|
|
Dec 17 2007, 11:46
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(wert123 @ Dec 17 2007, 12:57)  что не так? Если "выд овать 1" происходит раньше, чем на пятом нажатии - скорее всего дребезг контактов вызывает больше, чем один импульс на нажатие.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 17 2007, 14:49
|
Группа: Новичок
Сообщений: 12
Регистрация: 28-10-07
Пользователь №: 31 824

|
Цитата(Сергей Борщ @ Dec 17 2007, 15:46)  Если "выдовать 1" происходит раньше, чем на пятом нажатии - скорее всего дребезг контактов вызывает больше, чем один импульс на нажатие. Спасибо за выдОвать-не углядел, у меня вопрос не в этом, скорее я не правильно его сформулировал-как организовать счет внешних событий?И возможно ли, чтоб внешними собітиями біли импульсы от нажатия кнопки? Цитата(wert123 @ Dec 17 2007, 18:24)  Спасибо за выдОвать-не углядел, у меня вопрос не в этом, скорее я не правильно его сформулировал-как организовать счет внешних событий от нажатия кнопки-только организацией внешних прерываний?И скажите какой минимальной может быть частота внешнего сигнала для того, чтоб таймер считал эти импульсы?
|
|
|
|
Сообщений в этой теме
wert123 прерывание от таймера меги16 Dec 16 2007, 15:12 =AVR= Кроме этого, не наблюдаетЬся и каких-либо следов п... Dec 16 2007, 18:40 defunct Извините, было лениво искать ошибку в вашем коде.
... Dec 16 2007, 19:30    Сергей Борщ Цитата(wert123 @ Dec 17 2007, 16:49) как ... Dec 17 2007, 14:58     wert123 Цитата(Сергей Борщ @ Dec 17 2007, 18:58) ... Dec 17 2007, 15:22      defunct Цитата(wert123 @ Dec 17 2007, 18:22) Вот ... Dec 17 2007, 16:02
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|