Compare commits

..

3 commits

Author SHA1 Message Date
Noël JUMIN
1e9f281f4d Merge de la branche Noel_Olivier 2023-04-11 20:29:35 +02:00
Noël JUMIN
6915e1e36b Pull de la branche 2023-04-11 20:19:04 +02:00
e8ce9fb91d Girouette qui marche 2023-04-11 15:32:11 +02:00
13 changed files with 343 additions and 99 deletions

View file

@ -25,6 +25,6 @@ int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ; // renvoie 0 ou 1
void MyGPIO_Set ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
void MyGPIO_Reset ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
void MyGPIO_Toggle ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
void MyGPIO_ActiveIT (GPIO_TypeDef * GPIO, char GPIO_Pin, char Prio, void (*IT_function)(void))
void MyGPIO_ActiveIT (GPIO_TypeDef * GPIO, char GPIO_Pin, char Prio, void (*IT_function)(void)) ;
#endif

View file

@ -1,7 +1,9 @@
#ifndef MYTIMER_H
#define MYTIMER_H
#include "GPIO.h"
#include "stm32f10x.h"
typedef struct
{
TIM_TypeDef * Timer ; // TIM1 à TIM4
@ -38,5 +40,8 @@ void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void)
void MyPWM_init ( TIM_TypeDef * Timer,char Channel);
void MyPWM_Duty (TIM_TypeDef * Timer,char Channel, unsigned short CRR );
void init_encoder_timer(void (*IT_function)(void));
void Reset_degree (void);
int Read_CNT (void);
#endif

View file

@ -117,9 +117,9 @@ void MyADC_init(MyADC_Struct_TypeDef* myADC)
}
else if(myADC->ADC==ADC2)
{
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; // validation horloge ADC1
RCC->APB2ENR |= RCC_APB2ENR_ADC2EN; // validation horloge ADC2
RCC->CFGR |= RCC_CFGR_ADCPRE_DIV6; // passage de l'horloge ADC1 à 12MHz
ADC2->CR2|= ADC_CR2_ADON; // démarrage ADC1
ADC2->CR2|= ADC_CR2_ADON; // démarrage ADC2
ADC2->SQR1&= ADC_SQR1_L; // fixe le nombre de conversion à 1
ADC2->SQR3|= myADC->channel; // indique la voie à convertir
ADC2->CR2 |= ADC_CR2_CAL; // début de la calibration

View file

@ -38,7 +38,7 @@ void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr )
}
else // Si le numéro de pin est inférieur à 8 alors on écrit dans le registre CRLow
{
GPIOStructPtr->GPIO->CRL &= ~0xF<<(4*((GPIOStructPtr->GPIO_Pin)%8)); //on met a 0 les bit de config du pin
GPIOStructPtr->GPIO->CRL &= ~(0xF<<(4*((GPIOStructPtr->GPIO_Pin)%8))); //on met a 0 les bit de config du pin
GPIOStructPtr->GPIO->CRL |= GPIOStructPtr->GPIO_Conf<<(4*((GPIOStructPtr->GPIO_Pin)%8)); // On met à 1 les bons bits pour obtenir la config souhaité sur le pin
}
}
@ -74,37 +74,32 @@ void MyGPIO_Toggle ( GPIO_TypeDef * GPIO , char GPIO_Pin )
void MyGPIO_ActiveIT (GPIO_TypeDef * GPIO, char GPIO_Pin, char Prio, void (*IT_function)(void)) //p210
{
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // On active l'horloge pour AFIO
if (GPIO==GPIOA)
if (GPIO==GPIOC)
{
AFIO->EXTICR[0] |= (AFIO_EXTICR1_EXTI0_PA << (4*GPIO_Pin));
AFIO->EXTICR[GPIO_Pin] |= AFIO_EXTICR1_EXTI3_PC ;
}
else if (GPIO==GPIOB)
{
AFIO->EXTICR[0] |= (AFIO_EXTICR1_EXTI0_PB << (4*GPIO_Pin));
}
else if (GPIO==GPIOC)
{
AFIO->EXTICR[0] |= (AFIO_EXTICR1_EXTI0_PC << (4*GPIO_Pin));
}
else if (GPIO==GPIOD)
{
AFIO->EXTICR[0] |= (AFIO_EXTICR1_EXTI0_PD << (4*GPIO_Pin));
}
// manque ligne pour activer l'interruption
NVIC->ISER[0] |= 0x01<<EXTI0_IRQn; // On précise quelle interruption on souhaite activé
NVIC->IP[EXTI0_IRQn] |= Prio << 4; // On précise la priorité qu'on souhaite lui donner
EXTI->RTSR |= GPIO_Pin;
// EXTI->FTSR |= ~(0x01<<GPIO_Pin);
EXTI->EMR |= GPIO_Pin;
NVIC->ISER[0] |= 0x01<<EXTI3_IRQn; // On précise quelle interruption on souhaite activer
NVIC->IP[EXTI3_IRQn] |= Prio << 4; // On précise la priorité qu'on souhaite lui donner
}
void EXTI0_IRQHandler(void)
{
if (EXTI->RTSR) //on test si RTSR est différent de 0
void EXTI3_IRQHandler(void)
{
if(gpio_ptr_func!=0)
{
(*gpio_ptr_func)();
}
EXTI->PR &= ~(AFIO_EXTICR1_EXTI3_PC << (4*4)); // car c'est le pin4
}
EXTI->RTSR &=0xFFFFF; // On reset le flag lmevé
//reset flag
void EXTI0_IRQHandler(void)
{
if(gpio_ptr_func!=0)
{
(*gpio_ptr_func)();
}
EXTI->PR &= ~(AFIO_EXTICR1_EXTI0_PC << (4*4)); // car c'est le pin4
}

View file

@ -114,10 +114,59 @@ void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void)
}
void init_encoder_timer(TIM_TypeDef * Timer) //voir page 391
void init_encoder_timer(void (*IT_function)(void)) //voir page 391
{
Timer->SMCR = 0x1;
MyGPIO_Struct_TypeDef GPIO_PB6;
MyGPIO_Struct_TypeDef GPIO_PB7;
MyTimer_Struct_TypeDef Timer;
GPIO_PB6.GPIO = GPIOB;
GPIO_PB6.GPIO_Conf = In_Floating;
GPIO_PB6.GPIO_Pin = 6;
GPIO_PB7.GPIO = GPIOB;
GPIO_PB7.GPIO_Conf = In_Floating;
GPIO_PB7.GPIO_Pin = 7;
/*GPIO_PC3.GPIO = GPIOC;
GPIO_PC3.GPIO_Conf = In_Floating;
GPIO_PC3.GPIO_Pin = 3;*/
Timer.Timer=TIM4;
Timer.ARR = 719;
Timer.PSC = 0;
MyTimer_Base_Init(&Timer);
MyGPIO_Init (&GPIO_PB6);
MyGPIO_Init (&GPIO_PB7);
//MyGPIO_Init (&GPIO_PC3);
//MyGPIO_ActiveIT (GPIO_PC3.GPIO, GPIO_PC3.GPIO_Pin, 4, IT_function);
TIM4-> SMCR &= ~0x0007;
TIM4-> SMCR |= TIM_SMCR_SMS_1;
TIM4-> CCMR1 &= ~0xF2F2; // Mise à 0 des CC1S, CC2S, IC1F et IC2F
TIM4-> CCMR1 |= TIM_CCMR1_CC1S_0;
TIM4-> CCMR1 |= TIM_CCMR1_CC2S_0;
TIM4-> CCER &= TIM_CCER_CC1P;
TIM4-> CCER &= TIM_CCER_CC2P;
TIM4-> CR1 |= TIM_CR1_CEN;
}
void Reset_degree (void)
{
TIM4->CNT = 0x0000;
}
int Read_CNT (void)
{
return TIM4->CNT;
}
void TIM2_IRQHandler (void)

View file

@ -2,7 +2,9 @@
#define MYGIROUETTE_H
#include "stm32f10x.h"
#include "GPIO.h"
#include "TIMER.h"
void init_girouette (void);
void Test_tour_girouette(void);
#endif

View file

@ -0,0 +1,9 @@
#ifndef MYPWMVOILE_H
#define MYPWMVOILE_H
#include "stm32f10x.h"
#include "GPIO.h"
#include "TIMER.h"
void init_pwm_voile(void);
#endif

View file

@ -1,13 +1,26 @@
#include "Girouette.h"
int bordage(void){
/*MyGPIO_Struct_TypeDef signalA = (GPIOC, 6, In_PullDown);
MyGPIO_Struct_TypeDef signalB = (GPIOC, 7, In_PullDown);
MyGPIO_Struct_TypeDef signalI = (GPIOC, 8, In_PullDown);
MyGPIO_Init(&signalA);
MyGPIO_Init(&signalB);
MyGPIO_Init(&signalI);*/
MyGPIO_Struct_TypeDef GPIOC3;
void Test_Encoder (void)
{
Reset_degree();
}
void init_girouette (void)
{
GPIOC3.GPIO = GPIOC;
GPIOC3.GPIO_Conf = In_Floating;
GPIOC3.GPIO_Pin = 3;
MyGPIO_Init (&GPIOC3);
init_encoder_timer(&Test_Encoder);
}
void Test_tour_girouette(void){
if(MyGPIO_Read(GPIOC3.GPIO, GPIOC3.GPIO_Pin))
{
Reset_degree();
}
}

View file

@ -3,6 +3,9 @@
#include <string.h>
#include "GPIO.h"
#include "UART.h"
#include "TIMER.h"
#include "Girouette.h"
#include "Pwm_voile.h"
char MyChar;
@ -16,19 +19,21 @@ void UART_RX_IT (void)
int main ( void )
{
MyGPIO_Struct_TypeDef myGPIO;
myGPIO.GPIO = GPIOA;
myGPIO.GPIO_Conf = Out_Ppull;
myGPIO.GPIO_Pin = 5;
MyGPIO_Struct_TypeDef GPIOA5;
GPIOA5.GPIO = GPIOA;
GPIOA5.GPIO_Conf = Out_Ppull;
GPIOA5.GPIO_Pin = 5;
MyGPIO_Init (&GPIOA5);
MyGPIO_Init (&myGPIO);
init_girouette();
init_pwm_voile();
MyUART_init();
MyUART_ActiveIT(1, &UART_RX_IT); //mode permet d'activer soit l'interruption sur TX
while(1)
{
Test_tour_girouette();
//Orientation_voiles();
}
}

View file

@ -0,0 +1,44 @@
# include "Pwm_voile.h"
MyTimer_Struct_TypeDef Timer2, Timer3;
MyGPIO_Struct_TypeDef PB0;
void write_pwm(void)
{
int val_pwm;
float cnt;
cnt=Read_CNT();
if(cnt>=360)
{
cnt=cnt-360;
val_pwm=(Timer3.ARR/20)+((Timer3.ARR/20)*(cnt/360.0));
}
else
{
val_pwm=2*(Timer3.ARR/20)-((Timer3.ARR/20)*(cnt/360.0));
}
//Timer3.ARR/20 --> 1ms, pour controler le moteur c'est entre 1ms et 2ms
//calcul angle en pwm
MyPWM_Duty(Timer3.Timer,3,val_pwm);
}
void init_pwm_voile(void)
{
Timer2.Timer=TIM2;
Timer2.ARR=1800;
Timer2.PSC=1000;
MyTimer_Base_Init(&Timer2);
MyTimer_ActiveIT(Timer2.Timer,2,&write_pwm);
MyTimer_Base_Start(Timer2.Timer);
PB0.GPIO=GPIOB;
PB0.GPIO_Conf=AltOut_Ppull;
PB0.GPIO_Pin=0;
MyGPIO_Init(&PB0);
Timer3.Timer=TIM3;
Timer3.ARR=14400;
Timer3.PSC=100;
MyTimer_Base_Init(&Timer3);
MyPWM_init(Timer3.Timer,3);
MyTimer_Base_Start(Timer3.Timer);
}

View file

@ -75,12 +75,12 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>0</CpuCode>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<uSim>1</uSim>
<uTrg>0</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
@ -117,25 +117,73 @@
<pMon>BIN\UL2CM3.DLL</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGDARM</Key>
<Name>(1010=710,304,1086,861,1)(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=1161,471,1582,898,1)(121=-1,-1,-1,-1,0)(122=1317,323,1738,750,0)(123=-1,-1,-1,-1,0)(140=1117,100,1805,440,1)(240=263,238,662,583,1)(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)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name>-T0</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>90</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218190</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\DRIVERS\Src\GPIO.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\TP1\../DRIVERS/Src/GPIO.c\90</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>100</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218154</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\DRIVERS\Src\GPIO.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\TP1\../DRIVERS/Src/GPIO.c\100</Expression>
</Bp>
</Breakpoint>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>0</periodic>
<aLwin>0</aLwin>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer1>1</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>0</viewmode>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
@ -144,7 +192,7 @@
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aLa>1</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
@ -181,12 +229,12 @@
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>12000000</CLKADS>
<CLKADS>8000000</CLKADS>
<OPTTT>
<gFlags>0</gFlags>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>1</RunSim>
<RunTarget>0</RunTarget>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
@ -228,14 +276,14 @@
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>0</CpuCode>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>1</uSim>
<uTrg>0</uTrg>
<uSim>0</uSim>
<uTrg>1</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
@ -244,7 +292,7 @@
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>0</tGomain>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
@ -258,7 +306,7 @@
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>-1</nTsel>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@ -269,21 +317,60 @@
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon></pMon>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(1010=457,337,833,894,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=1002,18,1423,423,0)(121=235,274,656,679,1)(122=353,663,774,1068,0)(123=-1,-1,-1,-1,0)(140=1031,78,1719,418,0)(240=1050,425,1449,770,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=377,147,971,841,1)(133=139,242,733,936,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)(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)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O206 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>cnt,0x0A</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>0</periodic>
<aLwin>0</aLwin>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer1>1</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>0</viewmode>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
@ -292,7 +379,7 @@
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aLa>1</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
@ -314,6 +401,19 @@
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\TIM4</Name>
<WinId>35905</WinId>
</Entry>
</SystemViewers>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
@ -339,7 +439,7 @@
<GroupNumber>1</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Sources\Girouette.c</PathWithFileName>
@ -351,7 +451,7 @@
<GroupNumber>1</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\DRIVERS\Src\GPIO.c</PathWithFileName>
@ -363,7 +463,7 @@
<GroupNumber>1</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Drivers\Src\TIMER.c</PathWithFileName>
@ -387,7 +487,7 @@
<GroupNumber>1</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Drivers\Src\UART.c</PathWithFileName>
@ -395,6 +495,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Sources\Pwm_voile.c</PathWithFileName>
<FilenameWithoutPath>Pwm_voile.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -407,7 +519,7 @@
<Group>
<GroupName>::Device</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>

View file

@ -10,7 +10,7 @@
<TargetName>Simulé</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>6190000::V6.19::ARMCLANG</pCCUsed>
<pCCUsed>6160000::V6.16::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
@ -414,6 +414,11 @@
<FileType>1</FileType>
<FilePath>..\Drivers\Src\UART.c</FilePath>
</File>
<File>
<FileName>Pwm_voile.c</FileName>
<FileType>1</FileType>
<FilePath>.\Sources\Pwm_voile.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -434,7 +439,7 @@
<TargetCommonOption>
<Device>STM32F103RB</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
<PackID>Keil.STM32F1xx_DFP.2.4.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x00005000) IROM(0x08000000,0x00020000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
@ -832,6 +837,11 @@
<FileType>1</FileType>
<FilePath>..\Drivers\Src\UART.c</FilePath>
</File>
<File>
<FileName>Pwm_voile.c</FileName>
<FileType>1</FileType>
<FilePath>.\Sources\Pwm_voile.c</FilePath>
</File>
</Files>
</Group>
<Group>

View file

@ -14,7 +14,7 @@ Le projet se sépare en 2 grandes parties :
## <a id="id_drivers">Réalisation des drivers</a>
Pour cela, nous avons utilisé les 3 documentations disponible dans la première section de ce [cours moodle](https://moodle.insa-toulouse.fr/course/view.php?id=79#section-1).
Pour cela, nous avons utilisé les 3 documentations disponibles dans la première section de ce [cours moodle](https://moodle.insa-toulouse.fr/course/view.php?id=79#section-1).
Nous avons donc réalisé les drivers suivant :
[x] l'[ADC](Drivers/Inc/ADC.h)
@ -29,14 +29,14 @@ Les drivers pour l'utilisation du SPI et de l'I2C nous sont fournis.
Pour cela nous avons utilisé les documentations disponible dans la [section suivante](https://moodle.insa-toulouse.fr/course/view.php?id=79#section-16) du cours moodle précédemment cité.
Nous avons donc réalisé les fonctions suivantes :
[ ] la [Girouette](Projet_voile/Includes/Girouette.h)
[x] la [Girouette](Projet_voile/Includes/Girouette.h)
[ ] l' [Horloge](Drivers/Inc/Horloge.h)
[ ] l'[IMU](Drivers/Inc/IMU.h)
[ ] le [Moteur des voiles](Drivers/Inc/Moteur_voile.h)
[x] le [Moteur des voiles](Drivers/Inc/Moteur_voile.h)
[ ] le [Moteur du plateau](Drivers/Inc/Moteur_plateau.h)
[ ] la [Mesure de tension de la batterie](Drivers/Inc/Mesure_tension.h)
[ ] la [télécommande](Drivers/Inc/Telecommande.h)
Evidemment chacune de cesfonctions fait appel aux drivers de la couche en dessous.
Evidemment chacune de ces fonctions font appel aux drivers de la couche en dessous.
Evidemment pour controler l'entiereté de ce bateau, nous utiliserons un code [principal](Projet_voile/Includes/Principal.h). Celui-ci fera appel aux sous programmes présentsau dessus.
Enfin pour controler l'entiereté de ce bateau, nous utiliserons un code [principal](Projet_voile/Includes/Principal.h). Celui-ci fera appel aux sous programmes présents au dessus.