Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Проблема с прерываниями в AVR...

Отправлено serge_mok 10 мая 2007 г. 07:16


суть проблемы:
работаю с ATmega128, работают два таймера т/с0(с делителем на 1 период 30 мксек ) и т/с3(с делителем на 1024,общ период 500 мксек ), - у обоих прерывание по переполнению.
Соответственно ожидаю на ноге РА.0 непрерывную последов импульсов длительностью несколько мксек и с периодом 30 мксек. А получаю пачки импульсов, период пачки 500 мксек, между пачками паузы 20 -30 мксек, начало пачки сдвоен импульс.Короче картину явно портит т/с3.
Объясните физику процесса и как побороться? или ткните в даташит...плиз..

timer0_ovf:

cli
push temp
in temp,SREG
push temp

ser temp ;устанвл импульс

sbrc temp,0
sbi PORTA,0
sbrs temp,0
cbi PORTA,0

nop
nop
nop
nop
nop
nop

clr temp ;сбрасываю импульс

sbrc temp,0
sbi PORTA,0
sbrs temp,0
cbi PORTA,0

pop temp
out SREG,temp
pop temp
sei

reti

timer3_ovf:

push temp
in temp,SREG
push temp

;тело прерыв,время выполнения: ~ 20-30 мксек

;...
ser temp
sts TCNT3H,temp
ldi temp,252
sts TCNT3L,temp

pop temp
out SREG,temp
pop temp

reti

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru