2022Aのエンコーダを読んでとばす(サブ2基盤)
Dependencies: QEI SerialMultiByte mbed
main.cpp
00001 #include "mbed.h" 00002 #include "QEI.h" 00003 #include "SerialMultiByte.h" 00004 00005 QEI enc1(PB_6,PB_3,NC,100, QEI::X4_ENCODING); 00006 QEI enc2(PA_8,PA_9,NC,100, QEI::X4_ENCODING); 00007 QEI enc3(PB_6,PB_7,NC,100, QEI::X4_ENCODING); 00008 QEI enc4(PA_0,PA_1,NC,100, QEI::X4_ENCODING); 00009 00010 00011 Serial pc(USBTX,USBRX,115200); 00012 SerialMultiByte send(PC_12,PD_2); 00013 00014 //int Revol1; 00015 //int Current; 00016 //double GetAngle; 00017 //int Angle_rev; 00018 //double SumAngle; 00019 00020 Timer t; 00021 00022 int main() 00023 { 00024 // stop = 1; 00025 // uint8_t test[4] = {1,2,3,4}; 00026 int16_t Angle[4] = {0}; 00027 uint8_t Pulse[8] = {0}; 00028 t.start(); 00029 send.setHeaders(0xff,0xff); 00030 00031 while(1) 00032 { 00033 Angle[0] = enc1.getPulses(); 00034 Angle[1] = enc2.getPulses(); 00035 Angle[2] = enc3.getPulses(); 00036 Angle[3] = enc4.getPulses(); 00037 for(int i=0, j=0;i<8;i+=2,j++){ 00038 Pulse[i] = Angle[j] >> 8; 00039 Pulse[i+1] = Angle[j] & 255; 00040 } 00041 // Pulse[0] = Angle[0] >> 8; 00042 // Pulse[1] = Angle[0] & 255; 00043 00044 // Revol1 = enc1.getRevolutions(); 00045 // Current = enc1.getCurrentState(); 00046 // GetAngle = enc1.getAngle(); 00047 // Angle_rev = enc1.getAng_rev(); 00048 // SumAngle = enc1.getSumangle(); 00049 00050 00051 // pc.printf("t:%.2f | ENC0:%d | REV0:%d | Cur:%d | GetAngle:%.2f | Angle_rev:%d | SumAngle:%.2f", t.read(),Angle1,Revol1,Current,GetAngle,Angle_rev,SumAngle); 00052 pc.printf("t:%.2f | ENC1:%.2d | ENC2:%.2d | ENC3:%.2d | ENC4:%.2d |", t.read(),Angle[0],Angle[1],Angle[2],Angle[3]); 00053 pc.printf("\r\n"); 00054 send.sendData(Pulse,8); 00055 00056 // pc.printf("t:%.2f | test1:%.2d | test2:%.2d | test3:%.2d | test4:%.2d |", t.read(),test[0],test[1],test[2],test[3]); 00057 // pc.printf("\r\n"); 00058 // send.sendData(test,4); 00059 00060 } 00061 }
Generated on Sun Oct 9 2022 09:02:56 by
1.7.2