From 822af574d403b11c009b48739507743dd0adfd25 Mon Sep 17 00:00:00 2001 From: atomega Date: Fri, 19 Mar 2021 23:25:43 +0000 Subject: [PATCH] Cleaned the pca9685 driver and Added some TODOs. Started with the ads1050 driver --- developpment/drivers/ads1015/ads1050.cpp | 0 developpment/drivers/ads1015/ads1050.h | 58 ++++++ developpment/drivers/bh1750/bh1750.o | Bin 3776 -> 0 bytes developpment/drivers/pca9685/pca9685.cpp | 215 ++++++++++++++++++-- developpment/drivers/pca9685/pca9685.h | 16 +- developpment/drivers/pca9685/pca9685.o | Bin 12296 -> 0 bytes developpment/drivers/pf8574/pf8574lcd.c | 22 +- developpment/drivers/pf8574/pf8574lcd.h | 12 +- developpment/drivers/pf8574/pf8574lcd.o | Bin 3772 -> 0 bytes developpment/interfacer.cpp | 58 ++++-- developpment/interfacer.o | Bin 37060 -> 0 bytes developpment/management/commandManager.o | Bin 23436 -> 0 bytes developpment/management/errorHandling.o | Bin 9988 -> 0 bytes developpment/periferals/i2c/i2c_ch0_pImpL.o | Bin 5288 -> 0 bytes developpment/periferals/i2c/i2c_ch1_pImpL.o | Bin 7812 -> 0 bytes developpment/periferals/i2c/i2c_driver.o | Bin 5280 -> 0 bytes developpment/runtest | Bin 64908 -> 0 bytes developpment/systems/systemCall.o | Bin 27828 -> 0 bytes 18 files changed, 326 insertions(+), 55 deletions(-) create mode 100644 developpment/drivers/ads1015/ads1050.cpp create mode 100644 developpment/drivers/ads1015/ads1050.h delete mode 100644 developpment/drivers/bh1750/bh1750.o delete mode 100644 developpment/drivers/pca9685/pca9685.o delete mode 100644 developpment/drivers/pf8574/pf8574lcd.o delete mode 100644 developpment/interfacer.o delete mode 100644 developpment/management/commandManager.o delete mode 100644 developpment/management/errorHandling.o delete mode 100644 developpment/periferals/i2c/i2c_ch0_pImpL.o delete mode 100644 developpment/periferals/i2c/i2c_ch1_pImpL.o delete mode 100644 developpment/periferals/i2c/i2c_driver.o delete mode 100755 developpment/runtest delete mode 100644 developpment/systems/systemCall.o diff --git a/developpment/drivers/ads1015/ads1050.cpp b/developpment/drivers/ads1015/ads1050.cpp new file mode 100644 index 0000000..e69de29 diff --git a/developpment/drivers/ads1015/ads1050.h b/developpment/drivers/ads1015/ads1050.h new file mode 100644 index 0000000..5a21702 --- /dev/null +++ b/developpment/drivers/ads1015/ads1050.h @@ -0,0 +1,58 @@ +/* + * + * https://www.ti.com/lit/ds/symlink/ads1015.pdf?ts=1616137488325&ref_url=https%253A%252F%252Fwww.google.com%252F + * + * + * + * + * + */ + +#ifndef _ADS1015_H_ +#define _ADS1015_H_ + + +#define ADS115_MUX_AIN0P_AIN1N 0 // AINP=AIN0 and AINN=AIN1 +#define ADS115_MUX_AIN0P_AIN3N 1 // AINP=AIN0 and AINN=AIN3 +#define ADS115_MUX_AIN1P_AIN3N 2 // AINP=AIN1 and AINN=AIN3 +#define ADS115_MUX_AIN2P_AIN3N 3 // AINP=AIN2 and AINN=AIN3 +#define ADS115_MUX_AIN0_GND 4 // AIN0 and AINN=GND +#define ADS115_MUX_AIN0_GND 5 // AIN1 and AINN=GND +#define ADS115_MUX_AIN0_GND 6 // AIN2 and AINN=GND +#define ADS115_MUX_AIN0_GND 7 // AIN3 and AINN=GND + +//do not applymorethan VDD+0.3 V to the analog inputs of the device +#define ADS115_GAIN_6144 0 // ±6.144V +#define ADS115_GAIN_4096 1 // ±6.144V +#define ADS115_GAIN_2048 2 // ±6.144V +#define ADS115_GAIN_1024 3 // ±6.144V +#define ADS115_GAIN_512 4 // ±6.144V +#define ADS115_GAIN_256 5 // ±6.144V + +#define ADS115_MODE_CONTINIOUS 0 +#define ADS115_MODE_SINGLE 1 + + +#include +#include +#include +#include +#include "../../periferals/i2c/i2c_ch1_pImpL.hpp" +#include "../../management/errorHandling.h" + +class Ads1015 +{ + public: + Ads1015(i2c_ch1_pImpL* i2c,ErrorHandler* err); + setMultiplexer(uint8_t mode) + private: + ErrorHandler* errorHandling; + i2c_ch1_pImpL* i2c_ads1015; + +}; + + + + + +#endif //_ADS1015_H_ diff --git a/developpment/drivers/bh1750/bh1750.o b/developpment/drivers/bh1750/bh1750.o deleted file mode 100644 index 93f71e798b2645337c457413a270f5c2fc11df0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3776 zcmb_ePfQ$T6o0e3{3*qDX)&cOsiVb&{$aZd3x%eMw78`NT9K`q*u&S^*^!;F>}+Oc z1zHoeRwbz>P4s3A96XrlfrBOgBH;IZBHww0wOvw)Elc0~^Oy=xo< zYD@BBl_j%!?#zt@f$o?9z=U%VynZ-Hv?Sgl!T+|dxlPygvsqy?8EsCvH+UL;OoAO(Z&PH z4)ELH+{e#wNZGzE>T-xg!$U(SF6qmG(s2q`lIN4LCIL{a<&DN3;* zgtpG9adWbcc6xx)w3wr_t4n9sP6Enq(D-+J-pA^Q}E@JR@-g>a?TTX+3GLi)QQJOF#%FV2DM%ZB`? zLilnJLw-AmIni7pb-Xv3P|IcN$dh<6YmcP{%DSd%GrFY-yc?EnR#e+n^$VdJct;qX z9}r@)R1xaz>{xe7h`jcaQYqS^XsA=7Y!r2MF5?C4QHq#VY{L|aIq6RJ>60bH)Tl!N zPQ%}_6{CCVey`1X9w{BiPTO6xZ$bOtH0DK0qRG z8KQvwEox4VA)lw&hin|t_Jc$>Js!i^XZ#BDPNI*PAHo~O9FOl!=0}LW1CQWC{5|ud zL_aX^A{xi}XTMqI@SA52zZ=Zq_c1v8eaakuOU&VShxNyZ{$h>~S~K3T2p;h`^Au4l z^KQOSM2BJ17~uRNaddNewError(-1,__FILE__,"Selected duty cycle is too big",KILL); @@ -19,7 +29,9 @@ Pca9685::Pca9685(i2c_ch1_pImpL* i2c, ErrorHandler* err) errorHandling->addNewError(-7,__FILE__,"On Duty Cyle if greater than alowed maximum of 4095",SPARE); errorHandling->addNewError(-8,__FILE__,"Off Duty Cyle if greater than alowed maximum of 4095",SPARE); errorHandling->addNewError(-9,__FILE__,"Cumulation of the On & Off Duty Cyle if greater than alowed maximum of 4095",SPARE); - errorHandling->addNewError(-10,__FILE__,"On & Off Duty Cyle can't be equal to each other",SPARE); + errorHandling->addNewError(-10,__FILE__,"On & Off count cylces can't be equal to each other",SPARE); + errorHandling->addNewError(-11,__FILE__,"Duty cycle can't be greater than 100 percent",SPARE); + errorHandling->addNewError(-12,__FILE__,"This port number doesn't exist",KILL); } /*Refere to datasheet page 25 @@ -32,7 +44,7 @@ Pca9685::Pca9685(i2c_ch1_pImpL* i2c, ErrorHandler* err) */ void Pca9685::setPwmFreq(float frequency) -{ +{ if(frequency > 1526) { frequency = 1526; @@ -49,67 +61,231 @@ void Pca9685::setPwmFreq(float frequency) errorHandling->handleError(-4,__FILE__); } - m_currentPrescale = round((m_oscillatorFreq / ( 4096 * frequency)) - 1); - std::cout << unsigned(m_currentPrescale) << std::endl; + m_currentPrescale = round(((m_oscillatorFreq / ( 4096 * frequency))) - 1); + + + setPwmRaw(m_currentPrescale); +} + + + +//The impresition leves of thise device is out from this world this is a crude way from me trying to mitigate de awfullness. +//Tested with other module all to react the same +//maybe an external Clock could help with that but MCU level precision will never be reached !! Too sad +uint8_t Pca9685::compensatePrescale(uint8_t preScale) +{ + uint8_t compensation = 0; + + if(preScale > 236) + { + compensation = 12; + } + else if(preScale > 216 ) + { + compensation = 11; + } + else if(preScale > 200) + { + compensation = 10; + } + else if(preScale > 178) + { + compensation = 9; + } + else if(preScale > 157) + { + compensation = 8; + } + else if(preScale > 134) + { + compensation = 7; + } + else if(preScale > 114) + { + compensation = 6; + } + else if(preScale > 93) + { + compensation = 5; + } + else if(preScale > 71) + { + compensation = 4; + } + else if(preScale > 52) + { + compensation = 3; + } + else if(preScale > 32) + { + compensation = 2; + } + else if(preScale > 9) + { + compensation = 1; + } + return preScale - compensation; +} + + +// direct register acess and raw value to set PWM +// Datashhet page 25 +// FEh | PRE_SCALE7:0 | PRE_SCALE[7:0] | R/W | 0001 1110 | prescaler to program the PWM output frequency (default is 200 Hz) +void Pca9685::setPwmRaw(uint8_t preScale) +{ + m_currentPrescale = compensatePrescale(preScale); + if(m_currentPrescale < 3 ) + { + m_currentPrescale = 3; + errorHandling->handleError(-3,__FILE__); + } + else if(m_currentPrescale > 255) + { + m_currentPrescale = 255; + errorHandling->handleError(-4,__FILE__); + } + //std::cout << unsigned(m_currentPrescale) << " " << std::endl; sleep(); i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_PRESCALE, m_currentPrescale); wakeup(); } + +/*Refere to datasheet page 25 + * + * + * osc_clock + * Freq = _______________________ + * 4096 * (prescaler -1) + * + */ float Pca9685::getPwmFreq() { - m_currentPrescale = i2c_pca9685->readByte(PCA9685_I2C_ADDRESS,PCA9685_REG_PRESCALE); + m_currentPrescale = compensatePrescale(i2c_pca9685->readByte(PCA9685_I2C_ADDRESS,PCA9685_REG_PRESCALE)); m_currentPwmFreq = (m_oscillatorFreq / (4096 * ((float)m_currentPrescale + 1))); - std::cout << m_currentPwmFreq << std::endl; +// std::cout << m_currentPwmFreq << std::endl; return m_currentPwmFreq; } -void Pca9685::setDutyPercent(uint8_t ledNo, uint8_t on, uint8_t off) -{ - -} +/* + *The duty cylce is set in a special fation, rather than being relation between on and off time it is the timing definition of their ocurances. + * ON Meas after how many cycle counts from the PWM start will the risign edge occur + * OFF Means after heo many cycle counts from the PWM start will the falling edge will occur + * Than means : ON can't be equal to OFF anf OFF cna't be smaller than off + * 4096 as value is not a typo error it is used to turn one led fully on or off. Refere to datasheet page 21 + */ void Pca9685::setDutyRaw(uint8_t ledNo, uint16_t on, uint16_t off) { - m_currentLED = PCA9685_LED_PWM_REG_START + (ledNo * PCA9685_LED_NEXT_OFFSET); - + if(ledNo > 15) + { + errorHandling->handleError(-12,__FILE__); + } + if(on > 4095) { - on = 4095; + on = 4096; off = 0; errorHandling->handleError(-7,__FILE__); } if(off > 4095) { - off = 4095; + off = 4096; on = 0; errorHandling->handleError(-8,__FILE__); } if(on + off > 4095) { - off = 4095; + off = 4096; on = 0; errorHandling->handleError(-9,__FILE__); } if(on == off) { - off = 4095; + off = 4096; on = 0; errorHandling->handleError(-10,__FILE__); } + if(off == 0)// if there is no falling edge that measn that the signal is allways off + { + off = 4096; // set to fully off + on = 0; + } + + m_currentLED = PCA9685_LED_PWM_REG_START + (ledNo * PCA9685_LED_NEXT_OFFSET); i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED, on & 0xFF); i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_ON_H_OFFSET, on >> 8); i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_OFF_L_OFFSET, off & 0xFF); i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_OFF_H_OFFSET, off >> 8); } -void Pca9685::setOnOff(uint8_t ledNo, bool onOff, bool invert) + +void Pca9685::setOnDutyPercent(uint8_t ledNo, uint8_t percent) { + uint16_t onLength = 0; + if(ledNo > 15) + { + errorHandling->handleError(-12,__FILE__); + } + + if(percent <= 100) + { + if(percent == 0) + { + setOnOff(ledNo, 0); + } + else if(percent == 100) + { + setOnOff(ledNo, 1); + } + else + { + onLength = (4095 * percent) / 100; + setDutyRaw(ledNo,0,onLength); + } + } + else + { + errorHandling->handleError(-11,__FILE__); + } +} + +//turns the given Port fully on or foo using the special value of 4096 +void Pca9685::setOnOff(uint8_t ledNo, bool onOff) +{ + uint16_t on, off = 0; + + if(ledNo > 15) + { + errorHandling->handleError(-12,__FILE__); + } + + if(onOff) + { + off = 0; + on = 4096; + } + else + { + off = 4096; + on = 0; + } + m_currentLED = PCA9685_LED_PWM_REG_START + (ledNo * PCA9685_LED_NEXT_OFFSET); + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED, on & 0xFF); + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_ON_H_OFFSET, on >> 8); + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_OFF_L_OFFSET, off & 0xFF); + i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, m_currentLED + PCA9685_PWM_OFF_H_OFFSET, off >> 8); } + + +//Sets if internal or External clok would be used. +//if external clok will be used user must define it's frequency "uint32_t freq" in Hz +//The maximum supported external clok frequency if 50 Mhz +//Defaul intern Clok is 25 Mhz void Pca9685::confClk(bool internExtern, uint32_t freq) { if(internExtern) @@ -137,7 +313,7 @@ void Pca9685::confClk(bool internExtern, uint32_t freq) } } } - +//TODO void Pca9685::setOutputMode(bool mode) { @@ -147,6 +323,7 @@ void Pca9685::reset() { i2c_pca9685->writeWord(PCA9685_I2C_ADDRESS, PCA9685_REG_MODE1, PCA9685_MODE1_RESTART); } + void Pca9685::sleep() { m_curMode = i2c_pca9685->readByte(PCA9685_I2C_ADDRESS,PCA9685_REG_MODE1); diff --git a/developpment/drivers/pca9685/pca9685.h b/developpment/drivers/pca9685/pca9685.h index 94daa20..06bd92e 100644 --- a/developpment/drivers/pca9685/pca9685.h +++ b/developpment/drivers/pca9685/pca9685.h @@ -1,3 +1,6 @@ +#ifndef _PCA9685_H_ +#define _PCA9685_H_ + #include #include #include @@ -5,6 +8,8 @@ #include "../../periferals/i2c/i2c_ch1_pImpL.hpp" #include "../../management/errorHandling.h" +// https://www.nxp.com/docs/en/data-sheet/PCA9685.pdf + // REGISTER ADDRESSES #define PCA9685_REG_MODE1 0x00 /**< Mode Register 1 */ #define PCA9685_REG_MODE2 0x01 /**< Mode Register 2 */ @@ -58,11 +63,12 @@ class Pca9685 public: Pca9685(i2c_ch1_pImpL* i2c,ErrorHandler* err); void setPwmFreq(float frequency); + void setPwmRaw(uint8_t preScale); + uint8_t compensatePrescale(uint8_t preScale); float getPwmFreq(); - void setDutyPercent(uint8_t ledNo, uint8_t on, uint8_t off); + void setOnDutyPercent(uint8_t ledNo, uint8_t percent); void setDutyRaw(uint8_t ledNo, uint16_t on, uint16_t off); - void setDutyMicroSecond(uint8_t ledNo, uint16_t on, uint16_t off); - void setOnOff(uint8_t ledNo, bool onOff, bool invert); + void setOnOff(uint8_t ledNo, bool onOff); void confClk(bool internExtern, uint32_t freq); void setOutputMode(bool mode); void reset(); @@ -78,3 +84,7 @@ class Pca9685 ErrorHandler* errorHandling; i2c_ch1_pImpL* i2c_pca9685; }; + + +#endif// _PCA9685_H_ + diff --git a/developpment/drivers/pca9685/pca9685.o b/developpment/drivers/pca9685/pca9685.o deleted file mode 100644 index 84bf647dbd819b6b95c9ea69089f5f2c1e4d7299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12296 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

