unsigned long Encoder::read() { if(mode == MODE_NOSET) return 0L; if(mode == MODE_CAPTURE) { if(capture_state == INTR_A_PULSE_LOW) return (pulseInData[mcn][0][0]/100L); else if(capture_state == INTR_A_PULSE_HIGH) return (pulseInData[mcn][0][1]/100L); else if(capture_state == INTR_B_PULSE_LOW) return (pulseInData[mcn][1][0]/100L); else if(capture_state == INTR_B_PULSE_HIGH) return (pulseInData[mcn][1][1]/100L); else if(capture_state == INTR_Z_PULSE_LOW) return (pulseInData[mcn][2][0]/100L); else if(capture_state == INTR_Z_PULSE_HIGH) return (pulseInData[mcn][2][1]/100L); else return 0L; } if(mode == MODE_SSI) return mcssi_ReadData(mcn, mdn); return mcenc_ReadPulCnt(mcn, mdn); }
unsigned long Encoder::read() { unsigned long tmp = 0L; if(mode == MODE_NOSET) return 0L; #if defined (DMP_DOS_BC) || (DMP_DOS_DJGPP) if(mode == MODE_CAPTURE) { if(capture_state == INTR_A_PULSE_LOW) return (pulseInData[mcn][0][0]/100L); else if(capture_state == INTR_A_PULSE_HIGH) return (pulseInData[mcn][0][1]/100L); else if(capture_state == INTR_B_PULSE_LOW) return (pulseInData[mcn][1][0]/100L); else if(capture_state == INTR_B_PULSE_HIGH) return (pulseInData[mcn][1][1]/100L); else if(capture_state == INTR_Z_PULSE_LOW) return (pulseInData[mcn][2][0]/100L); else if(capture_state == INTR_Z_PULSE_HIGH) return (pulseInData[mcn][2][1]/100L); else return 0L; } if(mode == MODE_SSI) return mcssi_ReadData(mcn, mdn); return mcenc_ReadPulCnt(mcn, mdn); #elif defined (DMP_LINUX) lockMCMSIF(); if(mode == MODE_CAPTURE) {unLockMCMSIF(); return tmp;} if(mode == MODE_SSI) { tmp = mcssi_ReadData(mcn, mdn); unLockMCMSIF(); return tmp; } tmp = mcenc_ReadPulCnt(mcn, mdn); unLockMCMSIF(); return tmp; #endif }