mirror of
https://github.com/gdsports/USBHost_t36
synced 2024-11-24 01:52:23 -05:00
Convert to Arduino library format
This commit is contained in:
parent
f3d503259c
commit
6bacbaf537
@ -26,6 +26,9 @@
|
||||
|
||||
#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
|
||||
// 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