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: ExioBufferdController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 10:5d1a09afe152
- Parent:
- 9:76d17c5cac87
- Child:
- 11:325c5e9d28e2
diff -r 76d17c5cac87 -r 5d1a09afe152 main.cpp
--- a/main.cpp Fri Nov 04 23:20:32 2016 +0000
+++ b/main.cpp Fri Nov 04 23:37:24 2016 +0000
@@ -24,6 +24,24 @@
// MExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset);
ExioMcp23s17 Exio(0x00, Spi, PD_2, PA_13);
+bool state = false;
+uint8_t count = 0;
+
+//------------------------------------------------------------------------------
+// Callback functions
+//
+void pa6Falled() {
+ state = !state;
+}
+
+void pa7Falled() {
+ count++;
+}
+
+
+//------------------------------------------------------------------------------
+// Test functions
+//
void testExioInBuffer()
{
printf("*** Test ExioInBuffer ***\r\n");
@@ -149,17 +167,6 @@
}
}
-bool state = false;
-uint8_t count = 0;
-
-void pa7Falled() {
- count++;
-}
-
-void pa6Falled() {
- state = !state;
-}
-
void testExioBufferedPinDetect()
{
printf("*** Test ExioBufferedPinDetect ***\r\n");
@@ -213,33 +220,56 @@
//testExioBufferedIn();
//testExioBufferedDebounceIn();
//testExioBufferedRotaryEncoder();
- testExioBufferedPinDetect();
-
- /*
+ //testExioBufferedPinDetect();
printf("*** Test ExioBufferedContoroller ***\r\n");
// Reset MCP23S17 (初期化時にreset()が必要)
Exio.reset();
+ // PinDetect
ExioInBuffer inBufferA(&Exio, ExioPortA);
+ ExioBufferedPinDetect pinA6(&inBufferA, 6);
+ ExioBufferedPinDetect pinA7(&inBufferA, 7);
- ExioBufferedDebounceIn pinA6(&inBufferA, 6);
- ExioBufferedDebounceIn pinA7(&inBufferA, 7);
+ // assign callback functions
+ pinA6.attach_asserted(&pa6Falled);
+ pinA6.setAssertValue(0);
+ pinA7.attach_asserted(&pa7Falled);
+ pinA7.setAssertValue(0);
- // Start Timers
+ // DebounceIn
+ ExioInBuffer inBufferB(&Exio, ExioPortB);
+ ExioBufferedDebounceIn inB[] = {
+ ExioBufferedDebounceIn(&inBufferB, 0),
+ ExioBufferedDebounceIn(&inBufferB, 1),
+ ExioBufferedDebounceIn(&inBufferB, 2),
+ ExioBufferedDebounceIn(&inBufferB, 3),
+ ExioBufferedDebounceIn(&inBufferB, 4),
+ ExioBufferedDebounceIn(&inBufferB, 5),
+ ExioBufferedDebounceIn(&inBufferB, 6),
+ ExioBufferedDebounceIn(&inBufferB, 7)
+ };
+
+ // Start Timers for polling MCP23S17
inBufferA.run(5);
- pinA6.set_debounce_us(10000);
- pinA7.set_debounce_us(10000);
+ inBufferB.run(10);
+
+ // Start Timers for PinDetect
+ pinA6.setSampleFrequency(10000);
+ pinA7.setSampleFrequency(10000);
+
+ // Start Timers for DebounceIn
+ for (int i = 0; i < 8; i++) {
+ inB[i].set_debounce_us(10000);
+ inB[i].set_debounce_us(10000);
+ }
while(true) {
- if (pinA6.read()) {
- state = !state;
+ for (int i = 0; i < 8; i++) {
+ int va = inB[i].read();
+ printf("%d ", va);
}
- if (pinA7.read()) {
- count++;
- }
- printf("%d %d\r\n", state, count);
+ printf(" %d %d \r\n", state, count);
}
- */
}
\ No newline at end of file