For coursework of group 3 in SOFT564Z
Dependencies: Motordriver ros_lib_kinetic
Diff: VL6180.hpp
- Revision:
- 12:82b8fe254222
- Parent:
- 10:c752a8d76ee2
--- a/VL6180.hpp Thu Dec 19 00:13:38 2019 +0000 +++ b/VL6180.hpp Sun Jan 05 15:42:22 2020 +0000 @@ -1,6 +1,6 @@ #include "mbed.h" -#include "General.hpp" -#include "rtos.h" +//#include "General.hpp" +//#include "rtos.h" #include "Pins.h" #ifndef Define_ONCE_VL6180 @@ -11,39 +11,30 @@ #define TOF_Addresses {0x29} //, 0x2A, 0x2B, 0x2C} #define Shifted_TOF_Addresses {0x82} //, 0x84, 0x86, 0x88} -// Thread that runs TOF sensors -int TOF_Thread(); + +//Addresses +#define address1 (0x29) +#define address2 (0x2A) +#define address3 (0x2B) +#define address4 (0x2C) -// Class Terminal expects tx and rx pins and is used for controlling a serialy conected terminal -class VL6180 -{ -public: - VL6180(I2C& comm_bus, PinName SHDWN, char Address) : shutdown(SHDWN), i2c(comm_bus){addr = Address;}; +//Shifted addresses, so the R/W command can be added +#define address1shift (address1<<1) +#define address2shift (address2<<1) +#define address3shift (address3<<1) +#define address4shift (address4<<1) + - bool Init(void); - bool TOF_PWR(bool State); - void WriteByte(wchar_t reg, char data); - void WriteByte_Uninitialized(wchar_t reg, char data, char Uninitialized_Address); - int Start_Range(void); - int Poll_Range(void); - int Read_Range(void); - int Clear_Interrupts(void); - -private: - // I2C Bus TOF is connected to - I2C& i2c; - // Private functions - char ReadByte(wchar_t reg); - char ReadByte_Uninitialized(wchar_t reg, char Uninitialized_Address); - void WriteByte_Uninitialized(wchar_t reg, char data); - // Private Variables - char addr; - // IOs - DigitalOut shutdown; -}; +// Thread that runs TOF sensors +void TOF_Handler(); -// TypeDef for pointer to the TOF class (needed for dynamic creation of objects) -typedef VL6180* TOFsPtr; -// Function to Initialise all TOF sensors -bool Init_All_TOFs(TOFsPtr *tof); +int VL6180_Init(char addr); +void WriteByte_Uninitialized(wchar_t reg, char data, char addr); +char ReadByte(wchar_t reg, char addr); +int VL6180_Start_Range(char addr); +int VL6180_Poll_Range(char addr); +int VL6180_Read_Range(char addr); +int VL6180_Clear_Interrupts(char addr); +void Get_TOF_Reading(void); + #endif