Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование USB 
V
    Опции темы
darksilence
Дата 29.12.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.11.2010

Репутация: нет
Всего: нет



Вопрос можно решить подключением кнопки в микрофонному входу звуковой карты. по схеме с подтяжкой на ноль. при нажатии на кнопку идет замыкание на +U. 
Звуковая карта пропускает только переменную составляющую. Пример работы в  Дельфе есть с микрофонным входом (типа осциллографа) можно замутить. будет дешевле всего. Хотя я больше поддерживаю проект USB-HID.
PM MAIL   Вверх
KoTeKoT
Дата 22.3.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.12.2010

Репутация: нет
Всего: нет



У меня тут вопрос образовался... извините если не туда пишу...
вот есть:
Код

  LEDs:= 0;
  If CheckBox0.Checked then LEDs:= LEDs+1;
  If CheckBox1.Checked then LEDs:= LEDs+2;
  If CheckBox2.Checked then LEDs:= LEDs+4;
  If CheckBox3.Checked then LEDs:= LEDs+8;
  If CheckBox4.Checked then LEDs:= LEDs+16;
  If CheckBox5.Checked then LEDs:= LEDs+32;
  If CheckBox6.Checked then LEDs:= LEDs+64;
  If CheckBox7.Checked then LEDs:= LEDs+128;

а как сделать обратно? Мол получили допустим 6, значит это 01100000, ну и желательно что б это "01100000"куданить в переменную записывалось или в Edit.Text выводилось или CheckBox'ы заполнялись...

Это сообщение отредактировал(а) KoTeKoT - 22.3.2011, 19:46
PM MAIL   Вверх
UniBomb
Дата 23.3.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



Цитата(KoTeKoT @  22.3.2011,  19:43 Найти цитируемый пост)
получили допустим 6, значит это 01100000

Наоборот, это будет равно 00000110

Цитата(KoTeKoT @  22.3.2011,  19:43 Найти цитируемый пост)
ну и желательно что б это "01100000"куданить в переменную записывалось

И в чём проблема?
Код

somevariable := 6;


Цитата(KoTeKoT @  22.3.2011,  19:43 Найти цитируемый пост)
или в Edit.Text выводилось

Код

SomeEdit.Text := IntToStr(6);

Хотя наверное можно и без IntToStr, не знаю как там в делфях с неявным преобразованием.

Цитата(KoTeKoT @  22.3.2011,  19:43 Найти цитируемый пост)
или CheckBox'ы заполнялись

Код

if (LEDs and 1) <> 0 then CheckBox0.Checked := true; else CheckBox0.Checked := false;
if (LEDs and 2) <> 0 then CheckBox1.Checked := true; else CheckBox1.Checked := false;
if (LEDs and 4) <> 0 then CheckBox2.Checked := true; else CheckBox2.Checked := false;
if (LEDs and 8) <> 0 then CheckBox3.Checked := true; else CheckBox3.Checked := false;
if (LEDs and 16) <> 0 then CheckBox4.Checked := true; else CheckBox4.Checked := false;
if (LEDs and 32) <> 0 then CheckBox5.Checked := true; else CheckBox5.Checked := false;
if (LEDs and 64) <> 0 then CheckBox6.Checked := true; else CheckBox6.Checked := false;
if (LEDs and 128) <> 0 then CheckBox7.Checked := true; else CheckBox7.Checked := false;



--------------------
PM MAIL ICQ Skype   Вверх
KoTeKoT
Дата 23.3.2011, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.12.2010

Репутация: нет
Всего: нет



спасибо за ответ
Цитата

Наоборот, это будет равно 00000110

прошу прощения, именно так и будет... не доглядел
Цитата

Код

SomeEdit.Text := IntToStr(6);

Хотя наверное можно и без IntToStr, не знаю как там в делфях с неявным преобразованием.

так, да не так...  IntToStr(6)  в итоге в Edit.Text будет "6", а нужно именно "00000110", а без преобразования IntToStr ошибки вывалятся... 
С дальнейшим кодом (собственно с CheckBox'ами наиболее подходящий вариант для решения моей задачи)
Код

if (LEDs and 1) <> 0 then CheckBox0.Checked := true; else CheckBox0.Checked := false;

разбираюсь, попозжей отпишусь подошло иль нет ;)
PM MAIL   Вверх
UniBomb
Дата 23.3.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



Цитата(KoTeKoT @  23.3.2011,  18:45 Найти цитируемый пост)
нужно именно "00000110"

В делфи есть куча преобразовательных функций имеющий похожий вид. Например IntToStr, IntToHex, IntToBin, и наоборот. Вам будет полезно изучить их, найдя всю необходимую информацию в хелпе. Для преобразования в вид "00000110" надо воспользоваться функцией IntToBin.


--------------------
PM MAIL ICQ Skype   Вверх
KoTeKoT
  Дата 24.3.2011, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.12.2010

Репутация: нет
Всего: нет



Спасибо, за подсказку, но поскольку в Delphi отсутствует функция IntToBin , нашел ее реализацию. Мож кому понадобится:
Код

function IntToBin( Value: integer; Digits: integer ): string;
var
  i: integer;
begin
   Result := '';
   for i := 0 to Digits - 1 do
      Result := IntToStr( ( Value and ( 1 shl i ) shr i ) ) + Result;
end;

P.S. Вопрос снят 

Это сообщение отредактировал(а) KoTeKoT - 24.3.2011, 01:36
PM MAIL   Вверх
UniBomb
Дата 24.3.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



Цитата(KoTeKoT @  24.3.2011,  01:35 Найти цитируемый пост)
в Delphi отсутствует функция IntToBin

Странно. В билдере мне иногда приходилось использовать эту функцию. А ведь в билдере почти всё из делфей и перекочёвывает  smile 


--------------------
PM MAIL ICQ Skype   Вверх
alexzzzz2
Дата 26.3.2016, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.3.2010

Репутация: нет
Всего: нет



файл исходников пишет вирус, еще вопрос, кто делал hid  примеры еще? стучите в скайп solarstation2 так как быстрее выйдет 
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.1315 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.