Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Нужна помошь в написании проги для COM порта


Автор: Smashns 5.4.2008, 11:26
Есть датчик, программируемый. У него на выходе меандр с переменной частотой в зависимости от освещенности. Подключаеться напрямую в порту. (без МК и т.д.)
Нужно: написать прогу для КОМ порта (или USB), которая будет считать правильно эту частоту, заводить ее в формулку - и выводит рез-т вычисления на график. Т.е. БУдет рисоваться график значений от времени. Делфи, Си - не важно.


icq  380 749 703

Автор: AVR32 5.4.2008, 22:12
Для начала научитесь работать с COM портом на PC. Это несложно, заполняете DCB структуру, а далее всё через стандартные api функции.

Автор: xvr 7.4.2008, 12:42
Цитата(Smashns @ 5.4.2008,  11:26)
Есть датчик, программируемый. У него на выходе меандр с переменной частотой в зависимости от освещенности. Подключаеться напрямую в порту. (без МК и т.д.)
Нужно: написать прогу для КОМ порта (или USB), которая будет считать правильно эту частоту, заводить ее в формулку - и выводит рез-т вычисления на график. Т.е. БУдет рисоваться график значений от времени. Делфи, Си - не важно.


icq  380 749 703

Сильно зависит от диапазона частот, которые может выдать датчик (для подключения к COM), в общем случае это сделать невозможно. Прямое подключение к USB (без промежуточного контролера) вообще невозможна.

Автор: Mazzi 8.4.2008, 12:58
могу помочь с контроллером.

Автор: Smashns 8.4.2008, 17:18
Ок. С МК пойдет. МК выбран такой - atmega162. (16Mhz, 40Dip).

Автор: Mazzi 8.4.2008, 17:48
Пойдёт.

Автор: xvr 9.4.2008, 12:18
Кстати, так как у тебя небольшая частота (до 1.5 KHz), то ее можно замерить непосредственно через COM порт без МК. Делается одновибратор, вырабатывающий короткий импульс по фронту (или спаду, как угодно) входной частоты, преобразуется в напряжения RS232 (+/- 12) и подается на RX порта. Импульс должен иметь длительность больше одного бита на скорости порта но меньше длительности 9 бит, тогда порт его воспримет как нормальный входной символ. Далее в программе на РС задается чтение массива из порта с таймаутом в 1 секунду. Количество принятых символов и будет частотой.

Автор: Mazzi 9.4.2008, 12:47
Для XVR. 

Вы предложили очень интересный способ, и действительно измерять длительность импульса можно, но только с некоторыми оговорками.

1. Точность не высока в связи с низкой разрядностью измерения(не всегда подойдёт 8 бит для диапазона от 15Гц до 10000Гц )
2. Таким методом можно измерять только одну или HI или LOW составляющую сигнала.
3. Необходимо согласование уровней RS-232 с уровнями ТТЛ схем.

Автор: xvr 9.4.2008, 13:08
Цитата(Mazzi @ 9.4.2008,  12:47)
Для XVR. 

Вы предложили очень интересный способ, и действительно измерять длительность импульса можно, но только с некоторыми оговорками.

В общем конечно недостатки есть, но для параметров автора этого будет достаточно
Цитата

1. Точность не высока в связи с низкой разрядностью измерения(не всегда подойдёт 8 бит для диапазона от 15Гц до 10000Гц )
Количество бит может быть самое разное, оно определяется временем замера и частотой. С 8ми битами данных COM порта она никак не связана - собственно данные с порта игнорируются, используется только их (данных) количество.
Цитата

2. Таким методом можно измерять только одну или HI или LOW составляющую сигнала.
Автору нужна была частота. Для измерения HI или LOW составляющих нужен другой способ - подобрать скорость порта, что бы импульс точно влез в 8 бит данных и посчитать количество установленных битов в реально принятом сигнале. Точность будет совсем никакая  smile Да и нет гарантии, что можно будет подобрать нужную скорость порта - их (скоростей) ограниченное количество, может так статься, что нужная окажется где-то посередине между теми, что можно установить. Да и подсчет битов в принятом коде даст только 3 бита точности.
Цитата

3. Необходимо согласование уровней RS-232 с уровнями ТТЛ схем.
Для МК оно тоже нужно - у МК выход явно не RS232  smile 

Автор: Mazzi 9.4.2008, 13:46
Для XVR.

Да, нормальный вариант.

Автор: Smashns 15.4.2008, 07:52
НУ дык что??

Автор: xvr 15.4.2008, 08:46
Цитата(Smashns @ 15.4.2008,  07:52)
НУ дык что??

Что 'что'? Я тебе написал 5 постов назад, как это сделать без МК вообще.

Автор: Smashns 20.4.2008, 08:47
кто за деньги готов сделать?? пишите в аську или на e-mail.

Автор: Mazzi 21.4.2008, 10:58
Сколько денег?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)