Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FastAnalogIn FastIO FastPWM SimpleDMA USBDevice mbed
Fork of Pinscape_Controller by
Diff: main.cpp
- Revision:
- 4:02c7cd7b2183
- Parent:
- 3:3514575d4f86
- Child:
- 5:a70c0bce770d
--- a/main.cpp Wed Jul 23 17:53:28 2014 +0000
+++ b/main.cpp Thu Jul 24 05:50:36 2014 +0000
@@ -10,7 +10,7 @@
{
public:
MyUSBJoystick(uint16_t vendor_id, uint16_t product_id, uint16_t product_release)
- : USBJoystick(vendor_id, product_id, product_release)
+ : USBJoystick(vendor_id, product_id, product_release, false)
{
suspended_ = false;
}
@@ -25,8 +25,8 @@
int suspended_;
};
-// on-board RGB LED elements - we use these for diagnostics
-PwmOut led1(LED1), led2(LED2), led3(LED3);
+// On-board RGB LED elements - we use these for diagnostic displays.
+DigitalOut ledR(LED1), ledG(LED2), ledB(LED3);
// calibration button - switch input and LED output
DigitalIn calBtn(PTE29);
@@ -65,9 +65,9 @@
static void updateWizOuts()
{
- led1 = wizState(0);
- led2 = wizState(1);
- led3 = wizState(2);
+ ledR = wizState(0);
+ ledG = wizState(1);
+ ledB = wizState(2);
}
struct AccPrv
@@ -214,9 +214,9 @@
int main(void)
{
// turn off our on-board indicator LED
- led1 = 1;
- led2 = 1;
- led3 = 1;
+ ledR = 1;
+ ledG = 1;
+ ledB = 1;
// set up a flash memory controller
FreescaleIAP iap;
@@ -279,12 +279,8 @@
acTimer.start();
int t0ac = acTimer.read_ms();
- // Create the joystick USB client. Light the on-board indicator LED
- // red while connecting, and change to green after we connect.
- led1 = 0;
+ // Create the joystick USB client
MyUSBJoystick js(0xFAFA, 0x00F7, 0x0003);
- led1 = 1;
- led2 = 0;
// create the accelerometer object
Accel accel(PTE25, PTE24, MMA8451_I2C_ADDRESS, PTA15);
@@ -463,15 +459,15 @@
calBtnLit = newCalBtnLit;
if (calBtnLit) {
calBtnLed = 1;
- led1 = 1;
- led2 = 1;
- led3 = 1;
+ ledR = 1;
+ ledG = 1;
+ ledB = 1;
}
else {
calBtnLed = 0;
- led1 = 1;
- led2 = 1;
- led3 = 0;
+ ledR = 1;
+ ledG = 1;
+ ledB = 0;
}
}
@@ -601,19 +597,32 @@
if (js.isSuspended() || !js.isConnected())
{
// go dark (turn off the indicator LEDs)
- led2 = 1;
- led3 = 1;
- led1 = 1;
+ ledG = 1;
+ ledB = 1;
+ ledR = 1;
// wait until we're connected and come out of suspend mode
- while (js.isSuspended() || !js.isConnected())
+ for (uint32_t n = 0 ; js.isSuspended() || !js.isConnected() ; ++n)
{
// spin for a bit
wait(1);
- // if we're not suspended, flash red; otherwise stay dark
- if (!js.isSuspended())
- led1 = !led1;
+ // if we're suspended, do a brief red flash; otherwise do a long red flash
+ if (js.isSuspended())
+ {
+ // suspended - flash briefly ever few seconds
+ if (n % 3 == 0)
+ {
+ ledR = 0;
+ wait(0.05);
+ ledR = 1;
+ }
+ }
+ else
+ {
+ // running, not connected - flash red
+ ledR = !ledR;
+ }
}
}
@@ -632,33 +641,33 @@
if (js.isSuspended())
{
// suspended - turn off the LEDs entirely
- led1 = 1;
- led2 = 1;
- led3 = 1;
+ ledR = 1;
+ ledG = 1;
+ ledB = 1;
}
else if (!js.isConnected())
{
// not connected - flash red
hb = !hb;
- led1 = (hb ? 0 : 1);
- led2 = 1;
- led3 = 1;
+ ledR = (hb ? 0 : 1);
+ ledG = 1;
+ ledB = 1;
}
else if (flash_valid)
{
// connected, NVM valid - flash blue/green
hb = !hb;
- led1 = 1;
- led2 = (hb ? 0 : 1);
- led3 = (hb ? 1 : 0);
+ ledR = 1;
+ ledG = (hb ? 0 : 1);
+ ledB = (hb ? 1 : 0);
}
else
{
// connected, factory reset - flash yellow/green
hb = !hb;
- led1 = (hb ? 0 : 1);
- led2 = 0;
- led3 = 1;
+ ledR = (hb ? 0 : 1);
+ ledG = 0;
+ ledB = 1;
}
// reset the heartbeat timer
