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

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

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

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

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

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

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

 
Опции темы
Непрочитано 28.04.2011, 16:31  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

Неужто 500 раз ?
Реклама:
=GM= вне форума  
Непрочитано 28.04.2011, 17:07  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

=GM=, только для Вас.
CvAVR на это
PHP код:
while 1{
    if 
TCNT0=={a++}

выдаст примерно такое
PHP код:
;начало
in r30
,TCNT0 (1)
tst r30 (1)
brne PC+5  (1. 2)
ldi r31,high(0)  (1)
ldi r30,low(1)   (1)
ld r29,Z          (2)
inc r29           (1)
st Z,r29         (2)
rjmp начало   (2
Итого 12 тактов. При входной частоте 100Гц 81 920/12=6 826,667 раз . "Чуть" больше...
omercury вне форума  
Непрочитано 28.04.2011, 17:55  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

Спасибо, конечно, за эксклюзив...но я не понимаю главного, зачем это всё? Поясните, что это за фрагмент, что он делает, по-вашему?

Вы хотите сказать, что этот фрагмент сработает 6826 раз за один период частоты 100 Гц? Ну и что дальше.

Последний раз редактировалось =GM=; 28.04.2011 в 18:00.
=GM= вне форума  
Непрочитано 28.04.2011, 21:02  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 180
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

Сообщение от st_1 Посмотреть сообщение
"При входной частоте 100Гц и полной шкале в восемь разрядов... включи - и езжай в отпуск..."
Для чего вы хотите считать до наполнения восьми разрядов?
Я ведь написал считать 10 импульсов.
CodeNameHawk вне форума  
Непрочитано 28.04.2011, 23:22  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

ТС спросил
Сообщение от begun Посмотреть сообщение
Все ли у меня верно,
Не будут ли мешать два прерывания друг другу и если да, как от этого избавится?
на что получил ответ. Собъяснениями почему.
Сообщение от omercury Посмотреть сообщение
....В прерывании переполнения считать некорректно. Точность будет низкой. При входе в прерывание выполняемая МК команда в любом случае завершается. А она бывает на разное количество тактов.....
продолжает интересоваться (что похвально)
Сообщение от begun Посмотреть сообщение
Так можно сделать?, или чтото надо при этом учесть ?
.....
Сообщение от omercury Посмотреть сообщение
На высокой входной частоте пострадает точность, вверху диапазона очень сильно(реальная частота может почти в 2 раза отличаться от отображаемой).
...и опять человеку интересно, он продолжает, притом очень вежливо...
Сообщение от begun Посмотреть сообщение
я подумал что можно и без флагов получить тоже самое дождаться в бесконечном цикле переполнения таймера и вести счет,т.е.
while(1)
{
--
if(TCNT0==0xFE)
а++;
--
можно же таким образом посчитать количество переполнеия таймера?
(извините,если Я не то говорю)
Спасибо.
только здесь случились непонятки. begun явно не понимает, о каких флагах идёт речь.
Сообщение от omercury Посмотреть сообщение
Поэтому и делается без прерываний, но по флагам прерываний.
А дальше началось.... ТопикСтартера оттёрли.

Сообщение от =GM= Посмотреть сообщение
зачем это всё?
Сообщение от =GM= Посмотреть сообщение
и что дальше.
...вот и мне интересно. О деле-то будет что-нибудь?
omercury вне форума  
Непрочитано 29.04.2011, 01:30  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

Сообщение от omercury Посмотреть сообщение
О деле-то будет что-нибудь?
Хм, о деле. У топикстартера максимальное количество импульсов порядка 8.2 млн, вполне достаточно 24 бит для хранения. так что переменная "c" вполне может быть 16-битной, а переменная "d" - 8-битной.

А где вы, кстати, мой совет откопали 2007 года https://kazus.ru/forums/showpost.php...85&postcount=8

Последний раз редактировалось =GM=; 29.04.2011 в 01:40.
=GM= вне форума  
Непрочитано 29.04.2011, 08:25  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Скоректируйте программу частотомера

omercury-писал
--------------
Можно-то можно, но...нельзя... Потому, что сработать может несколько раз. Флаг прерывания устанавливается при переполнении счетчика таймера(переходе из 0хFF в 0х00), поэтому им пользоваться удобнее. После использования флаг надо сбросить (автоматом он сбрасывается при выходе из прерывания).

--------------------------------------------------------
Но ведь, когда ожидаем флаг, мы же в каждом цикле проверяем его возникновение ,и если он возник, то его потом надо еще и сбросить и потратить на это такты процессора, а в WHILE как только таймер доходит до нужного значения ,инкриментируем переменную и ничего не сбрасываем.
Далее идет программа, и когда вновь возникнет равенство, опять повторяем процедуру и так далее до получения результата.
Так Я верно говорю или опять не то?
Очень интересно следить за дискуссией АS -ов.
Спасибо.
begun вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти бесплатную программу виртуального сом порта begun Микроконтроллеры, АЦП, память и т.д 5 18.10.2010 21:47
Создание частотомера на PIC16F84A,пробелема CERGEI1982 Микроконтроллеры, АЦП, память и т.д 4 24.01.2007 10:18
спомощью какой программы можно писать программу на МК. golinskiy Proteus, KiCAD и другие ECAD 4 05.06.2006 10:43
как переписать программу с at90s2313 на pic 12ce519 sport7 Микроконтроллеры, АЦП, память и т.д 3 08.12.2005 10:50
Не могу скачать с сайта программу iled Proteus, KiCAD и другие ECAD 1 19.08.2005 20:24


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


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