mirror of
https://github.com/gdsports/USBHost_t36
synced 2024-11-24 18:12:16 -05:00
Convert to Arduino library format
This commit is contained in:
parent
f3d503259c
commit
6bacbaf537
@ -26,6 +26,9 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#if !defined(__MK66FX1M0__)
|
||||||
|
#error "USBHost_t36 only works with Teensy 3.6. Please select it in Tools > Boards"
|
||||||
|
#endif
|
||||||
|
|
||||||
// Dear inquisitive reader, USB is a complex protocol defined with
|
// Dear inquisitive reader, USB is a complex protocol defined with
|
||||||
// very specific terminology. To have any chance of understand this
|
// very specific terminology. To have any chance of understand this
|
||||||
|
78
examples/Test/Test.ino
Normal file
78
examples/Test/Test.ino
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Simple test of USB Host
|
||||||
|
//
|
||||||
|
// This example is in the public domain
|
||||||
|
|
||||||
|
#include "USBHost_t36.h"
|
||||||
|
|
||||||
|
USBHost myusb;
|
||||||
|
USBHub hub1(myusb);
|
||||||
|
USBHub hub2(myusb);
|
||||||
|
USBHub hub3(myusb);
|
||||||
|
KeyboardController keyboard1(myusb);
|
||||||
|
KeyboardController keyboard2(myusb);
|
||||||
|
MIDIDevice midi1(myusb);
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
while (!Serial) ; // wait for Arduino Serial Monitor
|
||||||
|
Serial.println("USB Host Testing");
|
||||||
|
myusb.begin();
|
||||||
|
keyboard1.attachPress(press);
|
||||||
|
keyboard2.attachPress(press);
|
||||||
|
midi1.setHandleNoteOff(OnNoteOff);
|
||||||
|
midi1.setHandleNoteOn(OnNoteOn);
|
||||||
|
midi1.setHandleControlChange(OnControlChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
myusb.Task();
|
||||||
|
midi1.read();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void press(int key)
|
||||||
|
{
|
||||||
|
Serial.print("key ");
|
||||||
|
Serial.println(key);
|
||||||
|
//Serial.print("key ");
|
||||||
|
//Serial.print((char)keyboard1.getKey());
|
||||||
|
//Serial.print(" ");
|
||||||
|
//Serial.print((char)keyboard2.getKey());
|
||||||
|
//Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnNoteOn(byte channel, byte note, byte velocity)
|
||||||
|
{
|
||||||
|
Serial.print("Note On, ch=");
|
||||||
|
Serial.print(channel);
|
||||||
|
Serial.print(", note=");
|
||||||
|
Serial.print(note);
|
||||||
|
Serial.print(", velocity=");
|
||||||
|
Serial.print(velocity);
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnNoteOff(byte channel, byte note, byte velocity)
|
||||||
|
{
|
||||||
|
Serial.print("Note Off, ch=");
|
||||||
|
Serial.print(channel);
|
||||||
|
Serial.print(", note=");
|
||||||
|
Serial.print(note);
|
||||||
|
//Serial.print(", velocity=");
|
||||||
|
//Serial.print(velocity);
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnControlChange(byte channel, byte control, byte value)
|
||||||
|
{
|
||||||
|
Serial.print("Control Change, ch=");
|
||||||
|
Serial.print(channel);
|
||||||
|
Serial.print(", control=");
|
||||||
|
Serial.print(control);
|
||||||
|
Serial.print(", value=");
|
||||||
|
Serial.print(value);
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
124
k66_usbhost.ino
124
k66_usbhost.ino
@ -1,124 +0,0 @@
|
|||||||
/* USB EHCI Host for Teensy 3.6
|
|
||||||
* Copyright 2017 Paul Stoffregen (paul@pjrc.com)
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the
|
|
||||||
* "Software"), to deal in the Software without restriction, including
|
|
||||||
* without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
* permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
* the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included
|
|
||||||
* in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "USBHost_t36.h"
|
|
||||||
|
|
||||||
USBHost myusb;
|
|
||||||
USBHub hub1(myusb);
|
|
||||||
USBHub hub2(myusb);
|
|
||||||
USBHub hub3(myusb);
|
|
||||||
KeyboardController keyboard1(myusb);
|
|
||||||
KeyboardController keyboard2(myusb);
|
|
||||||
MIDIDevice midi1(myusb);
|
|
||||||
|
|
||||||
void setup()
|
|
||||||
{
|
|
||||||
// Test board has a USB data mux (this won't be on final Teensy 3.6)
|
|
||||||
pinMode(32, OUTPUT); // pin 32 = USB switch, high=connect device
|
|
||||||
digitalWrite(32, LOW);
|
|
||||||
pinMode(30, OUTPUT); // pin 30 = debug info - use oscilloscope
|
|
||||||
digitalWrite(30, LOW);
|
|
||||||
|
|
||||||
while (!Serial) ; // wait for Arduino Serial Monitor
|
|
||||||
Serial.println("USB Host Testing");
|
|
||||||
|
|
||||||
myusb.begin();
|
|
||||||
|
|
||||||
delay(25);
|
|
||||||
Serial.println("Plug in device...");
|
|
||||||
digitalWrite(32, HIGH); // connect device
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
delay(5000);
|
|
||||||
Serial.println();
|
|
||||||
Serial.println("Ring Doorbell");
|
|
||||||
USBHS_USBCMD |= USBHS_USBCMD_IAA;
|
|
||||||
if (rootdev) print(rootdev->control_pipe);
|
|
||||||
#endif
|
|
||||||
keyboard1.attachPress(press);
|
|
||||||
keyboard2.attachPress(press);
|
|
||||||
midi1.setHandleNoteOff(OnNoteOff);
|
|
||||||
midi1.setHandleNoteOn(OnNoteOn);
|
|
||||||
midi1.setHandleControlChange(OnControlChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void loop()
|
|
||||||
{
|
|
||||||
myusb.Task();
|
|
||||||
midi1.read();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void pulse(int usec)
|
|
||||||
{
|
|
||||||
// connect oscilloscope to see these pulses....
|
|
||||||
digitalWriteFast(30, HIGH);
|
|
||||||
delayMicroseconds(usec);
|
|
||||||
digitalWriteFast(30, LOW);
|
|
||||||
}
|
|
||||||
|
|
||||||
void press(int key)
|
|
||||||
{
|
|
||||||
Serial.print("key ");
|
|
||||||
Serial.println(key);
|
|
||||||
//Serial.print("key ");
|
|
||||||
//Serial.print((char)keyboard1.getKey());
|
|
||||||
//Serial.print(" ");
|
|
||||||
//Serial.print((char)keyboard2.getKey());
|
|
||||||
//Serial.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnNoteOn(byte channel, byte note, byte velocity)
|
|
||||||
{
|
|
||||||
Serial.print("Note On, ch=");
|
|
||||||
Serial.print(channel);
|
|
||||||
Serial.print(", note=");
|
|
||||||
Serial.print(note);
|
|
||||||
Serial.print(", velocity=");
|
|
||||||
Serial.print(velocity);
|
|
||||||
Serial.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnNoteOff(byte channel, byte note, byte velocity)
|
|
||||||
{
|
|
||||||
Serial.print("Note Off, ch=");
|
|
||||||
Serial.print(channel);
|
|
||||||
Serial.print(", note=");
|
|
||||||
Serial.print(note);
|
|
||||||
//Serial.print(", velocity=");
|
|
||||||
//Serial.print(velocity);
|
|
||||||
Serial.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnControlChange(byte channel, byte control, byte value)
|
|
||||||
{
|
|
||||||
Serial.print("Control Change, ch=");
|
|
||||||
Serial.print(channel);
|
|
||||||
Serial.print(", control=");
|
|
||||||
Serial.print(control);
|
|
||||||
Serial.print(", value=");
|
|
||||||
Serial.print(value);
|
|
||||||
Serial.println();
|
|
||||||
}
|
|
||||||
|
|
10
keywords.txt
Normal file
10
keywords.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
USBHost KEYWORD1
|
||||||
|
USBHub KEYWORD1
|
||||||
|
KeyboardController KEYWORD1
|
||||||
|
MIDIDevice KEYWORD1
|
||||||
|
Task KEYWORD2
|
||||||
|
getKey KEYWORD2
|
||||||
|
getModifiers KEYWORD2
|
||||||
|
getOemKey KEYWORD2
|
||||||
|
attachPress KEYWORD2
|
||||||
|
attachRelease KEYWORD2
|
10
library.properties
Normal file
10
library.properties
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name=USBHost_t36
|
||||||
|
version=0.1
|
||||||
|
author=Paul Stoffregen
|
||||||
|
maintainer=Paul Stoffregen
|
||||||
|
sentence=Connect USB devices to the USB Host of Teensy 3.6.
|
||||||
|
paragraph=
|
||||||
|
category=Communication
|
||||||
|
url=https://github.com/PaulStoffregen/USBHost_t36
|
||||||
|
architectures=*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user