Easyelectronics.ru

Электроника для всех
Текущее время: 12 ноя 2018, 23:15

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 13:46 
Только пришел

Зарегистрирован: 26 фев 2018, 16:02
Сообщения: 12
Всем привет. Ребят подскажите пожалуйста. Вообщем проблема такая.
Мне нужно что бы счетчик считывал внешние импульсы. т.е. я запускаю счетчик и жду пока к пину придут лог.1. Но вопрос в том что импульсы приходят через разное время и их неопределенное количество и мне нужно вычислить время каждого импульса от начала включения таймера т.е. постоянно сбрасывать и записывать значение счетчика нельзя так как будет теряться время, а мне каждый такт дорог. Тк вот вопрос. Можно ли реализовать так, что бы счетчик сам записывал значение каждого импульса автоматом и при этом считал дальше? Может как с каналом захвата это можно сделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 14:22 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 491
настраиваем таймер 2(к примеру) на необходимую частоту тактирования, настраиваем 1 канал на захват по falling TI1FP1, настраиваем 2 канал на захват по rising TI1FP2. Ждем начала импульса и запускаем таймер, отслеживаем (или по прерыванию) захват канала 2. Ресетим таймер, в регистре канала 1 длительность импульса, в регистре канала 2 период. Если захвата канала 2 не произошло до переполнения таймера, значит или частоту тактирования нужно понизить или следующего импульса просто не было.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 14:34 
Только пришел

Зарегистрирован: 26 фев 2018, 16:02
Сообщения: 12
Мне нужно измерять только время до начала каждого импульса от нуля. Ширина мне не нужна
Это получается что каждый раз надо вызывать прерывание и записывать значение счетчика в переменную?


Вложения:
Безымянный.png
Безымянный.png [ 15.28 Кб | Просмотров: 617 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 14:42 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 491
Еще проще, тогда настраиваите только 1 канал на захват по фронту, запускаете таймер и отслеживаете событие захвата (опять же можно по прерыванию), по переполнению счетчика вешаете прерывание и процом считаете счетчик переполнений. Таким образом в регистре канала 1 у вас будет количество тактов от начала текущего счета, а в переменной переполнений будет количество счетов от включения таймера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 15:03 
Только пришел

Зарегистрирован: 26 фев 2018, 16:02
Сообщения: 12
Блин пока еще не разбирался с каналами. Но смотрите у меня этих импульсов может быть огромное количество, а может не быть и вообще и период их следования мне не известен. счетчик работает до переполнения и все дальше уже ничего считать не нужно. Именно в этом промежутке мне и надо измерять время по фронту каждого импульса от начала счета. И вопрос как хранить эти перменные со значениями, может массив создавать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 15:07 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 491
Конечно вам нужен массив, настраиваете прерывание по каналу захвата, и каждый захват складываете в массив.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 15:15 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 491
А чего там с каналами разбираться ? Вы с таймерами вообще работали ? Все как обычно - настраиваем таймер на счет с определенной частотой, в регистре настройки канала указываем что канал на зхват и если нужно настраиваем фильтр дребезга, в регистре прерываний разрешаем прерывание от канала, в регистре разрешения каналов указываем что захват по переходу 0 -> 1(или 1->0 по необходимости) и разрешаем канал. Все запускаем таймер на одноразовый счет, если на ноге канала произойдет переход 0->1 то данные счетчика с копируются в регистр канала и вызовется прерывание в котором вы считаете этот регистр и занесете его в массив.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 15:18 
Только пришел

Зарегистрирован: 26 фев 2018, 16:02
Сообщения: 12
Спасибо большое здорово помогли мне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 15:21 
Только пришел

Зарегистрирован: 26 фев 2018, 16:02
Сообщения: 12
Спасибо я понял. Просто я думал может можно как то аппаратно это сделать. Боюсь что может произойти наложение прерываний или в момент обработки пропустится импульс


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по счетчикам
СообщениеДобавлено: 13 апр 2018, 16:43 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 491
что вы подразумеваете под словом "аппаратно" ? Если заполнение массива, то ПДП у stm8 нет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB