Например TDA7294

 Форум РадиоКот • Просмотр темы - джостик с нуля (pic18f2450) USB HID Joystick
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт окт 16, 2018 21:12:28



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 10:20:27 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
привет хочу понятьалгоритм работы кода джостика и собрать его от кода до запуска.
нашел вот это:
http://eleccelerator.com/tutorial-about ... scriptors/
https://os.mbed.com/users/wim/notebook/ ... ck-device/


это весь код который необходимый для программы джостика (тот что ниже)?
и что еще подключено вот это в код?
Include "Th_hid_desc.bas" ' ------- этот же код вроде есть в конце ниже
'Include "modedefs.bas" ' ------- это вообще не понял что такое







PBP Code-----------------------------------
Include "Th_hid_desc.bas" ' Include the HID descriptors
'Include "modedefs.bas" ' Include serial modes

DEFINE OSC 48
DEFINE LOADER_USED 1
DEFINE RESET_ORG 1100h ' For Microchip USB Bootloader
DEFINE INTERRUPT_ORG 1108h ' For Microchip USB Bootloader 'LED var PORTC.0

' Define ADCIN parameters
Define ADC_BITS 8 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 100 ' Set sampling time in uS

'Define LCD_DREG PORTB ' LCD data pin port
'Define LCD_DBIT 0 ' LCD data pin bit
'Define LCD_RSREG PORTC ' LCD register select pin port
'Define LCD_RSBIT 6 ' LCD register select pin bit
'Define LCD_EREG PORTC ' LCD enable pin port
'Define LCD_EBIT 7 ' LCD enable pin bit
'Define LCD_BITS 4 ' LCD number of data bits
'Define LCD_LINES 2 ' LCD number of lines

'define HSER_RCSTA 090h
'define HSER_TXSTA 0A4h
'define HSER_BAUD 115200
'define HSER_CLROERR

USBBufferSizeMax con 10 ' maximum buffer size
USBBufferSizeTX con 10 ' input
USBBufferSizeRX con 10 ' output

' the USB buffer...
USBBuffer Var Byte[USBBufferSizeMax]
USBBufferCount Var Byte
temp var byte

' ************************************************** **********
' * Port configuration: *
' * PORTD.0-7 are digital inputs *
' * AN0,AN5 active as analog inputs *
' ************************************************** **********

PORTA = 0
PORTB = 0
PORTC = 0
PORTD = 0
PORTE = 0
TRISA = %11111111
TRISB = %11111111
TRISC = %11111111
TRISD = %11111111
TRISE = %11111111

ADCON1 = %00001001

' ************************************************** **********
' * main program loop - remember, you must keep the USB *
' * connection alive with a call to USBService every couple *
' * of milliseconds or so... *
' ************************************************** **********
USBInit ' initialise USB...
ProgramStart:
'gosub DoUSBIn
ADCIN 0,USBBuffer[0]
ADCIN 1,USBBuffer[1]
ADCIN 2,USBBuffer[2]
USBService
ADCIN 3,USBBuffer[3]
ADCIN 4,USBBuffer[4]
ADCIN 5,USBBuffer[5]
GoSub DoUSBOut ' keep connection alive
ADCIN 6,USBBuffer[6]
ADCIN 7,USBBuffer[7]

temp = 255-PORTD
USBBuffer.0(64) = temp.4
USBBuffer.0(65) = temp.5
USBBuffer.0(66) = temp.6
USBBuffer.0(67) = temp.7

temp = 255-PORTB
USBBuffer.0(68) = temp.0
USBBuffer.0(69) = temp.1
USBBuffer.0(70) = temp.2
USBBuffer.0(71) = temp.3

USBBuffer.0(72) = temp.4
USBBuffer.0(73) = temp.5
USBBuffer.0(74) = temp.6
USBBuffer.0(75) = temp.7


'GoSub DoUSBOut
USBBufferCount = USBBufferSizeTX ' TX buffer size
USBService ' keep connection alive
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut2 ' if bus available, transmit data
DoUSBOut2:

GoTo ProgramStart

DISCRIPTOR code----------------------------------------------------------------
ReportDescriptor1
RETLW 0x05
RETLW 0x01 ; USAGE_PAGE (Generic Desktop)
RETLW 0x09
RETLW 0x04 ; USAGE (Joystick)
RETLW 0xa1
RETLW 0x01 ; COLLECTION (Application)
RETLW 0x05
RETLW 0x01 ; USAGE_PAGE (Generic Desktop)
RETLW 0x09
RETLW 0x04 ; USAGE (Joystick)
RETLW 0xa1
RETLW 0x00 ; COLLECTION (Physical)
RETLW 0x09
RETLW 0x30 ; USAGE (X)
RETLW 0x09
RETLW 0x31 ; USAGE (Y)
RETLW 0x09
RETLW 0x32 ; USAGE (Z)
RETLW 0x09
RETLW 0x33 ; USAGE (Rx)
RETLW 0x09
RETLW 0x34 ; USAGE (Ry)
RETLW 0x09
RETLW 0x35 ; USAGE (Rz)
RETLW 0x09
RETLW 0x36 ; USAGE (Ry)
RETLW 0x09
RETLW 0x37 ; USAGE (Rz)
RETLW 0x75
RETLW 0x08 ; REPORT_SIZE (8)
RETLW 0x95
RETLW 0x08 ; REPORT_COUNT (8)
RETLW 0x35
RETLW 0x00 ; PHYSICAL_MINIMUM (0)
RETLW 0x46
RETLW 0xff
RETLW 0x00 ; PHYSICAL_MAXIMUM (255)
RETLW 0x15
RETLW 0x00 ; LOGICAL_MINIMUM (0)
RETLW 0x26
RETLW 0xff
RETLW 0x00 ; LOGICAL_MAXIMUM (255)
RETLW 0x81
RETLW 0x02 ; INPUT (DataVarAbs)
RETLW 0xc0 ; END_COLLECTION
RETLW 0x05
RETLW 0x09 ; USAGE_PAGE (Button)
RETLW 0x19
RETLW 0x01 ; USAGE_MINIMUM (Button 1)
RETLW 0x29
RETLW 0x10 ; USAGE_MAXIMUM (Button 16)
RETLW 0x15
RETLW 0x00 ; LOGICAL_MINIMUM (0)
RETLW 0x25
RETLW 0x01 ; LOGICAL_MAXIMUM (1)
RETLW 0x45
RETLW 0x00 ; PHYSICAL_MAXIMUM (0)
RETLW 0x75
RETLW 0x01 ; REPORT_SIZE (1)
RETLW 0x95
RETLW 0x10 ; REPORT_COUNT (16)
RETLW 0x81
RETLW 0x02 ; INPUT (Data Var Abs)
RETLW 0xc0 ; END_COLLECTION
EndReportDescriptor1


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 13:21:45 
Вымогатель припоя

Зарегистрирован: Сб мар 19, 2011 16:19:47
Сообщений: 541
Откуда: Владивосток
Рейтинг сообщения: 0
Хотите понять алгоритм, покажите как вы его понимаете, если вопросы по коду, задайте тем кто его написал.


Вернуться наверх
 Профиль  
 
JLCPCB, 10 прототипов ПП всего за $2 и 2 дня доставка!

Крупнейший производитель печатных плат в Китае, 300,000+ заказчиков, 10,000+ он-лайн заказов в день.

Рассчитайте цену онлайн:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 13:57:32 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
забыл сказать что я НОВИЧЕК полный

предположим я написал вот этот дискриптор.
дискриптор как я понимаю просто описывает как и в какой последовательности выполянть нажатие кнопок джостика.
Но дискриптор это же еще не код программы. правильно?

ДИСКРИПТОР
-----------------------------

USAGE_PAGE (Button)
USAGE_MINIMUM (Button 1)
USAGE_MAXIMUM (Button 3)
LOGICAL_MINIMUM (0)
LOGICAL_MAXIMUM (1)
REPORT_COUNT (3)
REPORT_SIZE (1)
INPUT (Data,Var,Abs)
-----------------------------

КОД
--------------------
Include "_joydiscr.h" ' привязал дискриптор к коду (тот что выше 8 строчек)

что писать сюда надо .незнаю? :(
--------------------

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

Добавлено after 9 minutes 35 seconds:
нашел такую еще ссылку https://os.mbed.com/users/wim/notebook/ ... ck-device/

там тоже есть дискриптор о какой то код.
ВОПРОС. можно ли запустить в протеусе проэкт имея только код из СТАТЬИ ?


Вернуться наверх
 Профиль  
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Второй конкурс по дизайну печатных плат от PCBWay!
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 14:54:56 
Друг Кота
Аватар пользователя

Карма: 97
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 14213
Откуда: Московская область
Рейтинг сообщения: 0
Дескрипторы описывают значения и размеры полей при инициализации подключения - это не код, а ДЕФАЙНЫ.
Сам стек - это матрешка из машин состояний. При обмене буфер приема и буфер передачи готовы к чтению/записи в при определенных состояниях этих машин.
Основой цикл стека имеет по сути ДВЕ функции. Одна управляет стеком, а вторая является приложением пользователя.
HID USB device (не путать с HID USB host - это другой стек) имеется в MLA (библиотека Микрочипа), там же имеется работающий пример для джойстика. Все стеки в библиотеке отдефайнены под разные типы МК, то есть их нужно вначале скорректировать, указав тип МК.
ЗЫ. В догон. Память стека определена как динамическая, поэтому нужно внимательно обращаться с буферами стека. При изменении размеров буфера обмена он оказывается на других адресах, а кроме того, адреса буферов в других состояниях стека содержат совершенно другую информацию.


Вернуться наверх
 Профиль  
 
Более 10 000 000 оригинальных новых компонентов

Поставка электронных компонентов под ваш проект

Комплексные решения поставки электронных компонентов

Сэкономьте $30 при первом заказе на сумму боле $200 (только для посетителей нашего форума)
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 16:47:45 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
а посмотрите пожалуйста эту маленькую статью.
настольлко крошечного и понятного кода я еще не видел .
https://www.pjrc.com/teensy/td_joystick.html

но это для какой то teensy платы разработчика


не могу понять почему так тяжело сделать ждостик даже с 1 кнопкой. такой огромный код надо писать. ведь 1 кнопка же
1- нажал
0 - отпустил


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 19:35:14 
Друг Кота
Аватар пользователя

Карма: 97
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 14213
Откуда: Московская область
Рейтинг сообщения: 0
сам джойстик сделать несложно. Сложным получается стек USB. Стеку совершенно безразлично сколько байт будет передаваться за кадр. Хоть 1, хоть 64.
В приведенной Вами ардуине стек скрыт в фоновом коде.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пн сен 18, 2017 23:04:35 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
СПАСИБО

а если не сложно очень бы хотелось взглянуть на код в протеусе и запустить его.
но только исходник а не HEX файл . если бы его где то достать :(



может есть программы в которых можно написать код . такие как фловкод или дракон.
в протеусе есть компонент usb но опять же где пример можно взять ? (


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Вт сен 19, 2017 03:17:56 
Друг Кота
Аватар пользователя

Карма: 97
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 14213
Откуда: Московская область
Рейтинг сообщения: 0
Запустить в протеусе можно любой код. Сделать стек на флоукоде может и можно (я плохо себе это представляю), но гораздо продуктивней будет открыть спецификацию на USB и HID USB, а затем взять готовый стек у Микрочипа (из MLA) и на основе полученной из спецификаций информации его разобрать. Там только исходных файлов для проекта десяток, есличо.
Какой уж там флоукод...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Вт сен 19, 2017 22:21:31 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
ага спасибо )

если не сложно можно ссылочку на какой нибудь простейший код и спецификации к нему
мне самому поискать не сложно но боюсь открыть что то не то и зря потратить время (
сейчас его вообще почти нет .
все уходит только на это


спецификации нашел вроде???
http://www.usb.org/developers/hidpage/HID1_11.pdf

библиотека эта ????
http://www.microchip.com/mplab/microchi ... plications


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Ср сен 20, 2017 14:23:57 
Друг Кота
Аватар пользователя

Карма: 97
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 14213
Откуда: Московская область
Рейтинг сообщения: 0
И спецификация та, и библиотека...
А Вы сомневались в своих силах.
Напрасно...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Ср сен 20, 2017 22:52:39 
Родился

Зарегистрирован: Пн сен 18, 2017 09:15:21
Сообщений: 6
Рейтинг сообщения: 0
ну может тогда не все еще потеряно )
и есть шанс завести
буду изучать как то. незнаю как :)
но знаю точно сюда я еще вернусь


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Ср сен 27, 2017 21:50:39 
Друг Кота
Аватар пользователя

Карма: 21
Зарегистрирован: Пн июл 28, 2008 23:12:01
Сообщений: 3211
Рейтинг сообщения: 0
Если собираетесь применять дракон или флоукод -можно смело ставить крест на вашем развитии...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: джостик с нуля (pic18f2450) USB HID Joystick
СообщениеДобавлено: Пт мар 02, 2018 19:21:49 
Первый раз сказал Мяу!

Зарегистрирован: Пт мар 02, 2018 14:47:57
Сообщений: 36
Рейтинг сообщения: 3
привет хочу понятьалгоритм работы кода джостика и собрать его от кода до запуска.
нашел вот это:

Лет 10 годов назад лично я публиковал на RC-Design http://forum.rcdesign.ru/f8/thread40198 ... post457419 результаты моих попыточек модифицировать AN одноосевой мыши до 8 осей джоя на Pic18F4550.
Времени прошло много - ссылки на ту публикацию умерли, но вот новая ссыль http://psw2.ru/080313_Joy.zip на запакованный каталог прожектика, состояние от 13 марта 2008 года, там несколько HEX - с бутлоадером, бутлоадер отдельно и что-то ещё. HEXы рабочие - делал знакомым пару джойстиков в подарок.
Возможно чтение исходников той заготовки от МикроЧипы и сообщений с RC-Design поможет.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y