Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BME280 BMP280 TextLCD
FIFO.cpp
00001 #include "FIFO.hpp" 00002 00003 //vae 00004 DATA Data_Active;//Current data sample 00005 DATA Data_Buffer[mailsize];//Data buffer 00006 int Data_Buffer_Write_Pointer; 00007 int Write_To_Data_Buffer(DATA Data_Store, int Write_Pointer); 00008 int Write_Pointer = 0; 00009 Mutex Data_Buffer_Lock; 00010 00011 int Write_Data(DATA Data_Store, int Write_Pointer)//Writes data passed in to the array at address Write Pointer 00012 { 00013 Data_Buffer_Lock.lock();//Appling lock for critial section 00014 Data_Buffer[Write_Pointer] = Data_Store; 00015 if(Write_Pointer < mailsize - 1)//Checks if write pointer will be greater than mail size 00016 { 00017 Write_Pointer = Write_Pointer + 1;//Increment write pointer 00018 } 00019 else 00020 { 00021 Write_Pointer = 0;//Else set it to 0 thus a FIFO system 00022 } 00023 Data_Buffer_Lock.unlock();//Releasing lock for critial section 00024 return Write_Pointer;//New address of Write pointer 00025 00026 } 00027 DATA Read_Data(int Read_Pointer) 00028 { 00029 Data_Buffer_Lock.lock();//Appling lock for critial section 00030 DATA Temp_Data = Data_Buffer[Read_Pointer]; 00031 Data_Buffer_Lock.unlock();//Releasing lock for critial section 00032 00033 return Temp_Data; 00034 } 00035 void Delete_Data(int Delete_Pointer) 00036 { 00037 Data_Buffer_Lock.lock();//Appling lock for critial section 00038 Data_Buffer[Delete_Pointer].set_all_zero(); 00039 Data_Buffer_Lock.unlock();//Releasing lock for critial section 00040 }
Generated on Sun Jul 31 2022 05:12:27 by
1.7.2