#include <avrpins.h>
#include <max3421e.h>
#include <usbhost.h>
#include <usb_ch9.h>
#include <Usb.h>
#include <usbhub.h>
#include <avr/pgmspace.h>
#include <address.h>
#include <adk.h>
#include <printhex.h>
#include <message.h>
#include <hexdump.h>
#include <parsetools.h>
//USB Usb;
//USBHub hub0(&Usb);
//USBHub hub1(&Usb);
//ADK adk(&Usb,"Guidebee Pty Ltd.", "LedDemoKit", "DemoKit Arduino Board", "1.0", "http://www.imobilebbs.com", "0000000012345678");
uint8_t b, b1;
#define START_MOTOR 8
#define STOP_MOTOR 7
#define ERROR_INDICATOR 13
void setup();
void loop();
void init_leds()
{
pinMode(START_MOTOR, OUTPUT);
pinMode(STOP_MOTOR, OUTPUT);
digitalWrite(START_MOTOR, LOW);
digitalWrite(STOP_MOTOR, LOW);
}
void setup()
{
Serial.begin(115200);
Serial.println("\r\nADK demo start");
if (Usb.Init() == -1) {
Serial.println("OSCOKIRQ failed to assert");
while(1); //halt
}//if (Usb.Init() == -1...
init_leds();
}
void loop()
{
uint8_t rcode;
uint8_t msg[3] = { 0x00 };
Usb.Task();
if( adk.isReady() == false ) {
digitalWrite(ERROR_INDICATOR, HIGH);
return;
}else{
digitalWrite(ERROR_INDICATOR, LOW);
}
uint16_t len = sizeof(msg);
rcode = adk.RcvData(&len, msg);
if(len > 0) {
USBTRACE("\r\nData Packet.");
// assumes only one command per packet
if (msg[0] == 0x2) {
switch( msg[1] ) {
case 0:
USBTRACE("LED 1\r\n.");
if(msg[2]>128){
digitalWrite(START_MOTOR, HIGH);
} else{
digitalWrite(START_MOTOR, LOW);
}
break;
case 1:
USBTRACE("LED 2\r\n.");
if(msg[2]>128){
digitalWrite(STOP_MOTOR, HIGH);
} else{
digitalWrite(STOP_MOTOR, LOW);
}
break;
}//switch( msg[1]...
}
}//if( len > 0...
msg[0] = 0x1;
delay( 10 );
}
arduino
最新推荐文章于 2018-06-08 20:55:05 发布