Taiki Maruyama
/
MainBoard2018_Auto_Master_A_neww
aaaaaaaaa
Fork of MainBoard2018_Auto_Master_A_new by
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Wed Jul 13 2022 01:10:06 by 1.7.2