Flowcode - считывание длины импульса с канала

sashok17

Добрый день! Давно пользуюсь флаукодом, но вот возникла задача считать длину сервоимпульса и в зависимости от его длины выводить логический уровень на порт микроконтроллера. Не могу понять как во флаукоде реализовать это, а именно считать длину импульса. К примеру если длительность импульса составляет 2мс, то выводим 1 на порт А, если 1 мс, то выводим 1 на порт Б и т.п. Кто нибудь может наглядно сделать алгоритм считывания во флаукоде? А то на словах вроде просто, типа использовать таймер или прерывания, а вот как это реализовать во флаукоде я понять не могу. Заранее спасибо!

sashok17

А не могли бы вы выложить сюда наиболее правильный и работоспособный проэкт во флаукоде? А то я зарегистрировался там, но администраторы никак не обработают мою заявку на регистрацию.

ubd

Проще это сделать на PIC Basic.

3 months later
Enigm

Если еще актуально могу выложить 3 варианта измерения импульса.
1 ) с использованием модуля захвата.
2) с использованием таймера TMR0
3) с использованием таймера TMR1
Хотя в той теме что дали ссылку в конце ее я выкладывал некоторые варианты.

Enigm

Первой будет реализация через захват ССР.
Так что не будет работать в конроллерах где этого нет.
Из 8 ногих он есть в 12F683.
Есть один минус этой реализации и он в том что мы привязаны к определенному порту.
То есть мы не можем свободно выбирать на какой порт нам подавать импульсы.
Обратите внимания что прерывание написано в ручную , так как в самой проге его нету.
Ну и работа с регистрами так же сделано вставками С кода.
Позже другие варианты дам.

Там 2 варианта под встроенный генератор, на 4Мгц и на 8Мгц.
И да пользуйте Протеус для симуляции без него будет сложно отладить.
Файлы для фловкоде 5.5.2.1
Протеус 7.10

CCP-zahvat.rar

Enigm

Вот еще один вариант на ССР.
Почти полностью писан на С вставках , что позволило сделать код компактнее.

intosc-4Mhz-min.rar

Enigm

Вот вариант на TMR0.
Плюсы такого измерения, в том что измеряемый импульс мы можем подавать на любую ногу которую на это дело настроим.
Минус такого измерения, в том , что если у вас будут еще прерывания , то могут возникнуть моменты где прерывания наложатся друг на друга и измерение будет не точным и показания будут прыгать.(в варианте с ССР такого недостатка нет)
Но по опыту у меня значения не прыгали больше
=- 20 микросекунд, что в принципе не особо и напрягает.

Вот добрались и до TMR1.
Имеет достоинства и недостатки как и у TMR0.

И да изучайте работу с регистрами и прочем, так же и С.
Фловкоде удобна как оболочка, но много чего в нем нет и надо писать в ручную , и нужны будут С вставки.
Лично я выбрал эту оболочку только из за удобства, восприятия кода.
Так как трудно воспринимаю написание С особенно таких как if и все с ними связанное.
В архиве прикрепляю немного даташитов на русском языке для некоторых пик контроллеров.
Сюда не лезет. положил на гугл диск drive.google.com/folderview?id=0B14HT-atXypBWXVDYn…

TMR0.rarTMR1.rar