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

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

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

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

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

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

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

 
Опции темы
Непрочитано 12.06.2011, 23:15  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 858
Сказал спасибо: 228
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Не отрабатывается нужная задержка

здравствуйте дорогие друзья!
Нужно отработать заданную задержку на ATtiny2313.
Пишу на СИ и симмулирую в PROTEUS е .
тактитуется мк внутренным RC генератором 4 MHz.
Нужно сформировать задержку в 0.2 ms в прерывании INTO частотой 500 Hz.
Прерывание по переднему фронту импульсов.
делаю так:
в качестве шага беру период тактов 1/4 000 000 =0.25 us.
далее находим сколько раз поместится этот шаг в наш интервал
0.2 ms=200us т.е. 200/0.25 =800(DEC)=(0x320)Hex и пищем:
Int a;
--
FOR(a=0;a‹0x320;a++)
{};
---
однако полученная задержка при симмулировании в протеусе несколько раз длинее нужной.
Прошу помощи опытных друзей , чем может быть причина ?
Правильны ли мои действия?
Спасибо заранее.
Реклама:
begun вне форума  
Непрочитано 12.06.2011, 23:45  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: не отрабатывается нужная задержка

А Вы в протесе, в окне свойств 2313, в поле CLKDIV8 выбрали unprogrammed? Там по умолчанию стоит programmed.
kittec вне форума  
Непрочитано 13.06.2011, 00:33  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

да не, тут подход в корне не верный. Либо задержку писать на асме, либо по прерыванию в таймере, что куда профессиональнее.
Easyrider83 вне форума  
Непрочитано 13.06.2011, 07:02  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 858
Сказал спасибо: 228
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

да частота не делится на 8 ,это только для 8 MHz генератора, а уменя работает на 4 Mhz.
Дело в том ,что все работает четко т.е. любая задержка отрабатывается без проблем но просто нужно подогнать под нужную ,а мне нужно узнать почему по моему алгоритму не работает т.е. получается длинее расчетной.
В чем причина?
Спасибо.
begun вне форума  
Непрочитано 13.06.2011, 07:13  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

На сколько длиннее? В разы или на несколько процентов
niXto вне форума  
Непрочитано 13.06.2011, 07:57  
mobil2005
Прописка
 
Аватар для mobil2005
 
Регистрация: 19.07.2006
Адрес: Russia,Yekaterinburg
Сообщений: 184
Сказал спасибо: 12
Сказали Спасибо 75 раз(а) в 43 сообщении(ях)
mobil2005 на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

Сообщение от begun Посмотреть сообщение
Int a;
--
FOR(a=0;a‹0x320;a++)
{};
---
однако полученная задержка при симмулировании в протеусе несколько раз длинее нужной.
Прошу помощи опытных друзей , чем может быть причина ?
Правильны ли мои действия?
Спасибо заранее.
Причина в том что для вас в этой конструкции стоит как вам кажется одна операция
Цитата:
FOR(a=0;a‹0x320;a++)
{};
Но на деле давайте посчитаем
1 такт сложение, 2 такта переход 1 такт сравнение итого в 3 раза дольше чем вы запланировали. Если стоит оптимизация то я не ручаюсь и за эти разы
(для саморазвития посмотрите листинг ассемблерный)
Так что вариантов решения 2
1) Отказатся от подобной конструкции и использовать таймер
2) эмпирически подобрать число для нужной задержки, однако помните что при изменении степени оптимизации может все изменится.
__________________
Разработка электроники на заказ, написание ПО для ПК и МК.Обращайтесь в личку.

Последний раз редактировалось mobil2005; 13.06.2011 в 08:01.
mobil2005 вне форума  
Непрочитано 13.06.2011, 07:59  
mobil2005
Прописка
 
Аватар для mobil2005
 
Регистрация: 19.07.2006
Адрес: Russia,Yekaterinburg
Сообщений: 184
Сказал спасибо: 12
Сказали Спасибо 75 раз(а) в 43 сообщении(ях)
mobil2005 на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

Сообщение от begun Посмотреть сообщение
да частота не делится на 8 ,это только для 8 MHz генератора, а уменя работает на 4 Mhz.
А для работы таймера и не обязательно деление на 8. Что в таймер загрузил по тому он и будет работать хоть на делите 5 хоть на 35
__________________
Разработка электроники на заказ, написание ПО для ПК и МК.Обращайтесь в личку.
mobil2005 вне форума  
Сказали "Спасибо" mobil2005
begun (13.06.2011)
Непрочитано 13.06.2011, 18:06  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 858
Сказал спасибо: 228
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

да, вы правы.
в разных ситуациях получатся по разному и видимо не имеет смысла идти по пути такого формирования .
Нужно разобратся всетаки в ASSEMBLER е.
Заодно попробую с таймером.
Спасибо за дельный совет.
begun вне форума  
Непрочитано 13.06.2011, 18:39  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Не отрабатывается нужная задержка

Сообщение от begun Посмотреть сообщение
Заодно попробую с таймером.
Угу... это типичная ошибка начинающих.. сделать ПОПРОЩЕ и ПОБЫСТРЕЕ...
Делайте с таймером, будет пахать и на АСМ и на СИ не будет зависить от оптимизации.
Освоите КАК НУЖНО формировать задержки.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержка подачи питания LUMENoff Электроника - это просто 14 05.03.2011 17:34
задержка подачи питания dgvozd Отвлекитесь, эмбеддеры! 51 08.07.2009 09:58
ЖКИ и CodeVision: 8-ми битный режим vikpol Микроконтроллеры, АЦП, память и т.д 33 09.03.2009 21:55
Задержка включения kviper Микроконтроллеры, АЦП, память и т.д 5 12.08.2007 15:57
LCD DEM 16261(4 bit mode) + AT89C51 ajborman Микроконтроллеры, АЦП, память и т.д 8 21.03.2007 15:26


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


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