Вот ссылка на сам датчик
http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NTX1060 Для работы с мультиплексором используется NXT блок и RobotC 3.62. На странице описания датчика предлагается вот такая программа:
[list=]
task main()
{
SensorType[S3] = sensorHiTechnicTouchMux; // Configure the sensor.
while (true)
{
int nButtonsMask;
//
// The sensor value is a 4-bit map indicating which of the possible four
// touch sensors are pressed.
//
nButtonsMask = SensorValue[S3];
if (nButtonsMask & 0x01)
nxtDisplayTextLine(1, "Btn 1: Pressed");
else
nxtDisplayTextLine(1, "Btn 1:");
if (nButtonsMask & 0x02)
nxtDisplayTextLine(2, "Btn 2: Pressed");
else
nxtDisplayTextLine(2, "Btn 2:");
if (nButtonsMask & 0x04)
nxtDisplayTextLine(3, "Btn 3: Pressed");
else
nxtDisplayTextLine(3, "Btn 3:");
if (nButtonsMask & 0x08)
nxtDisplayTextLine(4, "Btn 4: Pressed");
else
nxtDisplayTextLine(4, "Btn 4:");
wait1Msec(100);
}
}[/list]
В программе предлагается обращение к датчикам: 0х01, 0х02, 0х04, 0х08.
Для того, чтобы проверить работу мультиплексора мне подобной программы достаточно, чтобы понять принцип обращения к кнопкам и уже на этой основе работать дальше. Если запустить эту программу на NXT блоке что происходит:
на экране сразу появляются следующие сообщения:
Btn 1: Pressed
Btn 2:
Btn 3: Pressed
Btn 4:
Чтобы я не делал, какие бы кнопки не менял, или не нажимал, реакции не наблюдается никакой. Если отсоединить мультиплексор от блока, то
Btn 1:
Btn 2:
Btn 3:
Btn 4:
Попробовал эмпирическим путем подбирать 0х00 и т.д. реакции не последовало никакой. Изменял программу, но никаких внешних действий не возникало.
Если кто-то знает и работал с этими мультиплексорами, подскажите какую библиотеку использовать и какими командами обращаться к кнопкам. Спасибо за внимание.
Добавлено спустя 3 часа 49 минут 46 секунд:Перепробовал 4 мультиплексора, 3 NXT блока, все время получал одинаковый результат:
Btn 1: Pressed
Btn 2:
Btn 3: Pressed
Btn 4:
Попробовал другой файл: hitechnic-touchmux-test1.c, из образцов. Результат тот же.