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.
Fork of CapKey_46_v1_button by
Revision 1:232e3f430f69, committed 2014-10-29
- Comitter:
- scohennm
- Date:
- Wed Oct 29 22:13:25 2014 +0000
- Parent:
- 0:8a169bac9011
- Child:
- 2:4535af993186
- Commit message:
- Two Channel test for KL36Z to Raspberry Pi For use in testing Cretaceous Dating Game for NMMNHS
Changed in this revision
| cdg_main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/cdg_main.cpp Mon Oct 20 21:02:24 2014 +0000
+++ b/cdg_main.cpp Wed Oct 29 22:13:25 2014 +0000
@@ -4,37 +4,40 @@
//Dating Game Capkey controller 07/16/2013 sc
// Modified for mbet KL46Z 10/07/2014
// Four inputs and Four relays
+// Changed to simulate capkeys with the KL on board buttons
#define PROGNAME "DG Cap Key v1.1\r\n"
#define KEYHIT "KEY1"
#define SERIAL_SPEED 9600
#define HIGH 1
#define LOW 0
-#define RESET_DELAY 1500
+#define RESET_DELAY 1200
#define RELAY_ON HIGH
#define RELAY_OFF LOW
#define LED_ON LOW
#define LED_OFF HIGH
#define DEBOUNCE 50
-#define NUMREL 4
+#define NUMREL 2 // really just the number of outputs
#define LCDDELAY 0.200
#define COUNTERLIMIT 300
// constants won't change. They're used here to
-// set pin numbers:
-//const int buttonPin = PUSH2;
+
-DigitalOut Relays[NUMREL] = {D10,D11,D12,D13}; // corresponds to touches 1,2,3,4
-DigitalIn capKeys[NUMREL] = {D2,D4,D6,D8};
-DigitalOut capRST[NUMREL] = {D3,D5,D7,D9};
/*
-DigitalOut Relays[NUMREL] = {D10}; // corresponds to touches 1,2,3,4
-DigitalIn capKeys[NUMREL] = {D2};
-DigitalOut capRST[NUMREL] = {D3,};
+DigitalOut Relays[NUMREL] = {D10,D11,D12,D13}; // corresponds to touches 1,2,3,4
+DigitalIn capKeys[NUMREL] = {PTC3,D4,D6,D8};
+DigitalOut capRST[NUMREL] = {D3,D5,D7,D9};
*/
+// make two channel both buttons for testing
+DigitalOut Relays[NUMREL] = {D10,D11};
+DigitalIn capKeys[NUMREL] = {PTC3, PTC12}; // on board buttons
+DigitalOut capRST[NUMREL] = {D3,D5};
+DigitalOut LEDs[NUMREL] = {LED_GREEN, LED_RED};
+/*
DigitalOut RLed(LED_RED);
DigitalOut GLed(LED_GREEN);
-
+*/
Timer millis;
Serial pc(USBTX, USBRX);
SLCD slcd; //define LCD display
@@ -69,6 +72,7 @@
for (i=0; i<NUMREL; i++){
Relays[i].write(RELAY_OFF);
capRST[i].write(HIGH);
+ LEDs[i].write(LED_OFF);
}
while (true) {
@@ -78,23 +82,24 @@
LCDCounter = LCDCounter % COUNTERLIMIT;
sprintf (lcdData,"%3d",LCDCounter);
LCDMess(lcdData, LCDDELAY);
- RLed.write(ledState);
- GLed.write(ledState);
+ //RLed.write(ledState);
+ //GLed.write(ledState);
//End dramatic effect
// read the state of the pushbutton value:
if(OKtoRead) {
for (i=0; i<NUMREL;i++){
- buttonVal = capKeys[i].read();
+ buttonVal = ! capKeys[i].read();
wait_ms(DEBOUNCE);
- buttonVal2 = capKeys[i].read();
+ buttonVal2 = ! capKeys[i].read();
buttonVal = buttonVal && buttonVal2;
if (buttonVal){
LCDMess(KEYHIT, LCDDELAY);
Relays[i].write(RELAY_ON);
capRST[i].write(LOW); //reset the cap key
- pc.printf("i=%d Relays[i] = %d\n\r", i, Relays[i]);
+ LEDs[i].write(LED_ON);
+ pc.printf("Relay = %d \n\r", i);
millis.reset();
relayTimeout = RESET_DELAY;
OKtoRead = false;
@@ -102,14 +107,15 @@
}
}
}//end OKtoRead
-
+
if (millis.read_ms() > relayTimeout) {
OKtoRead = true;
for (i=0; i<NUMREL; i++){
Relays[i].write(RELAY_OFF);
- capRST[i].write(HIGH);
-
+ capRST[i].write(HIGH);
+ LEDs[i].write(LED_OFF);
}
}
+
}// end forever while
} // end main
\ No newline at end of file