^SbpM_6EE&=nv&# z`C_en4LAMaSYlm+nlCm`#_L7g)YtWtjB*v1b;EYX;6;C>ihwIU)&=$4Qg-oayY|pz zT}qF2XZ1ts^}k@}!G54S`F>#O*m0%aIQ;3C%C*+m;@Hu_tKTlpK4T+Q1g{HZ=dWIdB#$F2K2i3w-_=+A>&`J2EqyT^IvbsPTb>__Wg z%6R{yM5_`1EI?1csKe`DaU-{sMeq;xb}9l?dPFq_6xVFQI}S;4n$`MXp6r9_D;`C~ ZvqJnWlb4tB$F-*GokD-_D 0) + { + S_length = lenght; + } + } - S_length = strlen(charvalue); if (S_length > TOTAL_CHAR_CAP) { printf("LCD.C :\t La phrase est trop longue => %d MAX: %d \n", S_length, TOTAL_CHAR_CAP); @@ -96,7 +102,7 @@ void lcd_display_string(char line, char pos, char* charvalue) // Cette focntion nous pernet de faire pulser la ppin EN du lcd afin qu'il puisse // enregistrer les donées qui lui sont envoyées -void ldc_pulse_En(char data) +void ldc_pulse_En(unsigned char data) { i2c_pf8574->writeByte(LCD_ADDRS,data | EN | LCD_BACKLIGHT); usleep(100); @@ -107,7 +113,7 @@ void ldc_pulse_En(char data) // Cette fonction nous permet d'envoyer un information de 8 bits sous format // de 2x4 bites. Celà est necessaire du au fonctionnement de l'expendeur de port PCF8574 // qui est branché sur l'écran de facon a ce qu'il communiquer en 4 bits. -void lcd_write(char cmd, char mode) +void lcd_write(unsigned char cmd, unsigned char mode) { lcd_write_4bits(mode | (cmd & 0xF0)); lcd_write_4bits(mode | ((cmd << 4) & 0xF0)); @@ -115,7 +121,7 @@ void lcd_write(char cmd, char mode) // Fonction nous permettant d'nevoyer 4 bits dinformation sur le PC8574 ainsi que // le rétroéclairage. -void lcd_write_4bits(char data) +void lcd_write_4bits(unsigned char data) { i2c_pf8574->writeByte(LCD_ADDRS,data | LCD_BACKLIGHT); ldc_pulse_En(data); diff --git a/developpment/drivers/pf8574/pf8574lcd.h b/developpment/drivers/pf8574/pf8574lcd.h index 974b7cf..ae5e0e8 100755 --- a/developpment/drivers/pf8574/pf8574lcd.h +++ b/developpment/drivers/pf8574/pf8574lcd.h @@ -66,15 +66,15 @@ //adresse I2C du controlleur pour LCD #define LCD_ADDRS 0x27 -//Nombre max de char sur une ligne +//Nombre max de unsigned char sur une ligne #define TOTAL_CHAR_CAP 20 int lcd_init(i2c_ch1_pImpL* i2c); -void lcd_write_char( char charvalue); -void lcd_display_string(char line, char pos, char* charvalue); -void ldc_pulse_En(char data); -void lcd_write(char cmd, char mode); -void lcd_write_4bits(char data); +void lcd_write_char( unsigned char charvalue); +void lcd_display_string(unsigned char line, unsigned char pos, char* charvalue, unsigned char lenght); +void ldc_pulse_En(unsigned char data); +void lcd_write(unsigned char cmd, unsigned char mode); +void lcd_write_4bits(unsigned char data); diff --git a/developpment/drivers/pf8574/pf8574lcd.o b/developpment/drivers/pf8574/pf8574lcd.o deleted file mode 100644 index ff774264035050ca9fc04d8da66890ed87c650e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3772 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 SaQhgL+YW#K0$X&^a{mvD_6p4a diff --git a/developpment/management/commandManager.o b/developpment/management/commandManager.o deleted file mode 100644 index c9eefcfa4aa02184388118e5dc428d6f07807555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23436 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 KU9iQF(ffZ{Jwp@# diff --git a/developpment/management/errorHandling.o b/developpment/management/errorHandling.o deleted file mode 100644 index 38985d58d3aa20b51b8bc8e251de5cf9ceb97c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9988 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 IqCxZh3(xJJ6951J diff --git a/developpment/periferals/i2c/i2c_ch0_pImpL.o b/developpment/periferals/i2c/i2c_ch0_pImpL.o deleted file mode 100644 index b47e8eca17a6638bd055ba10d0b3782b8ab7a53b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5288 zcmcgwU2Ggz8U1G0aW+4|CNW@Q3kKwXo5q{j#8^(Kgj2^&EW2rByAVO8>3DXU9c8_< z?2a1;kSHY*0fJQVghZqm@q(&6_#vtQ8BwVbibNhPg~zChooo~Yr~&1n4;AK|nLF$2 z!7eEeTx<5+bHDF?fA?ob{@%#=bB19^(hTX9HHOjMkz`AM1ii9L@**eu{?fMa(-m{+ z`4v-kG<)(pnw>JXBG&x9H_WTeJ^A^2|5{!BYo|4~l0iQ!^ULIrFE`9TJTR@U=7Rao zGVzghds$@i9^AZnCV#bgMy@s^U30!A&*tZsGn$P-=;<~OXxxz4H*Hg=Z3%H*`u#&h zE!|NLB9_7=k390oA&;HNBX90#=2TpqzY~42Za1@t=PvvtdHm|D$i;f^fr@?mO~`I) zvA5=>V*j-kE9-GZ<4Np!`ZRAxakQE5tc!=SwOKz{F-+7Iwv%`a)X=cz_rPX0i7O|v zeF*lgBrf>VYbB~yTsOT|*{veaq-u4BT&??)*6TieC-J50bqlgvNnEJyX7#$J)ra+( z*LbU5W*643tC^Fo$e+G`?Du?xdL4)T{voc_e2xw`=oSK0-|%X|-(4%dfw0mbBWjmNzt>)Up$Mup{5q z%&R@9$HPAN;FH#^4EwEn5dNk%@E6;>-E3H^53>EdS63f!Y#;8bXv}*3F6;7^_06az z$vybr_GwPL3%Lh)uWS?9%k$Z5UTtEnm$!hMs&3sF>qdO}q>kE|SY1_@NCN8q$U&cV zTjo0fcXOhrzjqFnyjKtUhupq>C7G={(-qGQ12d?3Rr9C`d* zL3>*Uq`f_7Y%{iJcDHpHpEN$5?KD1P?9Fr=pKbqwUQIgCe4*ba|5&#=+4XOI$>L9M zS%GQ*8tI$5zE^e{?yDhUuB1#lU(?|C*56b7pDDh-RZHPlrSzxx^~~A?%12W27gGGkDgH~v zllXoI&b|d?yzi#;@2B|Qlz$VP>(4kje>f#S3C{IDspJ7T*ZXC~f0ojJGsSEfDUOZCsJ=Z($H$2-7s*SKd>xQvt(6;@+ull5? zj@b6u>a6X~&5a)_+IGo%#hI;yb|rAn*|nhJyB9{3!NX1kqfQvqZKr-V9vtw`R)e}H zJq~z3<~Kqo^j(|QeW&7o8!V{WPPGKfaSY^^?~8q6{Do(ajbqB}v^{Dgl;Yua=?otl znHVceqgt!`)$kSJRUdh+G)5=GV$m%-bvvv(e%KgwM@A+vc6i!pzx=O!kDNjuK2-wkHt>hycnQf1VAG6z%klm!<9w%B%b4coKT z^FETrO4zk}kFQ*b1D9X)#?^r$ddw8anHu<}1;T$ae#2JQ#>a?_oVZ=e@P z^Yx%!QqfF|McXBnO=M2fqNT}j&<`3mmcr{F#XcA=j=b8cj}v-x+<11W5!hwyi;B0= zoa3AmzazW9g!6@dcQ4Kj@hOox;(n1!ivOJWw8%X1fC%3K8Qhz{QOJ8R(2GyAO*TSA2>HyDt%8_c9T|TvzfNN`6bpd0)`)Ln8eBP4P!W_EKyg#Vk0-y*{QlHxhO z3y+{q#G|;Iff@L=h+o0_6Q9ARK--U+M(tqyJ+l83@wW)acTx_{cMy4p;{3KF=lhm& zQ}G_fv4tbKr4S&Q&*7)gxG)ns)4;GEV>#*7y-ERxCX_9Im29dp}ftLZUZ_zOI+wy7s>gUGGG!S9_gacwW4`QoD1V7ZnQE0V9kC@b$!aLAg!bEI;`63?1m&e0clU&i2Ydb{V V)g~tPkls4I5CcEq1l1C~e**`Q&cOfx diff --git a/developpment/periferals/i2c/i2c_ch1_pImpL.o b/developpment/periferals/i2c/i2c_ch1_pImpL.o deleted file mode 100644 index e2f3341133e8214ad36e55739fbf37e2cd1d3142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7812 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 Y+${1_O%TM}RA<+U`Tm>^Y6N!w1|eMCX8-^I diff --git a/developpment/periferals/i2c/i2c_driver.o b/developpment/periferals/i2c/i2c_driver.o deleted file mode 100644 index 57c9c2645196bfebd321609347176c8c4b1db8a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5280 zcmcgwU2Ggz8U1E=oj5gG2-R-aDo`m#>O&tQ%sDf6 zCfB1lN_pT~v*(`sefRsjKeOJS4~;%;7>2~nkZ!rpL_XUUN?Q6t=$2iQ7dh4QkKFuk zR=Ss-Sutftvn#)&*=+)?j;2_*n(Z>Oa@D-n+>@XC@IUM8|7y2JRx;>kWp0^Vthwce z`Il7_`t#;{%fvP7*0RX>hr31IKAXSRJS*3lp{_ZX$g}ym<&0)y0D8L30~$9Z@=e>+ z$t{hn$g6+;7|~0oO4d>s=aWZ1t;lC5^2sBgRuvcL??j)uWf9K@@Du0pyQh$gb$3<8 zzWpX-H?`Q4d8ydn(qd&j-q3g)d!9bcTVWhI^Sur6Ft(ia(u!fCuCN`)W1xnHHMa*g zvvFLlBHNF`z7@v>e|oJ%)e3XMHHvGM-74~As#a&o)%rhby*`5PIKFhf79m@V<3epW ztJfd2`mkPe8c*tFc3|x~nyu0i`qS5s{jSeZuM@D}7smyE)&u-SHnAtP{q>-l)gDr_ zHf!^J_9=XBR<}El-HGFSNZoE|akFmo8c*t$+GlOx^Ei(U^X@8hY}sV*Wm0=D^MBlX z?KrD>oYgj*)pnd!?%j8+k!7A4-X&ZU<`JLS)?J&|at$?E(`uQ_%Wu4ImbBWjmJ1q> zYuS!H*p}~T=G7k5<6)nB@KNhF1^dZ82!9g~@E6&<)ofVntJyx@tLv*A+lRX<9J5~h zfOUDt`cYVuhn;PGpSEguA@>09m2Dz>c|N<%YfY^6atpYr>eh*|PQ;gw>!_WH^>uZL z#GvkvR_L>C%X}x`ZjSZz_s_wSck!U#>-Ov`$#lh;EPG~9HLEqRVjeMJ&-{k@lW9Nj zE9XR>P2_dYai>g7^<6L0yDz&`_X97PbblOkO3APseckxQ{QTvY8S>}ta}L`Qo}KJu zMA`v;S&=T_3po+Kd+wls%=PG&2+>hI(wMpNpm;;4F1*@n3iF(a1J{~bS zR)C)4Ig`E^wAa!vTeh?s+l=j*-MKd7%f?r-?Z#J)y_rtqYg@jlSCbAjU+CxL-y2pZ zyW#CGlEt6ivY4T_thDeOf!11Nk7D#}K+bU4BA!d>=j6MP(JCM6mwA#-h zZ|fZWcXiI%;XbrWb^oGQFSxaubd|*Z;dn4wJY4fV*Sq95Jlm~S8bN*94I@IwIzhE=JN0wXV84H^ zQmuQ^<$(8Lej{)K-?eGocgp@x!KxM8sgz(jihs*tL3*&NgIKjI&A!4u>zI#W6M#?h-wT(2%A=8{@%%Uv1bZzt=a6wI3`FT}*1?1l|lcn_X&D z?J4YqviG1lCpbqAU`uyC7X7c$*)1|f{G7)}XQ2YuJeqSTP@0-M;$O5rn-^L2a_8nYJyXA&6HBbeYxG8+)bz8D~;2qJC*6qP%!6pfu4&A`Y3DII`Fv-&(V;Hy!=J%2h<1<&Zk~0o_&gA%Z2T# zW{U&##fD`M^>w{iMtSU)HRd>6g^l)JQGG(JH-Nsb*RK7xq3fND^lC415N!f_@m%uQ z-XQvVzW1<6cyBRZObPXv@AuVMoW~UiV;c~Keey9py1f#9cjJ88<2ZH5C-E>3=FN5$ z_PU~O_(>U`^9sX3d|YQxTB8oz&+s6&T1fCgJsgFk#d^fJ#uR=8y(LV<_LpzrVSFe- f7;Bs>s9fJ6@;7Z_Y>z)H>Uw1i{F)O~i}n5sdO*s% diff --git a/developpment/runtest b/developpment/runtest deleted file mode 100755 index 7d21ab65256cc8f58abdf34ce02dbbce6bea2a77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64908 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 diff --git a/developpment/systems/systemCall.o b/developpment/systems/systemCall.o deleted file mode 100644 index f7b9606559ff48b41718f63e67f3d05bb36b7431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27828 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