routeur done
Dependencies: mbed
Fork of APP4 by
routeur.cpp
00001 #include "routeur.hpp" 00002 00003 const char COORD_ADRESS[8] = {0x00, 0x13, 0xA2, 0x00, 0x40, 0x0A, 0x2F, 0xB3}; 00004 00005 Routeur::Routeur(PinName _tx, PinName _rx) : 00006 trame(_tx, _rx), accel(p9, p10), piton(p30) 00007 { 00008 DigitalOut reset(p8); 00009 00010 reset = 0; 00011 wait(0.4); 00012 reset = 1; 00013 wait(4); 00014 } 00015 00016 void Routeur::initAccel() 00017 { 00018 // Mise de l'accéléromètre en standby 00019 writeRegister(CTRL_REG1, 0x10); 00020 00021 // Set offset de l'accéléromètre 00022 writeRegister(0x31, 0xEE); 00023 00024 // activate de l'accéléromètre 00025 char c; 00026 readRegister(CTRL_REG1, &c); 00027 writeRegister(CTRL_REG1, c | 0x01); 00028 } 00029 00030 void Routeur::sendSwitchValue() 00031 { 00032 switchValue[0] = piton; 00033 00034 trame.sendTransmitRequest(COORD_ADRESS, switchValue, 1); 00035 } 00036 00037 void Routeur::sendAccelValues() 00038 { 00039 int ack = readRegisters(OUT_X_MSB, 6, accelValues); 00040 00041 trame.sendTransmitRequest(COORD_ADRESS, accelValues, 6); 00042 } 00043 00044 int Routeur::readRegister(char reg, char* data) 00045 { 00046 int ack = 0; 00047 accel.start(); 00048 ack = accel.write(DATA_REG_W); 00049 ack = accel.write(reg); 00050 accel.start(); 00051 ack = accel.write(DATA_REG_R); 00052 data[0] = accel.read(0); 00053 accel.stop(); 00054 00055 return ack; 00056 } 00057 00058 int Routeur::readRegisters(char reg, int range, char* data) 00059 { 00060 int ack = 0; 00061 accel.start(); 00062 ack = accel.write(DATA_REG_W); 00063 ack = accel.write(reg); 00064 accel.start(); 00065 ack = accel.write(DATA_REG_R); 00066 for (int i = 0; i < range - 1; i++) 00067 data[i] = accel.read(1); 00068 data[range - 1] = accel.read(0); 00069 accel.stop(); 00070 00071 return ack; 00072 } 00073 00074 int Routeur::writeRegister(char reg, char data) 00075 { 00076 int ack = 0; 00077 accel.start(); 00078 ack = accel.write(DATA_REG_W); 00079 ack = accel.write(reg); 00080 ack = accel.write(data); 00081 accel.stop(); 00082 00083 return ack; 00084 }
Generated on Wed Jul 13 2022 18:11:22 by 1.7.2