Вдохновлённый предыдущими проектами, подключил к USB RC5 пульт. Практического применения можно добиться, поправив ПО для компьютера под свои нужды. А пока выводится код принятой команды, переключаются кнопки от клавиш "0 - 9" и регулируется прогресс-бар кнопками "CH+" и "CH-". Вообщем есть от чего оттолкнутся пытливому уму!
Не долго думая, добавил на макетку с предыдущим проектом ( USB-LCD) ИК приёмник, поправил код со стороны контроллера и компьютера, и всё ОК!
ЖКИ здесь скорее для отладки, чем для практических целей. В первую строку контроллер выводит код распознанной команды, а во вторую - время, полученное из ПК. LED2 вспышками сигнализирует, что сигнал ИК-приёмником получен.
С чем пришлось столкнутся - в новых версиях Баскома, начиная с 1.11.9.8 есть возможность устанавливать задержку сигнала для конфигурации RC5 с помощью Wait. По умолчанию, без указания, она равна 100. У меня заработало при 109. Есть ещё одна проблема, которую пока не решил - нелинейность принятия комманд. То всё чётко принимает, то с небольшими паузами. Но команды распознаёт уверенно, без ошибок. Связано это скорее всего с задержками на обработку кода ЮСБ. Правда, код принятия сигнала RC5 стоит в главном цикле, нужно попробовать повесить на прерывание, но первой командой в их обработчике должна быть SEI (разрешить прерывания). Однако в последнем случае надежность работы снизится. Ещё вариант - отключить ЖКИ и перевести девайс на более мелкий по ногам контроллер, например - Tiny461 или идеально Tiny45 (не меньше, чем 4К памяти).
В архиве - исходники на BASCOM и VBNET2008.
Благодарность господам Ollopa и Пётр за предоставленные библиотеки!
Если кто-то заинтересуется проектом и улучшит его, не забывайте поделится кодом!!!
|