aaaaaaaaa

Dependencies:   QEI mbed

Fork of MainBoard2018_Auto_Master_A_new by Akihiro Nakabayashi

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Switch.cpp Source File

Switch.cpp

00001 #include "Switch.h"
00002 
00003 #include <stdint.h>
00004 #include "mbed.h"
00005 
00006 namespace SWITCH {
00007     DigitalIn dipSw[] = {
00008         DigitalIn(DIP0_PIN),
00009         DigitalIn(DIP1_PIN),
00010         DigitalIn(DIP2_PIN),
00011         DigitalIn(DIP3_PIN),
00012     };
00013 
00014     DigitalIn limitSw(LS_PIN);
00015     
00016     DigitalOut selectPin[] = {
00017         DigitalOut(SELECT0_PIN),
00018         DigitalOut(SELECT1_PIN),
00019         DigitalOut(SELECT2_PIN),
00020         DigitalOut(SELECT3_PIN),
00021     };
00022 
00023     void DipSw::Initialize() {
00024         for(uint8_t i=0; i < sizeof(dipSw)/sizeof(dipSw[0]); i++) {
00025             dipSw[i].mode(PullUp);
00026         }
00027     }
00028 
00029     uint8_t DipSw::GetStatus() {
00030         if(DIP0 == SW_ON)       return 0;
00031         else if(DIP1 == SW_ON)  return 1;
00032         else if(DIP2 == SW_ON)  return 2;
00033         else if(DIP3 == SW_ON)  return 3;
00034 
00035         return 0;
00036     }
00037 
00038     void LimitSw::Initialize() {
00039         for(uint8_t i=0; i<4; i++) selectPin[i] = 0;
00040         limitSw.mode(PullUp);
00041     }
00042 
00043     bool LimitSw::IsPressed(int index) {
00044         // if(index > 0x0f) return false;
00045 
00046         //printf("%d\n", index);
00047 
00048         MP_Channel ch;
00049         
00050         switch(index){
00051             case 0:
00052             ch.all = 10;
00053             break;
00054             case 1:
00055             ch.all = 11;
00056             break;
00057             case 2:
00058             ch.all = 8;
00059             break;
00060             case 3:
00061             ch.all = 9;
00062             break;
00063             case 4:
00064             ch.all = 6;
00065             break;
00066             case 5:
00067             ch.all = 7;
00068             break;
00069             case 6:
00070             ch.all = 4;
00071             break;
00072             case 7:
00073             ch.all = 5;
00074             break;
00075             case 8:
00076             ch.all = 2;
00077             break;
00078             case 9:
00079             ch.all = 3;
00080             break;
00081         }
00082         
00083 
00084         selectPin[0] = ch.s0;
00085         selectPin[1] = ch.s1;
00086         selectPin[2] = ch.s2;
00087         selectPin[3] = ch.s3;
00088         
00089         wait_us(1);
00090 
00091         return limitSw ? false : true;
00092     }
00093 }