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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись видео в файл с окна приложения http://www.cyberforum.ru/cpp/thread15181.html
Суть такова: есть оконное приложение, на котором отображается видео. Также в окне этого приложения есть разные органы управления (кнопки и проч.). Необходимо захватить видео, которое на окне отображается, либо все окно целиком. Возможно кто-то делал что-то подобное и знает как?:) Посоветуйте, пожалуйста)))
C++ Подскажите тему для дипломной работы Здраствуйте. Проблема вот в чем: Я учусь на системного програмиста и надо придумать тему для дипломки в кратчайшие строки. Я уже неделю думаю ну чтото фантазии нехватает, МОЖЕТ ВЫ ПОДСКАЖЕТЕ какую нибуть нормальную тему.:wall: Была идея написать утелиту под Windows на тему Теста процессора, сети, отображения апаратного содержимого но я незнаю хватит ли у меня времени и навыков. ... http://www.cyberforum.ru/cpp/thread15063.html
Компиляция dll C++
Ситуация следующая. В Visual Studio 2008 написал dll на С++ для того чтобы вызывать из С#. На компьютере где стойт VS2008 все отлично работает. При переносе на другой компьютер при вызове ‘---.dll’ возникает следующая ошибка: Unhandled Exception: System.DllNotFoundException:Unable to load DLL ‘ ---.dll’ Что надо добавить в настройки проекта dll ,что бы она исполнялась на компьютерах где...
Работа с BMP форматом C++
Всем доброго времени суток Проблема такая: начал разбираться со струтурой BMP формата пока описал только структуру BMP и считал заголовок BMP и его ИНФО typedef struct { WORD type; DWORD size; WORD r1,r2; DWORD OffBits; } BMPHEADER;
C++ C++ Builder или Visual C++? http://www.cyberforum.ru/cpp/thread14919.html
Подскажыте, с чего лучше изучать визуальное програмирование: с++Builder или visual c++??
C++ Помогите разобраться с динамическими библиотеками Здравсвуйте форумчане... т.к я еще молод и зелен прошу помочь тех кто разбирается в динамических библиотеках: что такое есть билиотека( у меня есть представления но все они расплывчатые :P )и помочь закончить 2 не работающих фаила (выделение, удаление памяти есть, чтение с фаила массива кое-как сам написал (возможны ошибки)...помогите написать вывод массива на экран и в фаил)... и пожалуста... подробнее

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

Попробую показать на картинке:
_________-----------__________------------__
0*******1*******2********3*********4 (на звёздочки внимание не обращайте, они чтобы цифры не съехали =)) )
в точке 0 запускается программа, работает первый цикл. В точке 1 в условие приходит единица, т.е. оно срабатывает в переменные а и б записываем значения с порта, посылаем а на другой порт и переходим к циклу 2. В точке 2, приходит нолик, срабатывает иф во втором цикле, и отправляется переменная Б на порт выхода, а так же осуществляется переход к первому циклу...
в точке 3 опять происходит то же что и в точке 1...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru