Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 30.04.2006, 22:46  
Limit
Частый гость
 
Регистрация: 07.10.2005
Сообщений: 39
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Limit на пути к лучшему
По умолчанию Timer1 на меге

Привет всем!!! У меня проблема самоя жлементарная. Не могу сделать прерывание на Таймер1 Меги16. Работал со всем: УАРТ, ТВИ, с ЛСД, а с таймером не могу догнать что и куда. Нужно просто самое элементраное: через каждые промежутки времени выполнять какоето действие. Пишу на АСМе. Плз кто может скажите что к чему. У меня он просто не пашет. В чем проблема не зна. Может кто то не полениться пару строчек накатать. Наверняка у многих есть Коды по Таймер1. ПЛЗ. Проект горит.
Реклама:
Limit вне форума  
Непрочитано 02.05.2006, 13:31  
---
Частый гость
 
Регистрация: 02.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
--- на пути к лучшему
По умолчанию

Код:
.org 0
          rjmp reset
.org OC1Aaddr
          rjmp my_t1_handler

...

reset:
          ldi  r30,HIGH(RAMEND)
          out  SPH,r30
          ldi  r30,LOW(RAMEND)
          out  SPL,r30
          ldi  r30,(1 ‹‹ WGM12)+0x01
          out  TCCR1B,r30
          ldi  r30,(1 ‹‹ OCIE1A)
          out  TIMSK,r30
          ldi  r30,HIGH(12345)
          out  OCR1AH,r30
          ldi  r30,LOW(12345)
          out  OCR1AL,r30
          sei

...

my_t1_handler:
          ;что-то делаем
          reti
--- вне форума  
Непрочитано 02.05.2006, 16:25  
Limit
Частый гость
 
Регистрация: 07.10.2005
Сообщений: 39
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Limit на пути к лучшему
По умолчанию

.include ‹m16def.inc›

.def temp = r16

.org 0
rjmp reset
.org OC1Aaddr
rjmp my_t1_handler

reset:
ldi temp,HIGH(RAMEND)
out SPH,temp
ldi temp,LOW(RAMEND)
out SPL,temp
ser temp
out DDRA, temp
out DDRB, temp
out DDRC, temp
out DDRD, temp
clr temp
out PORTA, temp
out PORTB, temp
out PORTC, temp
out PORTD, temp


ldi temp, (0 ‹‹ WGM13) | (1 ‹‹ WGM12) ; CTC
out TCCR1B, temp
ldi temp, (1 ‹‹ OCIE1A) ; прерывание разрешено по переполнению
out TIMSK, temp
ldi temp, (1 ‹‹ CS10) | (0 ‹‹ CS11) | (0 ‹‹ CS12) ; делитель 1
out TCCR1B, temp
ldi temp, HIGH(200) ; от балды время
out OCR1AH, temp
ldi temp, LOW(200) ; от балды время
out OCR1AL, temp
clr temp
ldi r17, 0
sei

MAIN:
wdr
rjmp main

my_t1_handler:
Out PORTA, temp
out TCNT1L, r17
out TCNT1H, r17
inc temp
reti

Первый раз с таймером работаю подскажите что не так?
Limit вне форума  
Непрочитано 02.05.2006, 17:17  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Limit
Первый раз с таймером работаю подскажите что не так?
Думаю, все дело в том, что вы дважды пишете в TCCR1B. После второй записи режим CTC будет сброшен

А так криминала на первый взглян нету. Едиснственное, о чем потом не забудьте - сохранять-восстанавливать в прерывании SREG и что еще портить будете. Пока MAIN цикл пустой это не критично, а вот потом...
nml вне форума  
Непрочитано 02.05.2006, 22:40  
---
Частый гость
 
Регистрация: 02.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
--- на пути к лучшему
По умолчанию

Ну, и TCNT1 обнулять в прерывании смысла нет, т.к. там уже ноль. Режим такой.
--- вне форума  
Непрочитано 03.05.2006, 12:54  
Limit
Частый гость
 
Регистрация: 07.10.2005
Сообщений: 39
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Limit на пути к лучшему
По умолчанию

Цитата:
Ну, и TCNT1 обнулять в прерывании смысла нет, т.к. там уже ноль. Режим такой.
а тут я не согласен, потому что в симуляторе смотрел то счет продолжается. Честное слово!
Limit вне форума  
Непрочитано 03.05.2006, 16:04  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Limit
Цитата:
Ну, и TCNT1 обнулять в прерывании смысла нет, т.к. там уже ноль. Режим такой.
а тут я не согласен, потому что в симуляторе смотрел то счет продолжается. Честное слово!
Не доверяйте симуляторам. Врут как белорусское ТВ Доверять можно только даташиту.
nml вне форума  
Непрочитано 03.05.2006, 18:26  
Limit
Частый гость
 
Регистрация: 07.10.2005
Сообщений: 39
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Limit на пути к лучшему
По умолчанию

Сообщение от nml
Не доверяйте симуляторам. Врут как белорусское ТВ Доверять можно только даташиту.
Вот так и поступлю. Спасибо все за помощь! Удачи
Limit вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot