diff --git a/ProjetsKEIL/Drivers/RTE/_Simul_/RTE_Components.h b/ProjetsKEIL/Drivers/RTE/_Simul_/RTE_Components.h
index 6482469..c54b4f5 100644
--- a/ProjetsKEIL/Drivers/RTE/_Simul_/RTE_Components.h
+++ b/ProjetsKEIL/Drivers/RTE/_Simul_/RTE_Components.h
@@ -3,7 +3,7 @@
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
*
- * Project: 'cool'
+ * Project: 'gpiodriver'
* Target: 'Simulé'
*/
diff --git a/ProjetsKEIL/Drivers/Source/Principale.c b/ProjetsKEIL/Drivers/Source/Principale.c
index 3474892..922498e 100644
--- a/ProjetsKEIL/Drivers/Source/Principale.c
+++ b/ProjetsKEIL/Drivers/Source/Principale.c
@@ -1,10 +1,10 @@
#include "stm32f10x.h"
-#include "gpiodriver.h"
+#include "../gpiodriver.h"
int main ( void )
{
- MyGPIO_Struct_TypeDef gpioC_test = {&(GPIOA),5,Out_PullUp};
- MyGPIO_Init(&gpioC_test);
+ MyGPIO_Struct_TypeDef gpioA_test = {GPIOA,13,Out_PullUp};
+ MyGPIO_Init(&gpioA_test);
do{
}while(1) ;
diff --git a/ProjetsKEIL/Drivers/gpiodriver.c b/ProjetsKEIL/Drivers/gpiodriver.c
index eb021fe..68e9126 100644
--- a/ProjetsKEIL/Drivers/gpiodriver.c
+++ b/ProjetsKEIL/Drivers/gpiodriver.c
@@ -3,7 +3,20 @@
void MyGPIO_Init(MyGPIO_Struct_TypeDef * GPIOStructPtr)
{
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4);
- GPIOStructPtr->GPIO_Conf;
+ volatile uint32_t * CRAny = GPIOStructPtr->GPIO_Pin > 0x08 ? &(GPIOStructPtr->GPIO->CRH):&(GPIOStructPtr->GPIO->CRL);
+ //setup high or low
+ *CRAny &= ~(0xF << (GPIOStructPtr->GPIO_Pin%8)*4); //reset
+ *CRAny |= (GPIOStructPtr->GPIO_Conf << (GPIOStructPtr->GPIO_Pin%8)*4); //set pin mode
+ //for input pull or push
+ if(!(GPIOStructPtr->GPIO_Conf%2) && (GPIOStructPtr->GPIO_Conf>0x04)) //si input mode et en pullpush
+ {
+ if(GPIOStructPtr->GPIO_Conf > In_PullDown)
+ {
+ GPIOStructPtr->GPIO->ODR &= ~(0x01 << GPIOStructPtr->GPIO_Pin);
+ } else{
+ GPIOStructPtr->GPIO->ODR |= (0x01 << GPIOStructPtr->GPIO_Pin);
+ }
+ }
}
int MyGPIO_Read(GPIO_TypeDef * GPIO, uint8_t GPIO_Pin)
diff --git a/ProjetsKEIL/Drivers/gpiodriver.h b/ProjetsKEIL/Drivers/gpiodriver.h
index f6392bd..5577e20 100644
--- a/ProjetsKEIL/Drivers/gpiodriver.h
+++ b/ProjetsKEIL/Drivers/gpiodriver.h
@@ -11,7 +11,7 @@ typedef struct
#define In_Floating 0x04
#define In_PullDown 0x08
-#define In_PullUp 0x08
+#define In_PullUp 0xF8
#define In_Analog 0x00
#define Out_PullUp 0x01
#define Out_OD 0x05
diff --git a/ProjetsKEIL/Drivers/gpiodriver.uvoptx b/ProjetsKEIL/Drivers/gpiodriver.uvoptx
index dd45b6d..209328d 100644
--- a/ProjetsKEIL/Drivers/gpiodriver.uvoptx
+++ b/ProjetsKEIL/Drivers/gpiodriver.uvoptx
@@ -75,7 +75,7 @@
1
0
- 0
+ 1
18
@@ -125,7 +125,7 @@
0
DLGDARM
- (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=932,137,1353,564,1)(121=-1,-1,-1,-1,0)(122=875,109,1296,536,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=932,137,1353,564,0)(121=-1,-1,-1,-1,0)(122=875,109,1296,536,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
0
@@ -138,24 +138,7 @@
UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))
-
-
- 0
- 0
- 32
- 1
- 134218466
- 0
- 0
- 0
- 0
- 0
- 1
- .\Source\Principale.c
-
- \\cool_Simule\Source/Principale.c\32
-
-
+
0
@@ -268,7 +251,7 @@
1
0
- 1
+ 0
18