mirror of
https://github.com/felis/USB_Host_Shield_2.0.git
synced 2024-03-22 11:31:26 +01:00
analogWrite is not implemented on the ESP32
See: https://github.com/espressif/arduino-esp32/issues/4
This commit is contained in:
parent
cf1b69513f
commit
bfac192732
1 changed files with 66 additions and 50 deletions
|
@ -10,94 +10,110 @@
|
||||||
USB Usb;
|
USB Usb;
|
||||||
USBHub hub0(&Usb);
|
USBHub hub0(&Usb);
|
||||||
USBHub hub1(&Usb);
|
USBHub hub1(&Usb);
|
||||||
ADK adk(&Usb,"Google, Inc.",
|
ADK adk(&Usb, "Google, Inc.",
|
||||||
"DemoKit",
|
"DemoKit",
|
||||||
"DemoKit Arduino Board",
|
"DemoKit Arduino Board",
|
||||||
"1.0",
|
"1.0",
|
||||||
"http://www.android.com",
|
"http://www.android.com",
|
||||||
"0000000012345678");
|
"0000000012345678");
|
||||||
uint8_t b, b1;
|
uint8_t b, b1;
|
||||||
|
|
||||||
|
|
||||||
#define LED1_RED 3
|
#define LED1_RED 3
|
||||||
#define BUTTON1 2
|
#define BUTTON1 2
|
||||||
|
|
||||||
|
#ifdef ESP32
|
||||||
|
#define LED1_RED_CHANNEL 0
|
||||||
|
#endif
|
||||||
|
|
||||||
void init_buttons()
|
void init_buttons()
|
||||||
{
|
{
|
||||||
pinMode(BUTTON1, INPUT);
|
pinMode(BUTTON1, INPUT);
|
||||||
|
|
||||||
// enable the internal pullups
|
// enable the internal pullups
|
||||||
digitalWrite(BUTTON1, HIGH);
|
digitalWrite(BUTTON1, HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_leds()
|
void init_leds()
|
||||||
{
|
{
|
||||||
digitalWrite(LED1_RED, 0);
|
digitalWrite(LED1_RED, 0);
|
||||||
|
|
||||||
pinMode(LED1_RED, OUTPUT);
|
#ifdef ESP32
|
||||||
|
ledcAttachPin(LED1_RED, LED1_RED_CHANNEL); // Assign LED pin to channel 0
|
||||||
|
ledcSetup(LED1_RED_CHANNEL, 12000, 8); // 12 kHz PWM, 8-bit resolution
|
||||||
|
#else
|
||||||
|
pinMode(LED1_RED, OUTPUT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
#if !defined(__MIPSEL__)
|
#if !defined(__MIPSEL__)
|
||||||
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
|
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
|
||||||
#endif
|
#endif
|
||||||
Serial.println("\r\nADK demo start");
|
Serial.println("\r\nADK demo start");
|
||||||
|
|
||||||
if (Usb.Init() == -1) {
|
if (Usb.Init() == -1) {
|
||||||
Serial.println("OSCOKIRQ failed to assert");
|
Serial.println("OSCOKIRQ failed to assert");
|
||||||
while(1); //halt
|
while (1); //halt
|
||||||
}//if (Usb.Init() == -1...
|
}//if (Usb.Init() == -1...
|
||||||
|
|
||||||
|
init_leds();
|
||||||
init_leds();
|
init_buttons();
|
||||||
init_buttons();
|
b1 = digitalRead(BUTTON1);
|
||||||
b1 = digitalRead(BUTTON1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
uint8_t rcode;
|
uint8_t rcode;
|
||||||
uint8_t msg[3] = { 0x00 };
|
uint8_t msg[3] = { 0x00 };
|
||||||
Usb.Task();
|
Usb.Task();
|
||||||
|
|
||||||
if( adk.isReady() == false ) {
|
if ( adk.isReady() == false ) {
|
||||||
analogWrite(LED1_RED, 255);
|
#ifdef ESP32
|
||||||
return;
|
ledcWrite(LED1_RED_CHANNEL, 255);
|
||||||
}
|
#else
|
||||||
uint16_t len = sizeof(msg);
|
analogWrite(LED1_RED, 255);
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint16_t len = sizeof(msg);
|
||||||
|
|
||||||
rcode = adk.RcvData(&len, msg);
|
rcode = adk.RcvData(&len, msg);
|
||||||
if( rcode ) {
|
if ( rcode ) {
|
||||||
USBTRACE2("Data rcv. :", rcode );
|
USBTRACE2("Data rcv. :", rcode );
|
||||||
}
|
}
|
||||||
if(len > 0) {
|
if (len > 0) {
|
||||||
USBTRACE("\r\nData Packet.");
|
USBTRACE("\r\nData Packet.");
|
||||||
// assumes only one command per packet
|
// assumes only one command per packet
|
||||||
if (msg[0] == 0x2) {
|
if (msg[0] == 0x2) {
|
||||||
switch( msg[1] ) {
|
switch ( msg[1] ) {
|
||||||
case 0:
|
case 0:
|
||||||
|
#ifdef ESP32
|
||||||
|
ledcWrite(LED1_RED_CHANNEL, 255 - msg[2]);
|
||||||
|
#else
|
||||||
analogWrite(LED1_RED, 255 - msg[2]);
|
analogWrite(LED1_RED, 255 - msg[2]);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
}//switch( msg[1]...
|
}//switch( msg[1]...
|
||||||
}//if (msg[0] == 0x2...
|
}//if (msg[0] == 0x2...
|
||||||
}//if( len > 0...
|
}//if( len > 0...
|
||||||
|
|
||||||
msg[0] = 0x1;
|
msg[0] = 0x1;
|
||||||
|
|
||||||
b = digitalRead(BUTTON1);
|
b = digitalRead(BUTTON1);
|
||||||
if (b != b1) {
|
if (b != b1) {
|
||||||
USBTRACE("\r\nButton state changed");
|
USBTRACE("\r\nButton state changed");
|
||||||
msg[1] = 0;
|
msg[1] = 0;
|
||||||
msg[2] = b ? 0 : 1;
|
msg[2] = b ? 0 : 1;
|
||||||
rcode = adk.SndData( 3, msg );
|
rcode = adk.SndData( 3, msg );
|
||||||
if( rcode ) {
|
if ( rcode ) {
|
||||||
USBTRACE2("Button send: ", rcode );
|
USBTRACE2("Button send: ", rcode );
|
||||||
}
|
}
|
||||||
b1 = b;
|
b1 = b;
|
||||||
}//if (b != b1...
|
}//if (b != b1...
|
||||||
|
|
||||||
|
|
||||||
delay( 10 );
|
delay( 10 );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue