Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


(Е14-140, builder c++)Получение данных цифровой ли

Вы не вошли.

 Поиск | Регистрация | Вход 

МОТ
14.03.2011 15:51:54
#1

Гость

(Е14-140, builder c++)Получение данных цифровой ли

void __fastcall TFADC::FormShow(TObject *Sender)
{
    if (MainForm->pModule!=NULL)
    if (!MainForm->pModule->ENABLE_TTL_OUT(true)) Application->MessageBox(L"Не могу включить цифровые каналы!",L"Ошибка!", MB_OK);
    if (!MainForm->pModule->TTL_IN(&word)) Application->MessageBox(L"Прочитать не могу!",L"Ошибка!", MB_OK);


    chD0->Checked= word&1;
    chD1->Checked= word&2;
    chD2->Checked= word&4;
    chD3->Checked= word&8;
    chD4->Checked= word&16;
    chD5->Checked= word&32;
    chD6->Checked= word&64;
    chD7->Checked= word&128;
    chD8->Checked= word&256;
    chD9->Checked= word&512;
    chD10->Checked= word&1024;
    chD11->Checked= word&2048;
    chD12->Checked= word&4096;
    chD13->Checked= word&8192;
    chD14->Checked= word&16384;
    chD15->Checked= word&32768;
}

после TTL_IN(&word)
word равен 65535.
Как так? То есть TTL_IN не читает состояния а насильно всем присваивает что ли?

14.03.2011 16:06:11
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: (Е14-140, builder c++)Получение данных цифровой ли

Исходя из приведенного текста я не вижу что не так? Что реально на входы подано?

МОТ
14.03.2011 16:09:34
#3

Гость

Re: (Е14-140, builder c++)Получение данных цифровой ли

Cергей, на входах нули. Потом я включаю прогу.
Выполняю FormShow(выше). И они становятся равными 1 все.
То есть я мультиметром вот проверил их все, они равны нулю, прогу запустил они стали равны 1 все после TTL_IN

14.03.2011 16:21:05
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: (Е14-140, builder c++)Получение данных цифровой ли

Я так и не понял, к входным линиям что-то реально подключено или они просто висят в воздухе?

МОТ
14.03.2011 16:27:09
#5

Гость

Re: (Е14-140, builder c++)Получение данных цифровой ли

Сергей, просто весят в воздухе. Надо чтобы было что-то?

Смотрите вот я с помощью TTL_OUT вывел на D0=1(5 вольт например), потом прогу вырубил. Но на D0 5 вольт так и весит.
Потом второй раз я прогу запустил(на D0 5 вольт висит) и я хочу посмотреть на каких линиях есть что-то ,а на каких нету. При этом они ни к чему не подключены  и висят в воздухе.

Или так нельзя?

МОТ
14.03.2011 16:30:36
#6

Гость

Re: (Е14-140, builder c++)Получение данных цифровой ли

то есть на выходах посмотреть нельзя, только на входах... ммм ясно понял

14.03.2011 16:59:48
#7

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: (Е14-140, builder c++)Получение данных цифровой ли

Входы (DIx) и выходы (DOx) - это физически разные линии, есть 16 входов и 16 отдельных выходов. Вы можете соединить их друг с другом, тогда можно будет читать и контролировать состояние выходов.

Что касается висения входов (DI) в воздухе, то такая линия будет читаться как 1, потому что на входах DI присутствует резисторная подтяжка к +5В.

МОТ
14.03.2011 19:23:06
#8

Гость

Re: (Е14-140, builder c++)Получение данных цифровой ли

Александр Е, я вот думал, что понял. Но сейчас опять задумался. Ведь я не пытался измерить мультиметром данные с входов. Измерял же с выходов.
TTL_OUT - работает с выходами
TTL_IN - работает с входами
Так?
после выполнения TTL_IN  я измерял выходы. И они все были в единице. То есть если бы я мультиметром измерял входы, то ладно. А сейчас чет я опять засомневался)

14.03.2011 21:11:26
#9

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: (Е14-140, builder c++)Получение данных цифровой ли

Когда сделан ENABLE_TTL_OUT, то на выходах должно быть то 16-битное слово, что последний раз выставлялось в TTL_OUT. Если ENABLE_TTL_OUT выключено, то выходы в Z-состоянии.

МОТ
14.03.2011 23:38:13
#10

Гость

Re: (Е14-140, builder c++)Получение данных цифровой ли

Александр Е,  ENABLE_TTL_OUT как видно из куска кода выше был включен, однако потом выполнилось TTL_IN  которое перевело наверно  выходы в Z-состояние(1111111111111111). Хотя может я чего- то недопонимаю.

15.03.2011 13:36:56
#11

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: (Е14-140, builder c++)Получение данных цифровой ли

Так быть не должно. TTL_IN не должно менять состояние выходов.
Сделайте пошаговый тест с ожиданием нажатия клавиши между командами и замерьте. И проверьте, правильно ли подключен прибор.