Version Compilable : All merge done (TAF -> mettre en place l'ordonnancement des taches, implémenter TensionVoileToString, faire tout beau tout propre)
This commit is contained in:
parent
9c653884c0
commit
73b655d977
14 changed files with 158 additions and 820 deletions
|
@ -3539,12 +3539,8 @@ __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint
|
|||
__STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
|
||||
{
|
||||
register __IO uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
|
||||
<<<<<<< HEAD
|
||||
|
||||
return (uint16_t)(READ_BIT(*preg,
|
||||
=======
|
||||
return (uint16_t)(READ_BIT(*preg,
|
||||
>>>>>>> origin/Anti-chavirement-v2
|
||||
ADC_JDR1_JDATA)
|
||||
);
|
||||
}
|
||||
|
@ -3585,12 +3581,8 @@ __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
|
|||
/* end of unitary conversion. */
|
||||
/* Flag noted as "JEOC" is corresponding to flag "JEOS" */
|
||||
/* in other STM32 families). */
|
||||
<<<<<<< HEAD
|
||||
return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
|
||||
}
|
||||
=======
|
||||
return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));}
|
||||
>>>>>>> origin/Anti-chavirement-v2
|
||||
|
||||
/**
|
||||
* @brief Get flag ADC analog watchdog 1 flag
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>0</IsCurrentTarget>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
|
@ -103,7 +103,7 @@
|
|||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>6</nTsel>
|
||||
<nTsel>0</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
|
@ -114,7 +114,7 @@
|
|||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
|
@ -130,7 +130,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=668,263,1044,820,0)(1007=-1,-1,-1,-1,0)(1008=179,560,555,796,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=1037,48,1458,453,0)(121=-1,-1,-1,-1,0)(122=348,235,769,640,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=87,183,486,528,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=621,97,1215,791,0)(131=157,121,751,815,0)(132=147,87,741,781,0)(133=524,166,1118,860,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>
|
||||
<Name>(1010=668,263,1044,820,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=1027,281,1448,686,0)(121=-1,-1,-1,-1,0)(122=348,235,769,640,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=87,183,486,528,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=784,58,1378,752,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)(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>
|
||||
|
@ -145,7 +145,7 @@
|
|||
<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>
|
||||
<Name>-UAny -O206 -S8 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO65554 -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>
|
||||
|
@ -154,28 +154,6 @@
|
|||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>commandouille,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture2</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
|
@ -184,7 +162,7 @@
|
|||
<periodic>1</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>1</aSer1>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
|
@ -196,7 +174,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>
|
||||
|
@ -282,7 +260,7 @@
|
|||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
<IsCurrentTarget>0</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
|
@ -327,7 +305,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGDARM</Key>
|
||||
<Name>(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=120,153,415,450,0)(120=204,207,625,634,0)(121=-1,-1,-1,-1,0)(122=896,89,1317,516,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=248,17,842,768,0)(131=521,17,1115,768,0)(132=709,34,1303,785,0)(133=-1,-1,-1,-1,0)(160=79,295,527,709,1)(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>
|
||||
<Name>(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=120,153,415,450,0)(120=204,207,625,634,0)(121=-1,-1,-1,-1,0)(122=896,89,1317,516,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=248,17,842,768,0)(131=521,17,1115,768,0)(132=709,34,1303,785,0)(133=-1,-1,-1,-1,0)(160=251,288,699,702,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>
|
||||
|
@ -364,62 +342,45 @@
|
|||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>99</LineNumber>
|
||||
<LineNumber>48</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134221672</Address>
|
||||
<Address>134218244</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>..\MyDrivers\MyTimer.c</Filename>
|
||||
<Filename>..\Src\Allure.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\NUCLEO_F103RB\../MyDrivers/MyTimer.c\99</Expression>
|
||||
<Expression>\\NUCLEO_F103RB\../Src/Allure.c\48</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>USART1</ItemText>
|
||||
<ItemText>Chrono_Time</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>res10,0x0A</ItemText>
|
||||
<ItemText>USART1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>level,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>danger,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>index</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>tailleAllure</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>tailleTension</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>drapeauTransmission</ItemText>
|
||||
<ItemText>allure</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
<WinNumber>1</WinNumber>
|
||||
<SubType>0</SubType>
|
||||
<ItemText>0x20000400</ItemText>
|
||||
<AccSizeX>0</AccSizeX>
|
||||
</Mm>
|
||||
</MemoryWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
|
@ -428,7 +389,7 @@
|
|||
<periodic>1</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>1</aSer1>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
|
@ -440,7 +401,7 @@
|
|||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>1</aLa>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
|
@ -465,16 +426,10 @@
|
|||
<LogicAnalyzers>
|
||||
<Wi>
|
||||
<IntNumber>0</IntNumber>
|
||||
<FirstString>((TIM_TypeDef *)(0x40000000UL + 0x00000000UL))->CNT</FirstString>
|
||||
<SecondString>FF0000000000000000000000000000000000594000000000000000000000000000000000282854494D5F54797065446566202A292830783430303030303030554C202B2030783030303030303030554C29292D3E434E5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000F03F1900000000000000000000000000000000000000B6020008</SecondString>
|
||||
<FirstString>((PORTA & 0x00000100) >> 8 & 0x100) >> 8</FirstString>
|
||||
<SecondString>FF0000000000000000000000000000000000F03F0100000000000000000000000000000028504F5254412026203078303030303031303029203E3E2038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000001000000000000000000F03F1000000000000000000000000000000000000000AC030008</SecondString>
|
||||
</Wi>
|
||||
</LogicAnalyzers>
|
||||
<SystemViewers>
|
||||
<Entry>
|
||||
<Name>System Viewer\USART1</Name>
|
||||
<WinId>35905</WinId>
|
||||
</Entry>
|
||||
</SystemViewers>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>0</EnableFlashSeq>
|
||||
|
@ -495,7 +450,7 @@
|
|||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>1</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Voilier.c</PathWithFileName>
|
||||
|
@ -518,18 +473,6 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\MyDrivers\MyTimer.c</PathWithFileName>
|
||||
<FilenameWithoutPath>MyTimer.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>3</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Allure.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Allure.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
@ -537,19 +480,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>4</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Batterie.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Batterie.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileNumber>3</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -561,7 +492,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileNumber>4</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -573,7 +504,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileNumber>5</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -585,7 +516,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileNumber>6</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -597,175 +528,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Allure.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Allure.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\AntiChavirement.h</PathWithFileName>
|
||||
<FilenameWithoutPath>AntiChavirement.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Batterie.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Batterie.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Gouvernail.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Gouvernail.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Heure.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Heure.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\MyTimer.h</PathWithFileName>
|
||||
<FilenameWithoutPath>MyTimer.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Transmission.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Transmission.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Voile.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Voile.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\AntiChavirement.c</PathWithFileName>
|
||||
<FilenameWithoutPath>AntiChavirement.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Securite.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Securite.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Securite.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Securite.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Allure.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Allure.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\MyDrivers\MyTimer.h</PathWithFileName>
|
||||
<FilenameWithoutPath>MyTimer.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\maths.h</PathWithFileName>
|
||||
<FilenameWithoutPath>maths.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileNumber>7</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -777,13 +540,13 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<FileNumber>8</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Gouvernail.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Gouvernail.h</FilenameWithoutPath>
|
||||
<PathWithFileName>..\Src\Securite.c</PathWithFileName>
|
||||
<FilenameWithoutPath>Securite.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
@ -797,7 +560,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>9</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -809,7 +572,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>10</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -821,7 +584,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>11</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -833,7 +596,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>12</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -845,7 +608,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -873,7 +636,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -893,7 +656,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
|
||||
<uAC6>8</uAC6>
|
||||
<uAC6>0</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>STM32F103RB</Device>
|
||||
|
@ -392,21 +392,11 @@
|
|||
<Group>
|
||||
<GroupName>MyDrivers</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>MyTimer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Allure.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Allure.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Batterie.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Batterie.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Gouvernail.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
|
@ -427,36 +417,15 @@
|
|||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Voile.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Allure.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Allure.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyTimer.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\MyDrivers\MyTimer.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>maths.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\maths.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>maths.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\maths.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<<<<<<< HEAD
|
||||
<FileName>Transmission.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Transmission.h</FilePath>
|
||||
=======
|
||||
<FileName>Gouvernail.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Gouvernail.h</FilePath>
|
||||
>>>>>>> Gouvernail
|
||||
<FileName>Securite.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Securite.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
@ -904,21 +873,11 @@
|
|||
<Group>
|
||||
<GroupName>MyDrivers</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>MyTimer.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Allure.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Allure.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Batterie.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Batterie.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Gouvernail.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
|
@ -939,36 +898,15 @@
|
|||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Voile.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>Allure.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Allure.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>MyTimer.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\MyDrivers\MyTimer.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>maths.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\maths.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>maths.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\maths.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<<<<<<< HEAD
|
||||
<FileName>Transmission.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Transmission.h</FilePath>
|
||||
=======
|
||||
<FileName>Gouvernail.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Gouvernail.h</FilePath>
|
||||
>>>>>>> Gouvernail
|
||||
<FileName>Securite.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\Src\Securite.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
|
@ -70,7 +70,7 @@ int RecupAllure(void) {
|
|||
}
|
||||
}
|
||||
|
||||
char * ToString(int alpha) {
|
||||
char * AllureToString(int alpha) {
|
||||
int alpha_abs = abs(alpha);
|
||||
if (alpha_abs < 45) {
|
||||
return "Vent debout";
|
||||
|
|
|
@ -36,6 +36,6 @@ int RecupAllure(void);
|
|||
* @param alpha : un entier représentant l'allure en ° (-180 à 180)
|
||||
* @retval Une chaine de caractère représentant l'allure
|
||||
*/
|
||||
char * ToString(int alpha);
|
||||
char * AllureToString(int alpha);
|
||||
|
||||
#endif
|
||||
|
|
183
Src/MyTimer.c
183
Src/MyTimer.c
|
@ -1,183 +0,0 @@
|
|||
// TOUT A FAIRE !! //
|
||||
|
||||
/*
|
||||
indispensable pour pouvoir adresser les registres des périphériques.
|
||||
Rem : OBLIGATION d'utiliser les définitions utiles contenues dans ce fichier (ex : TIM_CR1_CEN, RCC_APB1ENR_TIM2EN ...)
|
||||
pour une meilleure lisibilité du code.
|
||||
|
||||
Pour les masques, utiliser également les définitions proposée
|
||||
Rappel : pour mettre à 1 , reg = reg | Mask (ou Mask est le représente le ou les bits à positionner à 1)
|
||||
pour mettre à 0 , reg = reg&~ Mask (ou Mask est le représente le ou les bits à positionner à 0)
|
||||
|
||||
*/
|
||||
|
||||
#include "MyTimer.h"
|
||||
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges
|
||||
#include "stm32f1xx_ll_tim.h"
|
||||
|
||||
|
||||
// variable pointeur de fonction permettant de mémoriser le callback à appeler depuis
|
||||
// le handler d'IT
|
||||
void (*Ptr_ItFct_TIM1)(void);
|
||||
void (*Ptr_ItFct_TIM2)(void);
|
||||
void (*Ptr_ItFct_TIM3)(void);
|
||||
void (*Ptr_ItFct_TIM4)(void);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
|
||||
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* int Arr : valeur à placer dans ARR
|
||||
* int Psc : valeur à placer dans PSC
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc)
|
||||
{
|
||||
LL_TIM_InitTypeDef My_LL_Tim_Init_Struct;
|
||||
|
||||
// Validation horloge locale
|
||||
if (Timer==TIM1) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1);
|
||||
else if (Timer==TIM2) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2);
|
||||
else if (Timer==TIM3) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
|
||||
else LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4);
|
||||
|
||||
// chargement structure Arr, Psc, Up Count
|
||||
My_LL_Tim_Init_Struct.Autoreload=Arr;
|
||||
My_LL_Tim_Init_Struct.Prescaler=Psc;
|
||||
My_LL_Tim_Init_Struct.ClockDivision=LL_TIM_CLOCKDIVISION_DIV1;
|
||||
My_LL_Tim_Init_Struct.CounterMode=LL_TIM_COUNTERMODE_UP;
|
||||
My_LL_Tim_Init_Struct.RepetitionCounter=0;
|
||||
|
||||
LL_TIM_Init(Timer,&My_LL_Tim_Init_Struct);
|
||||
|
||||
|
||||
// Blocage IT
|
||||
LL_TIM_DisableIT_UPDATE(Timer);
|
||||
|
||||
|
||||
// Blocage Timer
|
||||
LL_TIM_DisableCounter(Timer);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Démarre le timer considéré
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Start(TIM_TypeDef * Timer)
|
||||
{
|
||||
LL_TIM_EnableCounter(Timer);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Arrêt le timer considéré
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Stop(TIM_TypeDef * Timer)
|
||||
{
|
||||
LL_TIM_DisableCounter(Timer);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Configure le Timer considéré en interruption sur débordement.
|
||||
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
|
||||
* int Prio : priorité associée à l'interruption
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio)
|
||||
{
|
||||
// affectation de la fonction
|
||||
if (Timer==TIM1) Ptr_ItFct_TIM1=IT_function;
|
||||
else if (Timer==TIM2) Ptr_ItFct_TIM2=IT_function;
|
||||
else if (Timer==TIM3) Ptr_ItFct_TIM3=IT_function;
|
||||
else Ptr_ItFct_TIM4=IT_function;
|
||||
|
||||
|
||||
// Blocage IT (il faudra la débloquer voir fct suivante)
|
||||
LL_TIM_DisableIT_UPDATE(Timer);
|
||||
|
||||
// validation du canal NVIC
|
||||
IRQn_Type TIM_irq;
|
||||
|
||||
if (Timer==TIM1) TIM_irq=TIM1_UP_IRQn;
|
||||
else if (Timer==TIM2) TIM_irq=TIM2_IRQn;
|
||||
else if (Timer==TIM3) TIM_irq=TIM3_IRQn;
|
||||
else TIM_irq=TIM4_IRQn;
|
||||
|
||||
NVIC_SetPriority(TIM_irq, Prio);
|
||||
NVIC_EnableIRQ(TIM_irq);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Autorise les interruptions
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Enable(TIM_TypeDef * Timer)
|
||||
{
|
||||
LL_TIM_EnableIT_UPDATE(Timer);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Interdit les interruptions
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Disable(TIM_TypeDef * Timer)
|
||||
{
|
||||
LL_TIM_DisableIT_UPDATE(Timer);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
============ LES INTERRUPTIONS =================================
|
||||
|
||||
*/
|
||||
|
||||
void TIM1_UP_IRQHandler(void)
|
||||
{
|
||||
// rabaisser le flag d'IT
|
||||
LL_TIM_ClearFlag_UPDATE(TIM1);
|
||||
(*Ptr_ItFct_TIM1)();
|
||||
}
|
||||
|
||||
void TIM2_IRQHandler(void)
|
||||
{
|
||||
// rabaisser le flag d'IT
|
||||
LL_TIM_ClearFlag_UPDATE(TIM2);
|
||||
(*Ptr_ItFct_TIM2)();
|
||||
}
|
||||
|
||||
void TIM3_IRQHandler(void)
|
||||
{
|
||||
// rabaisser le flag d'IT
|
||||
LL_TIM_ClearFlag_UPDATE(TIM3);
|
||||
(*Ptr_ItFct_TIM3)();
|
||||
}
|
||||
|
||||
void TIM4_IRQHandler(void)
|
||||
{
|
||||
// rabaisser le flag d'IT
|
||||
LL_TIM_ClearFlag_UPDATE(TIM4);
|
||||
(*Ptr_ItFct_TIM4)();
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
// RIEN A MODIFIER //
|
||||
|
||||
#ifndef MY_TIMER_H
|
||||
#define MY_TIMER_H
|
||||
|
||||
/*
|
||||
Driver pour Timer 1 à 4 du STM32F103RB
|
||||
|
||||
*/
|
||||
|
||||
#include "stm32f103xb.h"
|
||||
|
||||
/**
|
||||
* @brief Active l'horloge et règle l'ARR et le PSC du timer visé
|
||||
* @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* int Arr : valeur à placer dans ARR
|
||||
* int Psc : valeur à placer dans PSC
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Démarre le timer considéré
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Start(TIM_TypeDef * Timer);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Arrêt le timer considéré
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_Stop(TIM_TypeDef * Timer);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Configure le Timer considéré en interruption sur débordement.
|
||||
* @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable )
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
|
||||
* int Prio : priorité associée à l'interruption
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Autorise les interruptions
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Enable(TIM_TypeDef * Timer);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Interdit les interruptions
|
||||
* @note
|
||||
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
||||
* @retval None
|
||||
*/
|
||||
void MyTimer_IT_Disable(TIM_TypeDef * Timer);
|
||||
|
||||
#endif
|
|
@ -1,4 +1,11 @@
|
|||
#include "Securite.h"
|
||||
#include "stm32f103xb.h"
|
||||
#include "stm32f1xx_ll_adc.h"
|
||||
#include "stm32f1xx_ll_gpio.h"
|
||||
#include "stm32f1xx_ll_bus.h"
|
||||
#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
||||
#include "Voile.h"
|
||||
|
||||
|
||||
// Seuil represente la valeur (en %) en dessous de laquelle le niveau de batterie est consideree faible
|
||||
|
@ -12,7 +19,6 @@ int drapeauRecupSecurite = 0; // Flag qui est mis
|
|||
int drapeauDangerBatterie = 0; //Flag qui est mis à 1 toute les 10 sec si batterie faible --> envoie message alarme
|
||||
int drapeauDangerRouli = 0; //Flag qui est mis à 1 toute les 10 sec si rouli pas bon --> envoie message alarme
|
||||
|
||||
|
||||
void ConfSecurite(){
|
||||
//On est pas sûrs pour ADC 1, voir datasheet page 28
|
||||
|
||||
|
@ -139,87 +145,3 @@ int RecupRouli(){
|
|||
return 0; // Trouver le calcul de l'angle
|
||||
}
|
||||
|
||||
void SystemClock_Config(void)
|
||||
{
|
||||
/* Set FLASH latency */
|
||||
LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
|
||||
|
||||
/* Enable HSE oscillator */
|
||||
// ********* Commenter la ligne ci-dessous pour MCBSTM32 *****************
|
||||
// ********* Conserver la ligne si Nucléo*********************************
|
||||
LL_RCC_HSE_EnableBypass();
|
||||
LL_RCC_HSE_Enable();
|
||||
while(LL_RCC_HSE_IsReady() != 1)
|
||||
{
|
||||
};
|
||||
|
||||
/* Main PLL configuration and activation */
|
||||
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
|
||||
|
||||
LL_RCC_PLL_Enable();
|
||||
while(LL_RCC_PLL_IsReady() != 1)
|
||||
{
|
||||
};
|
||||
|
||||
/* Sysclk activation on the main PLL */
|
||||
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
|
||||
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
||||
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
||||
{
|
||||
};
|
||||
|
||||
/* Set APB1 & APB2 prescaler*/
|
||||
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
|
||||
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
||||
|
||||
/* Set systick to 1ms in using frequency set to 72MHz */
|
||||
LL_Init1msTick(72000000); // utile lorsqu'on utilise la fonction LL_mDelay
|
||||
|
||||
/* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
|
||||
LL_SetSystemCoreClock(72000000);
|
||||
}
|
||||
|
||||
int res10;
|
||||
int level ;
|
||||
int danger;
|
||||
int rouli;
|
||||
|
||||
//Dans le main voilier.c en theorie
|
||||
int main(){
|
||||
SystemClock_Config();
|
||||
ConfSecurite();
|
||||
|
||||
|
||||
while(1){
|
||||
|
||||
/* Envoi message toute les 3 sec sur l'Allure et la tension voile */
|
||||
if (drapeauTransimission){
|
||||
//Envoi message régulier
|
||||
drapeauTransmission = 0;
|
||||
}
|
||||
|
||||
/* Recuperation toute les 10 sec niveau batterie et angle chavirement, puis calcul des dangers */
|
||||
if (drapeauRecupSecurite){
|
||||
level = RecupNiveauBatterie();
|
||||
CalculDangerNiveauBatterie( level );
|
||||
rouli = RecupRouli()
|
||||
CalculerDanger(rouli);
|
||||
drapeauRecupSecurite = 0;
|
||||
}
|
||||
|
||||
/*Si batterie faible après recup (toute les 10 sec), envoi alerte batterie faible */
|
||||
if (drapeauDangerBatterie){
|
||||
char * msgBatterie = "Batterie faible";
|
||||
EnvoiExcpetionnel(msgBatterie);
|
||||
drapeauDangerBatterie = 0;
|
||||
}
|
||||
|
||||
/*Si angle chavirement pas bon après recup (toute les 10 sec), envoi alerte chavirement */
|
||||
if (drapeauDangerRouli){
|
||||
char * msgRouli = "Bateau chavire !";
|
||||
EnvoiExcpetionnel(msgRouli);
|
||||
drapeauDangerRouli = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,5 @@
|
|||
#ifndef ANTI_CHAVIREMENT_H
|
||||
#define ANTI_CHAVIREMENT_H
|
||||
|
||||
#include "stm32f103xb.h"
|
||||
#include "stm32f1xx_ll_adc.h"
|
||||
#include "stm32f1xx_ll_gpio.h"
|
||||
#include "stm32f1xx_ll_bus.h"
|
||||
#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
||||
|
||||
|
||||
#ifndef SECURITE_H
|
||||
#define SECURITE_H
|
||||
|
||||
/**
|
||||
* @brief
|
||||
|
@ -17,7 +7,7 @@
|
|||
* @param
|
||||
* @retval
|
||||
*/
|
||||
void CalculerDanger(int gamma);
|
||||
void CalculerDangerChavirement(int gamma);
|
||||
|
||||
/**
|
||||
* @brief
|
||||
|
@ -25,7 +15,7 @@ void CalculerDanger(int gamma);
|
|||
* @param
|
||||
* @retval
|
||||
*/
|
||||
int RecupRouli();
|
||||
int RecupRouli(void);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -42,7 +32,7 @@ int RecupNiveauBatterie(void);
|
|||
* @param
|
||||
* @retval
|
||||
*/
|
||||
void confSecurite(void);
|
||||
void ConfSecurite(void);
|
||||
|
||||
/**
|
||||
* @brief
|
||||
|
@ -50,6 +40,6 @@ void confSecurite(void);
|
|||
* @param
|
||||
* @retval
|
||||
*/
|
||||
void CalculDangerNiveauBatterie(int niveau );
|
||||
void CalculDangerNiveauBatterie(int niveau);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,28 +1,14 @@
|
|||
#include "Transmission.h"
|
||||
|
||||
int msTicks = 0;
|
||||
#include "stm32f1xx_ll_bus.h"
|
||||
#include "stm32f1xx_ll_gpio.h"
|
||||
#include "stm32f1xx_ll_utils.h"
|
||||
#include "stm32f1xx_ll_usart.h"
|
||||
#include "stm32f1xx_ll_rcc.h"
|
||||
#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
|
||||
#include "Allure.h"
|
||||
#include "Voile.h"
|
||||
|
||||
int drapeauTransmission = 1;
|
||||
|
||||
void ConfSysTick(){
|
||||
NVIC_EnableIRQ(SysTick_IRQn);
|
||||
SysTick_Config(7200000);
|
||||
}
|
||||
|
||||
void SysTick_Handler(void) { /* SysTick interrupt Handler. */
|
||||
msTicks++;
|
||||
|
||||
if (msTicks % 30 == 0){
|
||||
drapeauTransmission = 1;
|
||||
}
|
||||
|
||||
if (msTicks % 90 == 0) {
|
||||
drapeauRecupSecurite = 1;
|
||||
msTicks = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ConfTransmission(){
|
||||
|
||||
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1); //On enable la clock pour l'USARt
|
||||
|
@ -73,59 +59,3 @@ void EnvoiExceptionnel(char * msgAlarme){
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
void SystemClock_Config(void)
|
||||
{
|
||||
/* Set FLASH latency */
|
||||
LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
|
||||
|
||||
/* Enable HSE oscillator */
|
||||
// ********* Commenter la ligne ci-dessous pour MCBSTM32 *****************
|
||||
// ********* Conserver la ligne si Nucléo*********************************
|
||||
LL_RCC_HSE_EnableBypass();
|
||||
LL_RCC_HSE_Enable();
|
||||
while(LL_RCC_HSE_IsReady() != 1)
|
||||
{
|
||||
};
|
||||
|
||||
/* Main PLL configuration and activation */
|
||||
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
|
||||
|
||||
LL_RCC_PLL_Enable();
|
||||
while(LL_RCC_PLL_IsReady() != 1)
|
||||
{
|
||||
};
|
||||
|
||||
/* Sysclk activation on the main PLL */
|
||||
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
|
||||
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
||||
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
||||
{
|
||||
};
|
||||
|
||||
/* Set APB1 & APB2 prescaler*/
|
||||
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
|
||||
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
||||
|
||||
/* Set systick to 1ms in using frequency set to 72MHz */
|
||||
LL_Init1msTick(72000000); // utile lorsqu'on utilise la fonction LL_mDelay
|
||||
|
||||
/* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
|
||||
LL_SetSystemCoreClock(72000000);
|
||||
}
|
||||
|
||||
int main(){
|
||||
SystemClock_Config();
|
||||
ConfSysTick();
|
||||
ConfTransmission();
|
||||
char * msg1 = "ok ";
|
||||
char * msg2 = "coucou ";
|
||||
|
||||
while(1){
|
||||
if (drapeauTransmission){
|
||||
//EnvoiRegulier(ToString(RecupAllure()),ToString(RecupTension()));
|
||||
EnvoiRegulier(msg1, msg2);
|
||||
drapeauTransmission = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
#include "stm32f1xx_ll_bus.h"
|
||||
#include "stm32f1xx_ll_gpio.h"
|
||||
#include "stm32f1xx_ll_utils.h"
|
||||
#include "stm32f1xx_ll_usart.h"
|
||||
#include "stm32f1xx_ll_rcc.h"
|
||||
#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
|
||||
#include "Allure.h"
|
||||
#include "Voile.h"
|
||||
|
||||
|
||||
#ifndef TRANSMISSION_H
|
||||
#define TRANSMISSION_H
|
||||
|
||||
void EnvoiRegulier(char * Allure, char * tension);
|
||||
|
||||
void EnvoiExceptionnel(char * msgAlarme);
|
||||
|
||||
void ConfTransmission();
|
||||
void ConfTransmission(void);
|
||||
|
||||
#endif
|
||||
|
|
12
Src/Voile.c
12
Src/Voile.c
|
@ -1,4 +1,3 @@
|
|||
|
||||
#include "Voile.h"
|
||||
#include "stm32f1xx_ll_gpio.h"
|
||||
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
||||
|
@ -23,19 +22,20 @@ int angleVoileActuel = 0; //angle de la voile. Mis
|
|||
|
||||
void ConfVoile(void){
|
||||
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
|
||||
MyTimer_Conf(Timer,ARR,PSC);
|
||||
LL_TIM_SetAutoReload(Timer, ARR);
|
||||
LL_TIM_SetPrescaler(Timer, PSC);
|
||||
LL_GPIO_SetPinMode(GPIOA,LL_GPIO_PIN_8,LL_GPIO_MODE_ALTERNATE);
|
||||
LL_GPIO_SetPinOutputType(GPIOA,LL_GPIO_PIN_8,LL_GPIO_OUTPUT_PUSHPULL);
|
||||
LL_TIM_OC_SetMode(Timer, channel, LL_TIM_OCMODE_PWM1);
|
||||
Timer->CCER |= TIM_CCER_CC1E;
|
||||
Timer->BDTR |= 0x1 << 15;
|
||||
Timer->CCR1 = 1500; // par defaut tendu à 1ms
|
||||
MyTimer_Start(Timer);
|
||||
LL_TIM_EnableCounter(Timer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int RecupTension(void){
|
||||
int RecupTensionVoile(void){
|
||||
return angleVoileActuel;
|
||||
}
|
||||
|
||||
|
@ -54,3 +54,7 @@ void TendreVoile(int theta)
|
|||
{
|
||||
Timer->CCR1 = (int)(A_BETA_TO_GAMMA * (float)theta + B_BETA_TO_GAMMA) ;
|
||||
}
|
||||
|
||||
char * TensionVoileToString(int theta) {
|
||||
return "";
|
||||
}
|
||||
|
|
12
Src/Voile.h
12
Src/Voile.h
|
@ -1,5 +1,5 @@
|
|||
#include "MyTimer.h"
|
||||
|
||||
#ifndef VOILE_H
|
||||
#define VOILE_H
|
||||
|
||||
void ConfVoile(void);
|
||||
|
||||
|
@ -7,10 +7,12 @@ void ConfVoile(void);
|
|||
char * ToString(int theta) ;
|
||||
|
||||
|
||||
int RecupTension(void);
|
||||
|
||||
int RecupTensionVoile(void);
|
||||
|
||||
int CalculerTension(int alpha);
|
||||
|
||||
|
||||
void TendreVoile(int theta);
|
||||
|
||||
char * TensionVoileToString(int theta);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#include "Allure.h"
|
||||
#include "AntiChavirement.h"
|
||||
#include "Batterie.h"
|
||||
#include "Gouvernail.h"
|
||||
#include "Heure.h"
|
||||
//#include "Transmission.h"
|
||||
//#include "Heure.h"
|
||||
#include "Transmission.h"
|
||||
#include "Voile.h"
|
||||
#include "Securite.h"
|
||||
|
||||
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
|
||||
|
@ -12,6 +11,32 @@
|
|||
|
||||
void SystemClock_Config(void);
|
||||
|
||||
extern int drapeauRecupSecurite; // Flag qui est mis à 1 toute les 10 sec pour recuperer niveau batterie/rouli et envoi régulier
|
||||
extern int drapeauDangerBatterie; //Flag qui est mis à 1 toute les 10 sec si batterie faible --> envoie message alarme
|
||||
extern int drapeauDangerRouli; //Flag qui est mis à 1 toute les 10 sec si rouli pas bon --> envoie message alarme
|
||||
extern int drapeauTransmission;
|
||||
|
||||
void ConfSysTick(){
|
||||
NVIC_EnableIRQ(SysTick_IRQn);
|
||||
SysTick_Config(7200000);
|
||||
}
|
||||
|
||||
void SysTick_Handler(void) { /* SysTick interrupt Handler. */
|
||||
static int msTicks = 0;
|
||||
|
||||
msTicks++;
|
||||
|
||||
if (msTicks % 30 == 0){
|
||||
drapeauTransmission = 1;
|
||||
}
|
||||
|
||||
if (msTicks % 90 == 0) {
|
||||
drapeauRecupSecurite = 1;
|
||||
msTicks = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief configure tous les periphs qu'on va utiliser en appelant les
|
||||
fonctions de config de chaque "module"
|
||||
|
@ -20,10 +45,12 @@ void SystemClock_Config(void);
|
|||
* @retval None
|
||||
*/
|
||||
void Setup(){
|
||||
//ConfAntiChavirement();
|
||||
ConfSecurite();
|
||||
ConfAllure();
|
||||
ConfVoile();
|
||||
ConfGouvernail();
|
||||
ConfTransmission();
|
||||
ConfSysTick();
|
||||
|
||||
|
||||
}
|
||||
|
@ -76,7 +103,36 @@ int main(){
|
|||
Setup();
|
||||
|
||||
while(1){
|
||||
Background();
|
||||
int level ;
|
||||
int rouli;
|
||||
/* Envoi message toute les 3 sec sur l'Allure et la tension voile */
|
||||
if (drapeauTransmission){
|
||||
EnvoiRegulier(AllureToString(RecupAllure()), TensionVoileToString(RecupTensionVoile()));
|
||||
drapeauTransmission = 0;
|
||||
}
|
||||
|
||||
/* Recuperation toute les 10 sec niveau batterie et angle chavirement, puis calcul des dangers */
|
||||
if (drapeauRecupSecurite){
|
||||
level = RecupNiveauBatterie();
|
||||
CalculDangerNiveauBatterie( level );
|
||||
rouli = RecupRouli();
|
||||
CalculerDangerChavirement(rouli);
|
||||
drapeauRecupSecurite = 0;
|
||||
}
|
||||
|
||||
/*Si batterie faible après recup (toute les 10 sec), envoi alerte batterie faible */
|
||||
if (drapeauDangerBatterie){
|
||||
char * msgBatterie = "Batterie faible";
|
||||
EnvoiExceptionnel(msgBatterie);
|
||||
drapeauDangerBatterie = 0;
|
||||
}
|
||||
|
||||
/*Si angle chavirement pas bon après recup (toute les 10 sec), envoi alerte chavirement */
|
||||
if (drapeauDangerRouli){
|
||||
char * msgRouli = "Bateau chavire !";
|
||||
EnvoiExceptionnel(msgRouli);
|
||||
drapeauDangerRouli = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,3 +227,4 @@ void assert_failed(uint8_t *file, uint32_t line)
|
|||
*/
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
||||
|
|
Loading…
Reference in a new issue