На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> C++ & COM PORT'ы , Скинуть сигнал
    Как на С++ Можно организовать работу с СОМ портом который находиться на задней панели компа,
    Задача отправить сигнал и проверить дошел ли он туда физически.... Например при помощи светодиода.....

    У меня просьба если на форуме есть програмисты которые работали с програмированием железа и аппаратной части То отзовитесь пожалуйста на aster_x@inbox.ru мне ваша помощь очень нужна.
      Посмотри здесь
      http://www.sources.ru/cpp/cpp_cserialport.shtml
        А еще какие нибудь предпосылки...
          CreateFile("COM1",...)
            Antber а ЧТО ДАЛЬШЕ?
              Цитата aster_x @
              ЧТО ДАЛЬШЕ?
              А дальше берешь нажимаешь ссылку Поиск и находишь кучу ссылок; тоже самое можно сделать в любом поисковике. Про работу с последовательным портом столько написано, что еще 5 лет назад тот же Рамблер выдавал под сотню ссылок.
                Цитата Adil @
                тот же Рамблер выдавал под сотню ссылок


                И по поводу
                Например при помощи светодиода..... Тоже.
                  Писал софтец для управления достаточно круной железякой через COM-поры, если надо могу часть исходников по работе с портами выложить, все на VC++ 6.0
                    CSerialport - проще некуда!!!
                    к COM-порту подцеплял контроллер Atmel через max232(с соответствующей обвязкой работает изумительно).
                    а с помощью светика проверить только при постоянной передачи данных, заципившись на RTS или DTS или TX (вроде так это называется), но там 12 вольт
                    и напряжение не постоянно. диод с резичтором ~800 Ом на какой либо из этих выводов и на землю.
                    потом создаешь класс итд.
                    распиновку COM-порта и схему подключения можно посмотреть на http://gaw.ru (поиск посайту:rs232)
                    распиновка http://www.gaw.ru/html.cgi/txt/interface/rs232/index.htm
                    Сообщение отредактировано: ElcnU -
                      Вооше есть класный сайт [URL=http://rs232.ru]rs232.ru[/URL
                      Прочитал инфу и пользуюсь ей с успехом.Чтоб при помощи светодиода проверить дошёл ли туда сигнал необходима микроса max232, а ей на ногу(по сигналу TX) вешаешь светодиод-это первый вариант если действительно нужна индикация через светодиод.Ну а дальше WriteFile("COM на задней панели" ,...)Но можно и проще---
                      ExpandedWrap disabled
                        memset(&ovr,0,sizeof(ovr));
                            ovr.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL);
                            SetCommMask(port,EV_TXCHAR);
                            WaitCommEvent(port,&mask,NULL);-> эта строка ждёт события на линии которую устоновишь в строке выше.В этой строке вся прога стопорится до тех пор пока не будет желанного TX.Поэтому её нужно сделать в отдельном потоке, а с основного потока послать байт.
                        MessageBox("TX");

                      Если надо больше задавай вопросы.
                        Цитата denim_sake @
                        Вооше есть класный сайт [URL=http://rs232.ru]rs232.ru[/URL
                        Прочитал инфу и пользуюсь ей с успехом.Чтоб при помощи светодиода проверить дошёл ли туда сигнал необходима микроса max232, а ей на ногу(по сигналу TX) вешаешь светодиод-это первый вариант если действительно нужна индикация через светодиод.Ну а дальше WriteFile("COM на задней панели" ,...)Но можно и проще---
                        ExpandedWrap disabled
                          memset(&ovr,0,sizeof(ovr));
                              ovr.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL);
                              SetCommMask(port,EV_TXCHAR);
                              WaitCommEvent(port,&mask,NULL);-> эта строка ждёт события на линии которую устоновишь в строке выше.В этой строке вся прога стопорится до тех пор пока не будет желанного TX.Поэтому её нужно сделать в отдельном потоке, а с основного потока послать байт.
                          MessageBox("TX");

                        Если надо больше задавай вопросы.

                        max232 - преобразователь интерфейсов (из 12 вольт в 5 вольт и обратно)
                        Зачем её ставить для светика???
                        она нужна для 5 вольтового UARTa на микроконтроллерах Atmel, pic итд.
                        тогда уж напрямую на TxD COM-порта через сопротивление ~1000 Ом и на землю...
                        и все тоже получится...
                          Цитата aster_x @
                          Например при помощи светодиода..... Тоже.

                          И поэтому поводу - тоже. Просто MSDN почитать (даже и поисковик не нужен) повнимательней и обнаружить функцию EscapeCommFunction, с помощью которой можно чудесным образом напрямую управлять выводами DTR и RTS.
                            Цитата Adil @
                            И поэтому поводу - тоже. Просто MSDN почитать (даже и поисковик не нужен) повнимательней и обнаружить функцию EscapeCommFunction, с помощью которой можно чедесным образом напрямую управлять выводами DTR и RTS.

                            тоже верно, но это выводы не для передачи данных, а вроде для тактования...
                            как правило с них получаю постоянное напряжение путем установки детектора(последовательно диод, параллельно конденсатор) и стабилизатора (например КР148ЕН8). ну а после светодиод и резистор на 300 ом... только COM-порт по току много не вывезет...(
                            Сообщение отредактировано: ElcnU -
                              .........max232 - преобразователь интерфейсов (из 12 вольт в 5 вольт и обратно)
                              .........Зачем её ставить для светика???

                              А ставить её надо на всякий случай, ток Com порта невилик, и в моеё практике 3 сгоревших ком порта ).Может и действительно для светодиода не надо, но я так привык.
                                Достаточно только светодиода и резистора.
                                  Цитата

                                  тоже верно, но это выводы не для передачи данных, а вроде для тактования...


                                  Это фактически биты параллельного интерфейса. Которые используются
                                  для управления модемом. Но можно их использовать и по своему усмотрению.

                                  Цитата

                                  после светодиод и резистор на 300 ом...


                                  Порт нормально работает на ~4Ком. Это значит он может выдать ток около 2.5-3 ма.
                                  Для светодиода с повышенной яркостью или супер-яркого этого более чем достаточно.

                                  10V - 2V (падение на светодиоде) = 8V
                                  R = 8 V / 2 ма = 4 Ком.

                                  3.9 К + супер-яркий светодиод = хорошо.
                                  ;)
                                    Цитата SergI @
                                    Порт нормально работает на ~4Ком. Это значит он может выдать ток около 2.5-3 ма.
                                    Для светодиода с повышенной яркостью или супер-яркого этого более чем достаточно.

                                    10V - 2V (падение на светодиоде) = 8V
                                    R = 8 V / 2 ма = 4 Ком.

                                    3.9 К + супер-яркий светодиод = хорошо.


                                    а напряжение вроде бы +-12/15 вольт, а яркие диоды в расчет не берем...
                                    берем самые распространенные ал302 вреде бы...
                                    Сообщение отредактировано: ElcnU -
                                      Всем кто откликнулся на мою проблему и кто просто ею поинтересовался СПАСИБО

                                      Я тоже дома так не сидел(Рылся в МСДН и прочих доках)и вот что я понаходил.
                                      Действительно к СОМ порту надо "конектится" при помощи
                                      Com = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0,
                                      NULL,
                                      OPEN_EXISTING,
                                      FILE_FLAG_OVERLAPPED,
                                      NULL ); //Все так просто даже

                                      И еще очень интересной представляется функция
                                      WaitCommEvent В месте с функцией
                                      CreateEvent + Структура _OVERLAPPED

                                      А вот пример для работы с LPT Портом

                                      ExpandedWrap disabled
                                        #include "stdafx.h"
                                        #include "windows.h"
                                        #include <ostream>
                                        using namespace std;
                                         
                                        int _tmain(int argc, _TCHAR* argv[])
                                        {
                                        HANDLE hLPT=CreateFile("LPT1",GENERIC_WRITE,0,NULL,
                                         OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
                                        if (hLPT!=INVALID_HANDLE_VALUE)
                                         {
                                         cout << " Ok Open LPT1" << endl;
                                         char buffer[25];
                                         memset(buffer,0,sizeof(buffer));
                                        strcpy(buffer,"Hello LPT ");
                                        DWORD dw;
                                        OVERLAPPED ov;
                                        for (int x=0;x < 3;x++)
                                        WriteFile(hLPT,buffer,sizeof(buffer),&dw,&ov);
                                        CloseHandle(hLPT);
                                        }
                                        else cout << "Error Open" << endl;
                                            return 0;
                                        }
                                        //Вроде бы как не одной ошибки, теперь только остались "светодиоды"
                                        //Или же может каким нибудь электронным прибором замерить
                                        //Жаль что у меня нет ОСЦИЛОГРАФА
                                        //это я ночью нашел и сделал
                                        //только сегодня вечером буду физическую часть проверять.

                                      И еще у меня такой вопрос: МОЖНО ЛИ ЭТОТ ВЫХОДНОЙ СИГНАЛ ОБРАБОТАТЬ
                                      "СТАНДАРТНЫМИ" радиоэлектронными методами(Транзисторы).
                                      Или же всетаки прийдется собирать усложненную схему с использованием микросхем.


                                      ЕСЛИ ЭТОТ ПОСТ ЧИТАЮТ СПЕЦИАЛИСТЫ ПО АППАРАТНОМУ ПРОГРАМИРОВАНИЮ
                                      И АППАРАТНО-ЭЛЕКТРОНОМУ КОНСТРУИРОВАНИЮ, А ТАКЖЕ СПЕЦИАЛИСТЫ СТАЛКИВАВШИЕСЯ С ЭТОЙ ТЕМАТИКОЙ ТО...
                                      ПОЖАЛУЙСТА ОТКЛИКНИТЕСЬ НА aster_x@inbox.ru, или давайте устроим обсуждение на форуме.
                                      ВАША ПОМОЩЬ БУДЕТ ОЧЕНЬ и ОЧЕНЬ НУЖНА.


                                      Добавлено
                                      Цитата ElcnU @
                                      а напряжение вроде бы +-12/15 вольт, а яркие диоды в расчет не берем...
                                      берем самые распространенные ал302 вреде бы...

                                      То есть подрозумевается наличие "выходного" напряжения на ПОРТЕ?????
                                      Значит Беру два провода Цепляю к порту и пред идущей фунцией скидываю сигнал.
                                      И наблюдаю свечение.
                                        Цитата aster_x @
                                        То есть подрозумевается наличие "выходного" напряжения на ПОРТЕ?????
                                        Значит Беру два провода Цепляю к порту и пред идущей фунцией скидываю сигнал.
                                        И наблюдаю свечение.

                                        да типа того...только там твой цифровой сигнал,соответственно напряжение импульсное. ведь СОМ-порт можно использовать как источник питания(необходим детектор и стабилизатор)
                                        ДА, и не спали диод, все-таки 12вольт...


                                        Цитата aster_x @
                                        И еще у меня такой вопрос: МОЖНО ЛИ ЭТОТ ВЫХОДНОЙ СИГНАЛ ОБРАБОТАТЬ
                                        "СТАНДАРТНЫМИ" радиоэлектронными методами(Транзисторы).
                                        Или же всетаки прийдется собирать усложненную схему с использованием микросхем.


                                        если ты хочешь увидеть цифровые данные посылаемые с ПК, то самый простой способ проверить это:
                                        1 подключить сотовый через шнурок с СОМ-портом или
                                        usb-виртуал COM-порт (с СОМ-портом и виртуал СОМ портом логика работы программы одна и та же, просто через разные дроайверы).
                                        2 найти документашку с АТ-командами (лучший пример WAVECOM)
                                        3 ну и поиграть с этими командами:позвонить, отправить СМС,прочитать телефонную книжку и т.д.

                                        если тя это не устраивает, то:
                                        1 собирай маленькую схемку на микроконтроллере(советую Atmel, давно работаю с ними)(нужен только контроллер, светики для индикации и питание 2.7-5вольт, взависимости от контроллера).какой нить дешевенький ATtiny...кварц можешь не ставить, внутреннего генератора (1 МГц) для UARTa хватит.
                                        2 те понадобится преобразователь интерфейсов типа MAX232,MAX202,ADM232,(если только на прием, то можно на транзисторах), обвязка у них 3 электролита по 10 мкФ, ну и фильтр по питанию 0.1 мкФ
                                        3 собири програматор на СОМ-порт(непомю,но там вроде только 3 диода,4 резистора,2 конденсатора).
                                        4 ставишь какую-нить софтину типа AVRstudio,IAR,algoritm builder,codevision (iar и codevision это С, самое простое это codevision там все есть, по справке быстро разберешься)
                                        5 ставишь PONYPROG, для программирования МК
                                        6 читаешь молитву(бывает помогает...)

                                        комплектация те обойдется ~100 рублей вместе с 2 СОМ-разъемами(програматор+для девайса), а может и меньше...
                                        я такое проворачиваю за вечер...ну а те утром в магаз потом разводишь схему в PCADе собираешь программишь и любуешься программиремой герляндой ценой в 100р... :)
                                        Сообщение отредактировано: ElcnU -
                                          aster_x, ты бы написал конкретно - что именно тебе надо сделать, а то понятие "обработать сигнал" уж больно обширно.
                                          И хорошо бы еще определится - какой порт собираешься использовать LPT или COM. Они отличаются хотя бы просто вызодным напряжением на линиях. А управление ими тем более. Я, например, совершенно не знаю, как (и возможно ли это) управлять отдельными линиями LPT с помощью CreateFile("LPT1"...; в своё время мне пришлось писать драйвер.
                                            Описываю простейший пример задачи.
                                            Стоит магнитный-пускатель Напряжение на катушку подается через промежуточное реле.
                                            Напряжение на катушку реле подается от внешнего питания но....
                                            Там такая вот вещь .
                                            Оно должно находится в разомкнутом состоянии а по пришествии сигнала с компьтера.
                                            Цепь должна замыкаться (Я думаю что это может решить либо простая логическая МС)
                                            Либо транзистор в режиме ключа.

                                            И еще учтите я живу в КАЗАХСТАНЕ в городе КЫЗЫЛ ОРДА.
                                            Да еще и работаю вахтовым методом на нефтепромысле в службе КИПиА(Который располагается в пустынной местности 250 км От города).
                                            У нас тут такие условия что во всем городе только 10 - 15 стоящих програмеров
                                            а может и того меньше. Единственная возможность поговорит со специалистами это форум + ИНЕТ. Я не смогу сбегать в магазин или еще что нибудь в этом роде.

                                            У меня к вам просьба пожалуйста расчитывайте объективно мои возможности.

                                            P.S. Я ОЧЕНЬ РАД ЧТО ВЫ ОТКЛИКНУЛИСЬ НА МОЙ ЗОВ.
                                            Теперь я верю что это форум НАСТОЯЩИХ ПРОГРАМИСТОВ.
                                            Сообщение отредактировано: aster_x -
                                              если простым ключем:
                                              1 сигнал с ПК должен отправлятся постоянно (программа за тобой).
                                              2 как я уже говорил там где у тя на СОМ-порте гонятся импульсы поставь детектор и НЧ-фильтр, чтоб сгладить напряжени на базе транзистора,
                                              3 ну а включение транзистора за тобой...

                                              но это очень такой скользкий способ... <_<
                                              надежней, конечно, собрать схемку на МК, но
                                              Цитата

                                              И еще учтите я живу в КАЗАХСТАНЕ в городе КЫЗЫЛ ОРДА.
                                              Да еще и работаю вахтовым методом на нефтепромысле в службе КИПиА(Который располагается в пустынной местности 250 км От города).
                                              У нас тут такие условия что во всем городе только 10 - 15 стоящих програмеров
                                              а может и того меньше. Единственная возможность поговорит со специалистами это форум + ИНЕТ. Я не смогу сбегать в магазин или еще что нибудь в этом роде.

                                              PS:на фильтре ёмкость побольше поставь...
                                              Сообщение отредактировано: ElcnU -
                                                Цитата aster_x @
                                                Описываю простейший пример задачи.
                                                Стоит магнитный-пускатель Напряжение на катушку подается через промежуточное реле.
                                                Напряжение на катушку реле подается от внешнего питания но....
                                                Там такая вот вещь .
                                                Оно должно находится в разомкнутом состоянии а по пришествии сигнала с компьтера.

                                                Такая схема будет создавать массу помех. Возможно и выгорание
                                                битов параллельного интерфейса компьютера.
                                                Порт можно защитить супрессором.
                                                Но устойчивость работы от этого не увеличится.
                                                Можно попытаться использовать гальваническую развязку в сигнальной
                                                цепи.
                                                Вероятно, самый перспективный способ - использовать вместо
                                                пускателя подходящий по мощности симистор.
                                                Попробуй с этой ссылки поговорить и в других конференциях:
                                                http://members.caxapa.ru/megajohn/
                                                  Для твоего случая надо устанавливать програмно RTS или DTR или в 0 или 1,а на выходе порта ключ с релешкой.
                                                    _Dmitry Ты предлагал софтец буду очень рад. Или на форум или aster_x@inbox.ru
                                                    denim_sake Конечно надо я сейчас только подхожу к первому этапу решения проблемы а там еще
                                                    будет три или четыре.
                                                    И это только тестовый образец. В общем еще будет возможности поговорить.
                                                    Просьба не терятся, всем из виду неплохая компания :yes: собралась.


                                                    Огромное спасибо я получил кучу информации для размышления.
                                                    Все предложенные исходники тоже скачал.
                                                    Сегодня ночью возьму "КИТАЙСКИЙ электронные МУЛЬТИМЕТР" и буду пытаться выловить сигналы.
                                                    Завтра постараюсь сообщить результаты моих первооткрытий.
                                                      Цитата SergI @
                                                      Такая схема будет создавать массу помех. Возможно и выгорание
                                                      битов параллельного интерфейса компьютера.

                                                      если источник питания достаточно стабилен, то помехи создает только катушка релре при переключении, а там помеха
                                                      идет через переход эмиттер-колектор -> НЧ - фильтр(ёмкость которого достаточна велика).
                                                      после такого пути вряд ли что-то может сгореть... :no:
                                                        Цитата SergI @
                                                        Такая схема будет создавать массу помех.

                                                        Имеется ввиду элетрических диффирентов всей цепи??
                                                          Цитата aster_x @
                                                          Имеется ввиду элетрических диффирентов всей цепи??

                                                          И реле, и магнитный пускатель включаются/выключаются
                                                          асинхронно с сетью. Кроме того, их характерная особенность -
                                                          дребезг контактов. На что похоже ? :)
                                                          На прерыватель автомобиля.
                                                          Видели синенькое из под контактов реле или при выдергивании
                                                          электро-чайника из розетки ? Это "оно самое", киловольт 10-15.

                                                          При выключении магнитного пускателя асинхронно с сетью 220 в
                                                          может размыкаться цепь (она имеет индуктивную составляющую)
                                                          с током.
                                                          E = - L *dI/dt
                                                          L если даже маленькая, да вот dI/dT может быть большой.
                                                          :huh:

                                                          Все эти рассуждения относятся и к реле. Магнитный пускатель
                                                          сам по себе - индуктивность с током. И мы будем размыкать
                                                          эту индуктивность с током и дребезгом контактов...
                                                          Так что проблемы будут на всех ступеньках этой электрической
                                                          схемы.
                                                          Что касается помех, то они с легкостью замкнуться через
                                                          сеть 220 в (как синфазные), преодолеют фильтры компа , пройдут
                                                          по его земле и дальше..
                                                          дальше если поставим оптрон, пойдут через его проходную емкость.
                                                          Хоть как то уменьшим..

                                                          При достаточно сильной помехе комп зависнет. И возможна
                                                          гибель портов. Да и всего, чего угодно.
                                                          Как правило горят интерфейсные платы - эта помеха замыкается
                                                          и через зернет тоже. Ком-порты. И вообще все, к чему подключены
                                                          длинные провода.
                                                            ну ты так рассуждаешь наверно про огромное и мощное реле, а на пускате ставится меленькая,которая потребляет 10мА и замыкает она не 220в, а ~ 10в
                                                              Цитата ElcnU @
                                                              ну ты так рассуждаешь наверно про огромное и мощное реле

                                                              Магнитный (!!!) пускатель - это реле переменного тока.
                                                              Обмотка его запитывается от 220 V.
                                                              Попробуй собрать такую схему и повключать/повыключать его просто тумблером.
                                                              ;)
                                                                Цитата SergI @
                                                                Магнитный (!!!) пускатель - это реле переменного тока.
                                                                Обмотка его запитывается от 220 V.

                                                                Sorry :wacko:
                                                                значит задачку недопонял...
                                                                хотя
                                                                Цитата aster_x @
                                                                через промежуточное реле.
                                                                Напряжение на катушку реле подается от внешнего питания

                                                                ,то есть у нас тут 2 катушки. А промежуточное реле как запитывается?
                                                                каким напряжение переключается?
                                                                Сообщение отредактировано: ElcnU -
                                                                  Добрый день господа программисты.

                                                                  ElcnUЯ думал применить реле типа как раньше бы ли РС10

                                                                  ElcnU Спасибо за ссылку на Класс по работе с портом.
                                                                  Хороший класс содержательный, удобный, его надо обязательно изучить.
                                                                  Я этим займусь.

                                                                  Как я и говорил пришел я домой вечером.
                                                                  Вытащил свой мультиметр и приступил к исследованиям соих СОМ портов.
                                                                  Так как у них на приеме стоят "папки" к ним легче тестором добираться.

                                                                  Как все было.

                                                                  Первое что я сделал что бы (потом небыло непоняток) подал но комп питание но
                                                                  кнопку POWER не нажал. Замерил на всех контактах напряжение... "НОЛЬ".

                                                                  После того как включил комп, перед тем как приступить к програмной реализации
                                                                  проверил еще раз напряжение на всех контактах, обоих портов(СОМ1 СОМ2),
                                                                  относительно корпуса. Результат не заставил себя долго ждать.
                                                                  Оказавается на порте с "холостым ходом" то есть, не каких активных действий
                                                                  не предпринимается только загруженна OS WIN XP.
                                                                  На кантактах 4, 5 , 7 уже имеется напряжение от 11,4 до 12 В.
                                                                  Причем плюсом служит корпус сомого компьютера. ОПРЕДЕЛЮСЬ стразу корпус не
                                                                  заземлен. И еще маленькая мелочь между "контактами" порта также имеется
                                                                  напряжение от 11,4 до 12 В. И зачем оно там нужно если порт все равно бездействует.

                                                                  Потом сел за написание программы вот основной участок КОДА
                                                                  ExpandedWrap disabled
                                                                    CString GetTimeStr()
                                                                    {
                                                                        SYSTEMTIME st;
                                                                        GetLocalTime(&st);
                                                                        CString s;
                                                                        s.Format("%d : %d : %d",st.wHour ,st.wMinute , st.wSecond);
                                                                         return s;
                                                                    }
                                                                    UINT_PTR m_tmr;
                                                                    void CCOM_PORGRDlg::OnBnClickedButton1()
                                                                    {
                                                                        m_tmr = SetTimer(MY_TIMER,10, 0);
                                                                    }
                                                                     
                                                                    void CCOM_PORGRDlg::OnBnClickedButton3()
                                                                    {
                                                                        do{
                                                                        m_lb.DeleteString(0);
                                                                        }while(m_lb.GetCount() > 0);
                                                                    }
                                                                     
                                                                     
                                                                    bool TrySend(LPCTSTR lpPortName = "COM1")
                                                                    {
                                                                    HANDLE hLPT=CreateFile(lpPortName,GENERIC_WRITE,0,NULL,
                                                                     OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
                                                                    if (hLPT!=INVALID_HANDLE_VALUE)
                                                                    {
                                                                    char buffer[25];
                                                                    memset(buffer,0,sizeof(buffer));
                                                                    strcpy(buffer,"Hello COM PORT ");
                                                                    DWORD dw;
                                                                    OVERLAPPED ov;
                                                                    for (int x=0;x < 3;x++)
                                                                    WriteFile(hLPT,buffer,sizeof(buffer),&dw,&ov);
                                                                    CloseHandle(hLPT);
                                                                    return true;
                                                                    }
                                                                    else return false;
                                                                     
                                                                    }
                                                                    int ii=100;
                                                                    void CCOM_PORGRDlg::OnTimer(UINT nIDEvent)
                                                                    {
                                                                     
                                                                        switch(nIDEvent)
                                                                        {
                                                                        case MY_TIMER:
                                                                            CString port_s;
                                                                            m_PortEdit.GetWindowText(port_s);
                                                                            if(ii == 100)
                                                                              {
                                                                            CString s_res;
                                                                            s_res = GetTimeStr() +="  100  Packets Send to ";
                                                                            s_res +=port_s;s_res += " PORT";
                                                                            if(!TrySend(port_s))
                                                                            s_res += " ERROR";
                                                                            m_lb.AddString(s_res);
                                                                            ii =0;
                                                                              } else
                                                                             {
                                                                             TrySend(port_s);
                                                                             ii++;
                                                                             }
                                                                            break;
                                                                        }
                                                                    }
                                                                     
                                                                    void CCOM_PORGRDlg::OnBnClickedButton2()
                                                                    {
                                                                        KillTimer(m_tmr);
                                                                    }

                                                                  По началу этот код не дал не каких результатов при интервале таймера на 1000 сек.
                                                                  А вот при перемене интервала на 10 м\с тоесть буфер отправляется 100 раз в секунду.
                                                                  На контактах 4 и 7 Полярность меняестя с МИНУС на ПЛЮС(при том же напряжении) 12V.
                                                                  Я проверял в активном режиме, когда поток останавливаеш принудительно
                                                                  полярность возвращается в исходное состояние. Это даже мой трудовой тестер
                                                                  из ПОДНЕБЕСНОЙ заметил. Я думаю, что это и есть он, МОЙ ЗАВЕТНЫЙ СИГНАЛ
                                                                  теперь, ловкое приинение диода.
                                                                  Когда он сам будет при одной полярности пропускать а при обратной
                                                                  запирать сам себя может решить некоторые мои проблемы.
                                                                  На первом этапе(Получение простейшего сигнала).

                                                                  Но все равно этого не достаточно. И я решил установить DDK (крутая вещь).
                                                                  После того как я на днях постараюсь собрать простейшую схему и удостовериться
                                                                  в правильности моих мыслей и маленьких исследований.
                                                                  Будет обрисовываться вторая задача.

                                                                  Это разветление первичных возможностей цепи(Светодиодов).
                                                                  И еще это конечно хорошо что нашлась полярность но...
                                                                  Если прийдется програмировать расширенную схему в которой подразумевается
                                                                  использование нескольких "выходных сигналов" такой подход будет бессмыслинным.
                                                                  Правда, я простым тестером замерял, быть может ОСЦИЛОГРАФ открыл бы глаза на мир немного шире.
                                                                  Тогда прийдется углубляться в архитектуру COM порта, и стандарта rs232.
                                                                  А также изучать принципы работ логических микросхем. Или же МК.
                                                                  Причем, мне кажется, что МК + USB более перспективная конструкция? Нежели СОМ.
                                                                  Что бы вы могли по этому поводу посоветывать. Или же поделиься опытом.

                                                                  Добавлено
                                                                  ElcnU Но не обязательно РС10, а реле схожие с ним по параметрам.
                                                                  Что бы катушка была 9 - 12 вольт а если понадобиться та можно применить и РЕЛЕ на 220В.
                                                                    Цитата aster_x @
                                                                    На контактах 4 и 7 Полярность меняестя с МИНУС на ПЛЮС(при том же напряжении) 12V.

                                                                    где-то я писал +/-

                                                                    Цитата

                                                                    На кантактах 4, 5 , 7 уже имеется напряжение от 11,4 до 12 В.

                                                                    ну наверно на 4 (DTR) и 7 (RTS) относительно 5 (GND).
                                                                    значит у тя так в системе поумолчанию(хотя странно <_< )...



                                                                    Цитата aster_x @
                                                                    Причем, мне кажется, что МК + USB более перспективная конструкция? Нежели СОМ

                                                                    тебя какая реализация интересует?(МК+FTDI или МК+програмная реализация USB или МК AT91...(содержащая встроенный аппаратный USB))
                                                                    на USB мир уже давно перешел, ведь на буках COM уже не найдешь... COM вымирает...

                                                                    Цитата aster_x @
                                                                    а если понадобиться та можно применить и РЕЛЕ на 220В.

                                                                    потребуется для ПК более надежная гальваническая развязка
                                                                    Сообщение отредактировано: ElcnU -
                                                                      Я сперва чтобы разобраться более менее с портами на СОМ потренеруюсь а потом USB перейду.
                                                                      Я думаю так проще.

                                                                      Касательно гавальнической развязки.
                                                                      Я тоже думаю только сигналы сидывать и питание сугубо внешнее.
                                                                      Как вы думаете на сколько USB сложнее КОМа. Или наоборот он проще всетаки 4 выхода.
                                                                      Но ведь там может быть и сигнал на разных частотах идет. Хотя и СОМ в этом плане не девственник.

                                                                      Цитата ElcnU @
                                                                      тебя какая реализация интересует?(

                                                                      Я думаю что по работе мне стоит уделить внимание на МК+програмная реализация USB или МК AT91
                                                                        Цитата aster_x @
                                                                        Я думаю что по работе мне стоит уделить внимание на МК+програмная реализация USB или МК AT91

                                                                        Шаг в правильном направлении. Но не совсем.
                                                                        USB не очень то хорошую помехозащищенность имеет.
                                                                        И AT91xx - это из пушки по воробьям.

                                                                        Обратите внимание на вариант:
                                                                        COMx + ATINY2313 + опторазвязка.
                                                                        Это быстро, дешево и сердито.
                                                                        Традиционно считается что ZILOG или PIC - микроконтроллеры
                                                                        более помехоустойчивы.
                                                                        Но вот ATINY2313 не удалось мне подвесит помехой,
                                                                        в отличие от его коллеги - классического AT90S2313.
                                                                        Большое значение имеют физические размеры платы.
                                                                        Поскольку проводники (и земля платы) имеют погонную индуктивность.
                                                                        Поэтому лучше разводить в корпусе SOIC.
                                                                          Цитата ЫукпШ @
                                                                          И AT91xx - это из пушки по воробьям.

                                                                          AT91SAM7S32-AU-001 (ATMEL; LQFP48) 180.56 руб
                                                                          не так дорого, зато универсально

                                                                          Цитата ЫукпШ @
                                                                          COMx + ATINY2313 + опторазвязка.
                                                                          Это быстро, дешево и сердито.

                                                                          а USB+ATINY2313 + опторазвязка.
                                                                          Так слабо?

                                                                          Цитата ЫукпШ @
                                                                          Традиционно считается что ZILOG или PIC - микроконтроллеры
                                                                          более помехоустойчивы.
                                                                          Но вот ATINY2313 не удалось мне подвесит помехой,
                                                                          в отличие от его коллеги - классического AT90S2313.
                                                                          Большое значение имеют физические размеры платы.
                                                                          Поскольку проводники (и земля платы) имеют погонную индуктивность.
                                                                          Поэтому лучше разводить в корпусе SOIC.


                                                                          зависит только от схемы, разводчика и конструктива готового устройства...
                                                                          Сообщение отредактировано: ElcnU -
                                                                            Цитата ElcnU @
                                                                            а USB+ATINY2313 + опторазвязка.
                                                                            Так слабо?

                                                                            Этот сайт всем уже хорошо известен:
                                                                            http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm
                                                                              Цитата ЫукпШ @
                                                                              Этот сайт всем уже хорошо известен:
                                                                              http://www.cesko.host.sk/IgorPlugUSB/IgorP...20(AVR)_eng.htm

                                                                              ) дешево и сердито и работает хорошо,только медлено.
                                                                              на atmega8L эффективней у неё памяти больше и питания надо меньше...а стоит примерно также как и 2313
                                                                              Сообщение отредактировано: ElcnU -
                                                                                Всеим спасибо за информацию.
                                                                                Я думаю что как бы там ни было мне всетаки надо переходить на USB.
                                                                                Так как решение моей проблемы подразумевает и использование НОТБУКОВ.
                                                                                А там порты приказали долго жить. Теперя я роюсь в ДДК.
                                                                                И пришел к следующему выводу. Что USB рулит. А что касается помехо устойчивости
                                                                                прийдется что нибудь думать чтобы не было "рывков" в цепи.

                                                                                Так как этот пост немного вышел за рамки тематики форума.
                                                                                Надо будет по поводу USB создать пост в "железном" разделе.

                                                                                К стати как скинуть сигнал на USB порт.
                                                                                Пред идущие методы такие как с СОМ портом не проходят.
                                                                                  Цитата aster_x @
                                                                                  К стати как скинуть сигнал на USB порт.

                                                                                  нужно,вроде бы,что был подключен девайс,потомучто сервис(драйвер) активируется кога девайс о себе инфу скинет...
                                                                                    А так в глухую нельзя закинуть или какого формата должен быть сигнал?
                                                                                      Цитата aster_x @
                                                                                      Так как решение моей проблемы подразумевает и использование НОТБУКОВ.
                                                                                      А там порты приказали долго жить. Теперя я роюсь в ДДК.

                                                                                      Вот в тут есть книга Агурова:
                                                                                      http://www.pcports.ru/Library.php

                                                                                      Там есть в том числе и вариант написания драйвера. А также
                                                                                      вариант использования HID-устройства без драйвера.
                                                                                      Да и вообще подробное описание всего проекта целиком, включая схемы, исходные тексты и.т.д.
                                                                                      Полный пример создания устройства, подключенного к USB.
                                                                                      Причем этот пример подойдет к поставленной задаче процентов на 99..
                                                                                      ;)
                                                                                      Сообщение отредактировано: ЫукпШ -
                                                                                        Цитата ЫукпШ @
                                                                                        Вот в тут есть книга Агурова:
                                                                                        http://www.pcports.ru/Library.php

                                                                                        хорошие книжки...
                                                                                          Да действительно то что надо. Спасибо.
                                                                                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                          0 пользователей:


                                                                                          Рейтинг@Mail.ru
                                                                                          [ Script execution time: 0,0928 ]   [ 17 queries used ]   [ Generated: 25.04.24, 20:58 GMT ]