PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка устройств (http://pccar.ru/forumdisplay.php?f=18)
-   -   Управление нагрузками по USB + контроль состояния (http://pccar.ru/showthread.php?t=7092)

den_sad 12.12.2008 11:55

Вложений: 1
небольшое видео

den_sad 12.12.2008 16:46

Вложений: 1
Костя, посмотри проектик под дельфи - управление 4 светодиодами есть, а вот как считать с девайса число integer - например 1023 (верхний результат АЦП)?

На сколько я понял прошивка может передать только uchar (до 256)

Если найдешь способ считывать большие числа скажу огромное спасибо!

kostya740 12.12.2008 18:40

ты распоковал и запустил екзешник? или прмо их архива запускал?
необходимо положить в одну папку с длл, и запустить.

kostya740 12.12.2008 19:26

передаеться пакеты по 1 байту(8 бит). значит передавай два пакета подрят, на контроллере сохраняй их в временный буфер, а потом читай весь буфер длиной, которую сам задашь.

den_sad 12.12.2008 22:36

Цитата:

Сообщение от kostya740 (Сообщение 81104)
ты распоковал и запустил екзешник? или прмо их архива запускал?
необходимо положить в одну папку с длл, и запустить.



Распаковал конечно! А подскажи тогда как ADCW - результат АЦП с типом integer по байтам передать? и собрать их вместе? А то я пока тупо делю результат на 8 и получаю char, соответственно в 8 раз падает точность

kostya740 12.12.2008 23:25

исходники делфы не смотрел.
создай массив uchar, засовывай в него принятые данные, потом анализируй.

den_sad 13.12.2008 10:37

Цитата:

Сообщение от kostya740 (Сообщение 81131)
исходники делфы не смотрел.
создай массив uchar, засовывай в него принятые данные, потом анализируй.

Это понятно, но - чтобы анализировать принятые данные надо их ОТПРАВИТЬ! Вот я и спрашиваю как можно отправить integer число по байтам??? Интересует сама раскладка на байты... Допустим может есть какаято функция типа
Байт1=ПОЛУЧИТЬ1БАЙТ(1023)
Байт2=ПОЛУЧИТЬ2БАЙТ(1023)

SknUA 13.12.2008 12:50

старшую часть легче всего получить разделив целочисленно двухбайтовое на 256 (0x100), а младшую, соответственно, остаток от деления (mod).

Зы собирать еще проще: старшая*256+младшая

ЗЫЫ ничего что я вклинился:whistle:?

kostya740 13.12.2008 16:36

int a;
uchar a1, b1;
a1 = (uchar)(a/256);
b1 = a-(a1*256);


как то так, примерно.

kostya740 13.12.2008 19:06

попробуй. у меня на ноуте, тестовом сервере, вмваре работает.


Часовой пояс GMT +4, время: 02:28.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot