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

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

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

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

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

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


 
Опции темы
Непрочитано 21.11.2012, 10:45  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
Печаль StopWatch в AVR Studio

Доброго времени суток!
Давно пользуюсь софтиной AVR Studio (сейчас версия 4.18 ) и в основном пишу на асме. Давно обращал внимание на несовпадение показания StopWatch в симуляторе с реальной работающим МК (отлаживая уже цифровым осциллографом), но в последний раз просто достало. Частоту кварца в симуляторе выставляю такую как на реальном МК. Совсем недавно отлаживал софтовый ШИМ, который должен давать частоту 38кГц, при отладке всё сходилось, в реале осциллограф показал почти 48кГц, это при частоте кварца 7.3728МГц. При работе этого куска кода никакие прерывания не работают (CLI), поэтому там проблемы быть не может.
Есть хотя подозрение, что при подсчете времени симулятор округляет микросекунды и в итоге ошибка накапливается.
Может кто сталкивался с этим ?
Реклама:
black27512 вне форума  
Непрочитано 21.11.2012, 12:51  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Количество циклов в командах может отличаться для разных процов.
Например, для команды ld.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 88
Размер:	40.4 Кб
ID:	40679  
Boba_spb вне форума  
Непрочитано 22.11.2012, 00:02  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Сообщение от black27512 Посмотреть сообщение
Может кто сталкивался с этим ?
А зачем в таких вещах симулятор? Обычно считаешь и всё работает. Вы же таймер используете?
В эмуляторе не будет совпадать, так как в момент остановки процессора таймера продолжают жить своей жизнью. Это нормальное явление во всех процах. Обычно приходится вводить прибамбас программный, чтобы работать можно было с отладкой. А в симуляторе, я ни разу не замечал расхождений по времени исполнения.
SasaVitebsk вне форума  
Непрочитано 22.11.2012, 01:00  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Сообщение от Boba_spb Посмотреть сообщение
Количество циклов в командах может отличаться для разных процов.
Например, для команды ld.
Речь не о циклах, а о времени выполнения и симулятор как бы и это должен учитывать, разве нет ?
black27512 вне форума  
Непрочитано 22.11.2012, 01:05  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Сообщение от SasaVitebsk Посмотреть сообщение
А зачем в таких вещах симулятор? Обычно считаешь и всё работает. Вы же таймер используете?
В эмуляторе не будет совпадать, так как в момент остановки процессора таймера продолжают жить своей жизнью. Это нормальное явление во всех процах. Обычно приходится вводить прибамбас программный, чтобы работать можно было с отладкой. А в симуляторе, я ни разу не замечал расхождений по времени исполнения.
Еще раз повторюсь, я делал софтовый ШИМ без использования всякой переферии вообще, ни таймеров, ни прерываний, они заняты другими задачами, но прерывания на время этого цикла запрещаются. Так что именно несоотвествует время выполнения программы.
black27512 вне форума  
Непрочитано 22.11.2012, 10:38  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,021
Сказал спасибо: 3,026
Сказали Спасибо 3,201 раз(а) в 2,172 сообщении(ях)
ForcePoint на пути к лучшему
Вопрос Re: StopWatch в AVR Studio

Ну давайте кусок кода и Ваши значения Stopwatch и циклов. Проверим, сравним...
ForcePoint на форуме  
Непрочитано 22.11.2012, 10:50  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Сообщение от black27512 Посмотреть сообщение
Речь не о циклах, а о времени выполнения и симулятор как бы и это должен учитывать, разве нет ?
Вот время и равно произведению числа циклов на время одного цикла.
А время одного цикла определяется частотой кварца.

Если симулятор считает циклы для одного процессора, а программа работает на другом, то времена будут разные.
Boba_spb вне форума  
Непрочитано 22.11.2012, 14:22  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Сообщение от black27512 Посмотреть сообщение
Может кто сталкивался с этим ?
Кладите код - будем посмотреть...
omercury вне форума  
Непрочитано 22.11.2012, 19:34  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Вот скриншот места события

Частота кварца такая как указана при симуляции, переменные сейчас методом тыка выставлены на 38 кГц и на выходе реальной железки столько и выходит. Но период 32.28мкс дает около 31 кГц, судя по сумуляции.
Вот код:
sbi PORTd,3 ;пачка (r17-длительность)
ldi r16,int_1
ww_1: dec r16
brne ww_1
cbi PORTd,3
ldi r16,int_0
ww_0: dec r16
brne ww_0
dec r17
brne rep11
ret
black27512 вне форума  
Непрочитано 23.11.2012, 00:24  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: StopWatch в AVR Studio

Посчитано правильно.
7372,8 кГц / 238 тактов = 30,978151260504201680672268907563 кГц.
Проверяйте кварц.
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 65
Размер:	79.4 Кб
ID:	40736  
omercury вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR Studio 5 и AVR Studio 4 на одном компьютере rocky7 Embedd С 9 05.12.2012 15:55
Atmel AVR Studio 5 st_1 Микроконтроллеры, АЦП, память и т.д 144 13.03.2012 14:59
Codevision AVR + AVR Studio помогите разобраться с отладкой Daget Микроконтроллеры, АЦП, память и т.д 24 07.03.2011 14:41
AVR Studio 3.56 Frol_Kiev Микроконтроллеры, АЦП, память и т.д 3 08.10.2009 09:31
TINY25 И AVR STUDIO YURALL72 Микроконтроллеры, АЦП, память и т.д 2 30.05.2009 19:41


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


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