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

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

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

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

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

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

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

 
Опции темы
Непрочитано 27.05.2007, 17:09  
rrenderr
Прохожий
 
Регистрация: 27.05.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rrenderr на пути к лучшему
По умолчанию Таймеры

1. Видимо я плохо разобрался с таймерами. Вообщем мучаю 90s2313

создаю таймер с велечиной 0, тоесть каждый проход будет вызыватся прерывание на переполнение. Таймер инициализировал на 4000 КГц, контролер на 4МГц (вообщем одно и тоже). Программу пишу в КодеВижене.

выполняю прерывание
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
v_x = v_x+1;
TCNT0=0x00;
}

и за одну секунду выполнения програмы v_x = 10 000, маловато как то, поидее должно быть где то 1000 000. тесты выполняю в Протеусе.

З.Ы. просто мне нужно померять длительность импульса, а в такой ситуации получится большая погрешность для коротких импульсов. Порядка 1-2 МГц

2. И вот ещё один вопрос. Когда делаю деление или умножение, то Коде вижен показывает что памяти сьедается на 5% за одну операцию. Тоесть 20 умножений, и память заканчивается. В чём может быть проблема?
Реклама:
rrenderr вне форума  
Непрочитано 27.05.2007, 18:29  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

1. почитайте задачу 1 - avr123.nm.ru/z1.htm

2. так первый раз при включении мат библиотек, слеующие операции меньше потребляют.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 27.05.2007, 18:30  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

советую писать и говорить - ТаймерЫ
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 27.05.2007, 21:46  
rrenderr
Прохожий
 
Регистрация: 27.05.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rrenderr на пути к лучшему
По умолчанию

Ага, ситуация с таймерами вроде прояснилась. Тогда получается, что при тактовой частоте 4МГц на один ТИК таймера приходится 1/4МГц = 0.25мкс. Теперь первый вопрос отпал. Сенкс.
И всё же, при
TCCR0=0x01;
TCNT0=0x00;
в секунду должно быть 4М переполнений, а получается намного меньше. Или это протеус глючит?

2. Этот вопрос в силе. Я ещё сразу подключил
#include ‹math.h›
Там получается, что всю память сьедают Флоаты, когда пользоватся типом Инт, то ещё терпимо.
rrenderr вне форума  
Непрочитано 27.05.2007, 22:21  
Laksus
Частый гость
 
Регистрация: 14.09.2005
Сообщений: 34
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Laksus на пути к лучшему
По умолчанию

Взгляните на это:
https://kazus.ru/forum/topics/f_18888.html#18888
там надо было получить 360 кГц при кварце 9МГц.
А так как Вы хотите вообще ничего не получится.

Цитата:
З.Ы. просто мне нужно померять длительность импульса, а в такой ситуации получится большая погрешность для коротких импульсов. Порядка 1-2 МГц
Уточните пожалуйста, что надо мерять.
Laksus вне форума  
Непрочитано 27.05.2007, 22:43  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Сообщение от rrenderr
2. Этот вопрос в силе. Я ещё сразу подключил
#include ‹math.h›
Там получается, что всю память сьедают Флоаты, когда пользоватся типом Инт, то ещё терпимо.
А сколько Вы создаете переменных? Желательно проект выложить чтобы можно было разобраться...
dimonbest вне форума  
Непрочитано 27.05.2007, 22:45  
rrenderr
Прохожий
 
Регистрация: 27.05.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rrenderr на пути к лучшему
По умолчанию

Laksus, ага теперь ясно. Вообщем при делителе на 2 и таймере на 256 работает уже нормально. так что похоже это оптимальный вариант.

Хочу построить частотомер с высоким пределом измерения, вплоть до 1-2 МГц. Хотя вот пришла другая идея, на больших частотах измерять количесвто импульсов за пол секунды, ну или за секунду (в крайнем случае). Надеюсь МК сможет успевать выполнять прерывания на такой частоте.

ну ещё осталась проблема с математикой...

dimonbest, две глобальных, ну и несколько локальных.
Наверно стоит выложить, только приведу более менее в порядок
rrenderr вне форума  
Непрочитано 27.05.2007, 23:58  
lsa
Почётный гражданин KAZUS.RU
 
Аватар для lsa
 
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
lsa на пути к лучшему
По умолчанию

Сообщение от rrenderr
Хочу построить частотомер с высоким пределом измерения, вплоть до 1-2 МГц. Хотя вот пришла другая идея, на больших частотах измерять количесвто импульсов за пол секунды, ну или за секунду (в крайнем случае). Надеюсь МК сможет успевать выполнять прерывания на такой частоте.
Частотомер так не делается.
Вот пример частотомера до 80МГц на базе AVR 90S2313 или ATtiny2313.
Архив 106 Килобайт.
Это статья из журнала РАДИОАМАТОР №3,2007

Прикрепленный файл: 7442780.rar
lsa вне форума  
Непрочитано 28.05.2007, 10:45  
Beduin
Прописка
 
Регистрация: 21.10.2005
Сообщений: 251
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 17 сообщении(ях)
Beduin на пути к лучшему
По умолчанию

Конфигурируешь таймеры следующим образом Т0 - задатчик временного интервала и прерывания по переполнению вход - внутренний генератор с прескалером.Т1 - счетчик импульсов с внешнего входа.Таким образом можно использовать возможности контроллера по максимуму .Алгоритм следующий-пока Т0 отсчитывает временной интервал ,Т1 считает импульсы на входе .Как только произойдет прерывание от Т0 ,устанавливаешь запрет на счет всем таймерам ,и считываешь данные из регистра TCNT1 .Пересчитываешь в соответствии с временным интервалом заданным Т0 и получаешь частоту.Прилагаю свой проект для ознакомления ,правда он создан для других целей но используется функция частотомера для обмера 2х генераторов.

Прикрепленный файл: 726324.rar
Beduin вне форума  
Непрочитано 28.05.2007, 11:33  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию

Поскольку входы AVR стробируются тактовой частотой, то теоретически можно сделать частотомер до пол-тактовой. Хотите больше - вешайте внешний высокоскоростной счетчик.

Несколько другая ситуация у PIC, там стробируется именно внутренний вход счетчика-таймера, а предделитель работает асинхронно и позволяет нормально работать на 50МГц и более, в зависимости от экземпляра. Хотите выше - опять таки ставите внешний счетсик, например 193-серии.
chapa вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Такие разные 555-е таймеры boor Коллекция глюков 12 24.06.2009 15:44
Таймеры AVR UserAVR Микроконтроллеры, АЦП, память и т.д 4 01.06.2005 10:01


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


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