Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
ILJON
7 / 7 / 0
Регистрация: 18.10.2008
Сообщений: 49
#1

Двубитный порт в однобитный - C++

05.11.2008, 15:11. Просмотров 857. Ответов 2
Метки нет (Все метки)

Ребята меня тут попросили помочь с заданием с контроллерами
и требует двубитный порт при прмрщи цикла If преобразовать в однобитный
я честно говоря что то не совсем понимаю как это представить
может кто ссылочку какую нибудь кинет где почитать можно об этом? или надоумит как это притворить в жизнь?
у меня вот какие соображения имеются только не знаю верны ли они
что это должно выглядить на сколько я думаю так
x1 -->
______|----> y2
x2 -->
это как бы порт вход двубитный а выход однобитный и могу ли я просто поставить какой либо логический элемент например AND ??
можно ли это реализовать так? или я вообще не в ту степь полез? никогда с контроллерами не сталкивался :[
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2008, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двубитный порт в однобитный (C++):

RS-232 (COM - порт) и С++ - C++
Подскажите, пожалуйста, как через прерывания написать программу для управления через COM-порт. Например, по линии Tx с компьютера передаем...

Считывание и запись в COM порт - C++
Есть код на стороне Ардуины, он работает, с ним всё порядке: boolean dataReady = 0; char incomingChar; char typeMessage; String...

Com порт - C++ Builder
Здравствуйте! Если кто-нибудь знает, где найти компонент для работы с СОМ-портом в С++Builder, скиньте, пожалуйста, ссылочку.

Com-порт - C++ Builder
Здравствуйте! Написал программку, которая выводит на форму байты полученные с com-порта. В компе нет Com-порта, поэтому использую...

23 порт - C++ Builder
Как его открыть ? 23 порт

COM порт - C++ Builder
Подскажите, пожалуйста, как работать с COM портом. Что нужно прописать?

2
LaViCi
Сообщений: n/a
05.11.2008, 16:57 #2
Уточни, что за контроллер? может здесь требуются знания ассемблера? или какое-то предварительное схемотехническое решение?
Varlock
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 402
05.11.2008, 17:18 #3
а что требуется сделать? надо чтобы контроллер это преобразование осуществлял?
или на контроллере есть однобитный порт, а к нему подводят данные двубитным каналом?
в любом случае AND не покатит т.к. произойдёт потеря информации +)) нам ведь всётаки надо сохранить сигнал я так думаю
вобще, я думаю что скорей всего надо, чтобы контроллер это преобразование осуществлял...+) имхо, в другом случае задача не имеет смысла=))
тогда надо написать программу под контроллер, чтобы он преобразовывал... (вы кстати уверены, что программа на Си? под МК обычно на асме пишут... на сях слишком длинные приложения получаются...)
вобщем суть программы будет примерно такой:
чтобы не потерять информации с двубитного порта, мы удваиваем частоту однобитного, т.е. в первые пол такта мы послыаем бит с первого выхода, вторые пол такта со сторого...
как на Си такое сделать незнаю...
на асме это выглядело бы примерно так, если предположить, что частоту работы двубитного порта знаем заранее, то:
считываем в регистр(либо можно 2 взять, чтобы меньше париться) информацию с двубитного порта, после этого отправляем на однобитный порт первый бит(использовать маску по "И"), и запускаем таймер с прерыванием на половину частоты двубитного порта... по прерыванию отправляем второй бит, опять же через маску его получаем...
после этого у нас 2 варианта: двубитный порт имеет стробирование или нет...
если не имеет, то опять таймер на пол периода и считывание значения через него, если имеет, то в цикле проверяем наличие стробирующего сигнала, и считаваем значение в регистр сразу после его прихода...+)
намного всё интереснее будет, если частоту мы незнаем изнчально +)) тогда уж без стробирующего сигнала не обойтись, и тут у нас будет опять же куча вариантов...+)
если строб позволяет, то я бы сделал считывание значения и отправку первого бита по фронту, а отправку второго бита по спаду (это если строб не короткий импульс, и если двубитный порт уже этого не задействует),
в противном случае я бы реализовывал при помощи задержки на 1 период...+)
по поводу случая, что есть строб, не импульсный, и приём данных только по фронту, то тут довольно просто реализуется:
в цикле(бесконечном, например while(1) ) проверяем значение строба;
если 1 - записываем в переменные значения с двубитного порта;
отправляем первую переменную на выход;
переходим(например по метке), в другой цикл;
второй цикл, опять же бесконечный, но он уже ждёт нуля в стробе и по приходу нуля, отправляет вторую переменную и переходит к первому циклу.

Попробую показать на картинке:
_________-----------__________------------__
0*******1*******2********3*********4 (на звёздочки внимание не обращайте, они чтобы цифры не съехали =)) )
в точке 0 запускается программа, работает первый цикл. В точке 1 в условие приходит единица, т.е. оно срабатывает в переменные а и б записываем значения с порта, посылаем а на другой порт и переходим к циклу 2. В точке 2, приходит нолик, срабатывает иф во втором цикле, и отправляется переменная Б на порт выхода, а так же осуществляется переход к первому циклу...
в точке 3 опять происходит то же что и в точке 1...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2008, 17:18
Привет! Вот еще темы с ответами:

Combobox и com порт - C++ Builder
Скажите, пожалуйста, каким образом передать данные о com портах в Combobox. Т.е. число портов не статично и надо чтобы при запуске...

«Не отвечает» com порт - C++ Builder
Здравствуйте! В цикле читаю com порт. do { ReadFile(hCom, buf1, 1, &bytesRead, NULL); // Начинаем чтение данных if...

COM порт и график - C++ Builder
Нужно принять данные с COM-порта и на их основе построить график, который будет рисоваться с заданным интервалом. Данные приходят с...

Однобитный компьютер - Микропроцессоры
Нужна схема 1 битного компьютера на логических элементах нашел в нете инфу по Motorola MC14500B и WDR-1-Bit Computer. нужна схема алу+уу+...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru