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

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

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

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

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

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

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

 
Опции темы
Непрочитано 23.05.2009, 00:20  
igoruha727
Прохожий
 
Регистрация: 31.03.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
igoruha727 на пути к лучшему
По умолчанию глюк Proteus при работе с ATMEL ATTINY45

Здравствуйте, уважаемые братья по разуму )
Такой вопрос может кто сталкивался. Отлаживаю программу в Proteus устройства на МК ATTINY45, использую таймер/счетчик 1 для формирования импульсов скважностью 2 на порте PB1. Регистром OCR1C задается частота импульсов. Регистром OCR1A по сути дела фаза сигнала. Суть в чем в AVR Studio все замечательно работает, при сравнении счетчика с регистром OCR1A происходит изменение состояния порта, а при последующем сравнении с регистром OCR1C происходит сброс счетчика в ноль и все по новой. При моделировании в Proteus, происходит сброс счетчика при сравнении и с регистром CCR1C (как положено) и, по непонятной причине, при сравнении с регистром CCR1A, чего по идеи быть не должно.
Кто подскажет с чем это связано и как лечить это?

Вот программка которой исследовал работу счетчика


.device ATtiny45
.nolist
.include "C:Program FilesAtmelAVR ToolsAvrAssemblerAppnotes n45def.inc"
.list
.def temp=R16
.def freq=R17

.CSEG
.org 0
rjmp RESET ; Сброс микроконтроллера

RESET:
ldi temp,0x60 ;
out SPL,temp ; Определяем начало стэка

ldi temp,0b00000011 ; PB0,PB1 - выход, остальные вход.
out DDRB,temp

clr temp
out PORTB,temp ; Подтягивающие резисторы отключены

ldi temp,0b01000000
out MCUCR,temp ; Настройка регистра управления

ldi temp,0b00000000
out GIMSK,temp ; Настройка маски прерываний

ldi temp,0b00000000
out GTCCR,temp

ldi temp,0b00000110
out PLLCSR,temp

ldi temp,0b10010010 ; коэф. дел = 2
out TCCR1,temp ; Насторйка счетчика TMR1

ldi freq,227 ; Загружаем значение частоты
out OCR1C,freq
ldi temp,5
out OCR1A,temp ; переключение PB1 осуществляется при переходе через 5

Metka:
wdr
rjmp Metka
Реклама:
igoruha727 вне форума  
Непрочитано 23.05.2009, 00:23  
igoruha727
Прохожий
 
Регистрация: 31.03.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
igoruha727 на пути к лучшему
По умолчанию

Посмотреть как ведет себя реальный МК пока нет возможности - нет микроконтроллера в наличии
igoruha727 вне форума  
Непрочитано 23.05.2009, 00:34  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Посмотрите в AVR cтудии
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 23.05.2009, 01:00  
igoruha727
Прохожий
 
Регистрация: 31.03.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
igoruha727 на пути к лучшему
По умолчанию

В AVR Studio все работает нормально! При каждом сравнении с OCR1A происходит смена состояния порта PB1, а при сравнении с OCR1C сброс счетчика(разумеется что OCR1C › OCR1A).

В протеусе же, при достижении OCR1A происходит и смена состояния PB1 (как положено) и еще и сброс счетчика (с кого-то фига). В результате чего, счетчик не достигает значения OCR1C. Таким образом, в протеусе частота на выходе порта PB1 начинает определяться регистром OCR1A а не OCR1C.
Было предположение что возможно при создании модели контроллера программисты допустили ошибку и спутали регистры OCR1A и OCR1C. но поменяв значения в них местами т.е. сделав OCR1A › OCR1C получилось что счетчик сбрасывался при достижении OCR1C и не достигал значения OCR1A, порт не переключался. получается счетчик сбрасывает как при сравнении с OCR1A так и с OCR1C. если бы регистры были спутаны результат бы был другой.

Может есть какая то хитрость в настройке счетчика атмелки? Или же все такие глюк протеуса... Сам я в основном пишу для PICов и с атмелами пока знаком не так близко.
igoruha727 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странный эффект при работе от медно-цинкового источника тока fobos_666 Электроника - это просто 7 15.07.2014 23:33
глюк? mega8 при питании 5..5.5 (по даташиту можно) не шьется igel_izh2126 Коллекция глюков 6 27.02.2008 00:54
загрузка CPU при работе PROTEUS dimonbest Proteus 48 25.05.2007 20:30
ATtiny15, код АЦП при работе от внутреннего источника fiksx Микроконтроллеры, АЦП, память и т.д 1 01.03.2007 10:13
4-битный режим LCD при работе с Atmega 128 Hellka Микроконтроллеры, АЦП, память и т.д 1 02.10.2006 14:23


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


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