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

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

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

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

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

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


 
Опции темы
Непрочитано 12.06.2024, 23:18  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 707
Сказал спасибо: 362
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Подсчёт импульсов по входам с общей подтяжкой

По отдельности - не вопрос; ЕМНИП речь шла об одновременной обработке ДВУХ каналов
Реклама:
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Darkmaster777 (13.06.2024)
Непрочитано 13.06.2024, 01:07  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Подсчёт импульсов по входам с общей подтяжкой

Сообщение от Darkmaster777 Посмотреть сообщение

Блин и в переменную я считывал порт, и даже если счёт должен идти по одному каналу, всё равно считает обе переменные хранения и во вторую в2 раза больше
Код:
   
             if(!(PulseW &= ~(1‹‹4))) {fan1++;}
             if(!(PulseW &= ~(1‹‹6))) {fan2++;}
Зачем же "&="
Это равносильно
PHP код:
PulseW PulseW & ~(1‹‹4); 
Надо
PHP код:
if(PulseW & (1‹‹4)) fan1++;
if(
PulseW & (1‹‹6)) fan2++; 
Godzilla82 вне форума  
Сказали "Спасибо" Godzilla82
Darkmaster777 (13.06.2024)
Непрочитано 13.06.2024, 07:33  
Darkmaster777
Частый гость
 
Регистрация: 01.07.2016
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Darkmaster777 на пути к лучшему
По умолчанию Re: Подсчёт импульсов по входам с общей подтяжкой

j-Roger, конечно. Для этого и надо хранить предыдущее состояние. Но это конечно не очень вариант, прерывание по этим входам, не Клава все ж. Проверю, щас работа мешает
Godzilla82, ну да, что я собственно сам и написал
С помощью Всех.
А то думаешь верно, а пишешь не верно
Сообщение от j-Roger Посмотреть сообщение
По отдельности - не вопрос; ЕМНИП речь шла об одновременной обработке ДВУХ каналов
Пашут' оба канала, незавимо тепереча


Однако не совсем понятно почему я считываю не полных 2000имп, а лишь 200, чешу репу.Кратно 5.
Т. Е. Исходя из тех характеристик.. Два импульс за оборот вала, за минуту при частоте 1000об/мин = 2000имп....
Придется повозиться

Последний раз редактировалось Darkmaster777; 13.06.2024 в 22:12. Причина: Итоги
Darkmaster777 вне форума  
Непрочитано 14.06.2024, 00:31  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 707
Сказал спасибо: 362
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Подсчёт импульсов по входам с общей подтяжкой

Сообщение от Darkmaster777 Посмотреть сообщение
Но это конечно не очень вариант, прерывание по этим входам, не Клава все ж
У этого ПИКа для реакции на изменение лог. уровня на входе больше ничего не остается ( в рамках данной задачи; ну разве что еще вход INT ) - МК не знает, Клава это или Элеонора или вообще Таходатчик; его задача - сгенерировать прерывание, а там заинтересованная сторона разберется, откуда куда и зачем . И да, в обработчике прерываний счетчики импульсов по обоим каналам ( fan1 и fan2 ) обновляются корректно (при условии, что входные сигналы поступают на линии RB4..RB7).

Наиболее вероятно, что теперь проблему следует искать в чтении и интерпретации результатов измерений.
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Darkmaster777 (14.06.2024)
Непрочитано 14.06.2024, 02:11  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 707
Сказал спасибо: 362
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Подсчёт импульсов по входам с общей подтяжкой

Проверяем работу "программного детектора перепада 1-›0" для каждого из двух каналов:
- подтвердим регистрацию спада на канале RB4 коротким импульсом на выходе RA0;
- подтвердим регистрацию спада на канале RB5 коротким импульсом на выходе RA1.

В коде rpm_count() это может выглядеть так:
PHP код:
    ...
    if (
FallingEdges _PORTB_RB4_MASK) {
        
fan1++;
        
// -----------
        
PORTAbits.RA0 1// Подтверждение регистрации импульса на входе RB4 коротким импульсом на выходе RA0
        
NOP();
        
NOP();
        
PORTAbits.RA0 0;
    }
    if (
FallingEdges _PORTB_RB5_MASK) {
        
fan2++;
        
// -----------
        
PORTAbits.RA1 1;  // Подтверждение регистрации импульса на входе RB5 коротким импульсом на выходе RA1
        
NOP();
        
NOP();
        
PORTAbits.RA1 0;
    ...

    } 

Подключаем счетчики импульсов для входного и выходного синалов:
Канал fan1, вход МК RB4, выход RA0, на входе меандр 1000 Гц;
Канал fan2, вход МК RB5, выход RA1, на входе меандр 100 Гц,

Измерение за время 1.2 секунды, все укладывается в ожидания:
Нажмите на изображение для увеличения
Название: fans.png
Просмотров: 0
Размер:	22.8 Кб
ID:	182286

В обрабочике прерываний - только вызов функции rpm_count() с целью убедиться в корректности обработки сигналов от таходатчиков.
За секунды счета разница в реальных и измеренных значениях может отличаться на единицы, но никик не в разЫ.
Пара золотых правил - отсутствие блокирущих задержек в обработчиках прерываний и атомарное чтение/запись volatile-переменных ( в случаях необходимости ).
j-Roger вне форума  
Непрочитано 14.06.2024, 05:54  
Darkmaster777
Частый гость
 
Регистрация: 01.07.2016
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Darkmaster777 на пути к лучшему
По умолчанию Re: Подсчёт импульсов по входам с общей подтяжкой

j-Roger, спасибо
Да, это вопрос интерпретации может плюшки может Калории отопления)
В железе считает чётко, +- чуть, даже буфер не нужен.
Darkmaster777 вне форума  
 

Закладки

Метки
pic, подсчёт импульсов, прерывание rb4 rb7
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчёт импульсов yellow87 Микроконтроллеры, АЦП, память и т.д 29 27.01.2012 20:54


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


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