fix bugs and more...
This commit is contained in:
parent
89867cd01e
commit
e1773afbbe
12 changed files with 215 additions and 77 deletions
|
@ -345,7 +345,7 @@
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>DLGDARM</Key>
|
<Key>DLGDARM</Key>
|
||||||
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=1554,213,1920,450,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=-1,-1,-1,-1,0)(121=1509,217,1920,660,0)(122=-1,-1,-1,-1,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=1336,105,1920,897,0)(133=1148,116,1732,908,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=915,87,1508,879,0)(151=-1,-1,-1,-1,0)</Name>
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=1554,213,1920,450,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=129,555,687,1080,0)(121=1509,217,1920,660,0)(122=-1,-1,-1,-1,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=150,46,938,969,0)(133=1148,116,1732,908,0)(160=1046,190,1640,699,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=130,96,930,1019,0)(151=127,38,927,961,0)</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
|
@ -382,9 +382,25 @@
|
||||||
<Bp>
|
<Bp>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Type>0</Type>
|
<Type>0</Type>
|
||||||
<LineNumber>84</LineNumber>
|
<LineNumber>20</LineNumber>
|
||||||
<EnabledFlag>1</EnabledFlag>
|
<EnabledFlag>1</EnabledFlag>
|
||||||
<Address>134226236</Address>
|
<Address>134226220</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>1</BreakIfRCount>
|
||||||
|
<Filename>..\Services\RFEmitter.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression>\\NUCLEO_F103RB\../Services/RFEmitter.c\20</Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>1</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>43</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>134231406</Address>
|
||||||
<ByteObject>0</ByteObject>
|
<ByteObject>0</ByteObject>
|
||||||
<HtxType>0</HtxType>
|
<HtxType>0</HtxType>
|
||||||
<ManyObjects>0</ManyObjects>
|
<ManyObjects>0</ManyObjects>
|
||||||
|
@ -393,14 +409,62 @@
|
||||||
<BreakIfRCount>1</BreakIfRCount>
|
<BreakIfRCount>1</BreakIfRCount>
|
||||||
<Filename>../Src/main.c</Filename>
|
<Filename>../Src/main.c</Filename>
|
||||||
<ExecCommand></ExecCommand>
|
<ExecCommand></ExecCommand>
|
||||||
<Expression>\\NUCLEO_F103RB\../Src/main.c\84</Expression>
|
<Expression>\\NUCLEO_F103RB\../Src/main.c\43</Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>2</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>82</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>134231536</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>1</BreakIfRCount>
|
||||||
|
<Filename>../Src/main.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression>\\NUCLEO_F103RB\../Src/main.c\82</Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>3</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>44</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>../Src/main.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
<Bp>
|
||||||
|
<Number>4</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>87</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>../Src/main.c</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
</Bp>
|
</Bp>
|
||||||
</Breakpoint>
|
</Breakpoint>
|
||||||
<WatchWindow1>
|
<WatchWindow1>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>counter,0x10</ItemText>
|
<ItemText>msCounter,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>1</count>
|
<count>1</count>
|
||||||
|
@ -417,6 +481,31 @@
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>angle,0x0A</ItemText>
|
<ItemText>angle,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>4</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>displayStr</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>5</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>adcStatus</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>6</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>val1</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>7</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>val2</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>8</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>message</ItemText>
|
||||||
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
|
@ -424,7 +513,7 @@
|
||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>1</periodic>
|
<periodic>1</periodic>
|
||||||
<aLwin>1</aLwin>
|
<aLwin>0</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
|
@ -438,7 +527,7 @@
|
||||||
<AscS3>0</AscS3>
|
<AscS3>0</AscS3>
|
||||||
<aSer3>0</aSer3>
|
<aSer3>0</aSer3>
|
||||||
<eProf>0</eProf>
|
<eProf>0</eProf>
|
||||||
<aLa>1</aLa>
|
<aLa>0</aLa>
|
||||||
<aPa1>0</aPa1>
|
<aPa1>0</aPa1>
|
||||||
<AscS4>0</AscS4>
|
<AscS4>0</AscS4>
|
||||||
<aSer4>0</aSer4>
|
<aSer4>0</aSer4>
|
||||||
|
@ -464,9 +553,19 @@
|
||||||
<Wi>
|
<Wi>
|
||||||
<IntNumber>0</IntNumber>
|
<IntNumber>0</IntNumber>
|
||||||
<FirstString>((PORTB & 0x00000100) >> 8 & 0x100) >> 8</FirstString>
|
<FirstString>((PORTB & 0x00000100) >> 8 & 0x100) >> 8</FirstString>
|
||||||
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028504F5254422026203078303030303031303029203E3E2038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F1300000000000000000000000000000000000000AE110008</SecondString>
|
<SecondString>FF000000000000000000000000000000E0FFEF400100000000000000000000000000000028504F5254422026203078303030303031303029203E3E2038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F1700000000000000000000000000000000000000AE110008</SecondString>
|
||||||
</Wi>
|
</Wi>
|
||||||
</LogicAnalyzers>
|
</LogicAnalyzers>
|
||||||
|
<SystemViewers>
|
||||||
|
<Entry>
|
||||||
|
<Name>System Viewer\ADC1</Name>
|
||||||
|
<WinId>35904</WinId>
|
||||||
|
</Entry>
|
||||||
|
<Entry>
|
||||||
|
<Name>System Viewer\ADC2</Name>
|
||||||
|
<WinId>35905</WinId>
|
||||||
|
</Entry>
|
||||||
|
</SystemViewers>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>0</EnableFlashSeq>
|
<EnableFlashSeq>0</EnableFlashSeq>
|
||||||
|
@ -603,7 +702,7 @@
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>10</FileNumber>
|
<FileNumber>10</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\Services\RFEmitter.c</PathWithFileName>
|
<PathWithFileName>..\Services\RFEmitter.c</PathWithFileName>
|
||||||
|
|
|
@ -185,7 +185,6 @@
|
||||||
<uocXRam>0</uocXRam>
|
<uocXRam>0</uocXRam>
|
||||||
<RvdsVP>0</RvdsVP>
|
<RvdsVP>0</RvdsVP>
|
||||||
<RvdsMve>0</RvdsMve>
|
<RvdsMve>0</RvdsMve>
|
||||||
<RvdsCdeCp>0</RvdsCdeCp>
|
|
||||||
<hadIRAM2>0</hadIRAM2>
|
<hadIRAM2>0</hadIRAM2>
|
||||||
<hadIROM2>0</hadIROM2>
|
<hadIROM2>0</hadIROM2>
|
||||||
<StupSel>8</StupSel>
|
<StupSel>8</StupSel>
|
||||||
|
@ -352,7 +351,7 @@
|
||||||
<NoWarn>0</NoWarn>
|
<NoWarn>0</NoWarn>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<ClangAsOpt>4</ClangAsOpt>
|
<uClangAs>0</uClangAs>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -559,7 +558,7 @@
|
||||||
<TargetName>Simulateur</TargetName>
|
<TargetName>Simulateur</TargetName>
|
||||||
<ToolsetNumber>0x4</ToolsetNumber>
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
<ToolsetName>ARM-ADS</ToolsetName>
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
|
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
|
||||||
<uAC6>0</uAC6>
|
<uAC6>0</uAC6>
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<TargetCommonOption>
|
<TargetCommonOption>
|
||||||
|
@ -734,7 +733,6 @@
|
||||||
<uocXRam>0</uocXRam>
|
<uocXRam>0</uocXRam>
|
||||||
<RvdsVP>0</RvdsVP>
|
<RvdsVP>0</RvdsVP>
|
||||||
<RvdsMve>0</RvdsMve>
|
<RvdsMve>0</RvdsMve>
|
||||||
<RvdsCdeCp>0</RvdsCdeCp>
|
|
||||||
<hadIRAM2>0</hadIRAM2>
|
<hadIRAM2>0</hadIRAM2>
|
||||||
<hadIROM2>0</hadIROM2>
|
<hadIROM2>0</hadIROM2>
|
||||||
<StupSel>8</StupSel>
|
<StupSel>8</StupSel>
|
||||||
|
@ -901,7 +899,7 @@
|
||||||
<NoWarn>0</NoWarn>
|
<NoWarn>0</NoWarn>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<ClangAsOpt>4</ClangAsOpt>
|
<uClangAs>0</uClangAs>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -1120,19 +1118,4 @@
|
||||||
<files/>
|
<files/>
|
||||||
</RTE>
|
</RTE>
|
||||||
|
|
||||||
<LayerInfo>
|
|
||||||
<Layers>
|
|
||||||
<Layer>
|
|
||||||
<LayName><Project Info></LayName>
|
|
||||||
<LayDesc></LayDesc>
|
|
||||||
<LayUrl></LayUrl>
|
|
||||||
<LayKeys></LayKeys>
|
|
||||||
<LayCat></LayCat>
|
|
||||||
<LayLic></LayLic>
|
|
||||||
<LayTarg>0</LayTarg>
|
|
||||||
<LayPrjMark>1</LayPrjMark>
|
|
||||||
</Layer>
|
|
||||||
</Layers>
|
|
||||||
</LayerInfo>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -18,8 +18,6 @@ void ADC_conf(ADC_TypeDef *adc)
|
||||||
// Fixe le nombre de conversion à 1
|
// Fixe le nombre de conversion à 1
|
||||||
adc->SQR1 &= ADC_SQR1_L;
|
adc->SQR1 &= ADC_SQR1_L;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Calibration
|
// Calibration
|
||||||
adc->CR2 |= ADC_CR2_CAL_Msk;
|
adc->CR2 |= ADC_CR2_CAL_Msk;
|
||||||
while ((adc->CR2 & ADC_CR2_CAL_Msk));
|
while ((adc->CR2 & ADC_CR2_CAL_Msk));
|
||||||
|
@ -31,16 +29,15 @@ void ADC_start(ADC_TypeDef *adc)
|
||||||
adc->CR2 |= ADC_CR2_ADON;
|
adc->CR2 |= ADC_CR2_ADON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint16_t ADC_readRaw(ADC_TypeDef *adc, int channel)
|
uint16_t ADC_readRaw(ADC_TypeDef *adc, int channel)
|
||||||
{
|
{
|
||||||
// Indique la voie a convertir
|
// Indique la voie a convertir
|
||||||
adc->SQR3 = channel;
|
adc->SQR3 = channel;
|
||||||
// Lancement de la conversion
|
// Lancement de la conversion
|
||||||
adc->CR2 |= ADC_CR2_ADON;
|
adc->CR2 |= ADC_CR2_ADON;
|
||||||
while(!(ADC1->SR & ADC_SR_EOC)) {}
|
while(!(adc->SR & ADC_SR_EOC)) {}
|
||||||
|
|
||||||
return ADC1->DR & ADC_DR_DATA_Msk;
|
return adc->DR & ADC_DR_DATA_Msk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
#include "RFEmitter.h"
|
#include "RFEmitter.h"
|
||||||
|
#include "GPIO.h"
|
||||||
|
|
||||||
void RFEmitter_conf(USART_TypeDef * usart)
|
void RFEmitter_conf(USART_TypeDef * usart, GPIO_TypeDef *gpioTXEnable, int pinTXEnable)
|
||||||
{
|
{
|
||||||
|
// Configuration du pin TXEnable
|
||||||
|
GPIO_conf(gpioTXEnable, pinTXEnable, LL_GPIO_MODE_OUTPUT, LL_GPIO_OUTPUT_PUSHPULL, 0);
|
||||||
|
// Configuration de l'USART
|
||||||
Usart_conf(usart);
|
Usart_conf(usart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +14,15 @@ void RFEmitter_start(USART_TypeDef * usart)
|
||||||
Usart_enable(usart);
|
Usart_enable(usart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur)
|
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur, GPIO_TypeDef *gpioTXEnable, int pinTXEnable)
|
||||||
{
|
{
|
||||||
|
// set PA11 (TXEnable)
|
||||||
|
GPIO_setPin(gpioTXEnable, pinTXEnable, 1);
|
||||||
|
|
||||||
|
// Envoi du message
|
||||||
Usart_send(usart, message, longueur);
|
Usart_send(usart, message, longueur);
|
||||||
|
|
||||||
|
// reset PA11 (TXEnable)
|
||||||
|
GPIO_setPin(gpioTXEnable, pinTXEnable, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
|
|
||||||
#include "USART.h"
|
#include "USART.h"
|
||||||
|
|
||||||
void RFEmitter_conf(USART_TypeDef * usart);
|
void RFEmitter_conf(USART_TypeDef * usart, GPIO_TypeDef *gpioTXEnable, int pinTXEnable);
|
||||||
|
|
||||||
void RFEmitter_start(USART_TypeDef * usart);
|
void RFEmitter_start(USART_TypeDef * usart);
|
||||||
|
|
||||||
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur);
|
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur, GPIO_TypeDef *gpioTXEnable, int pinTXEnable);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -17,5 +17,6 @@ void Voltage_start(ADC_TypeDef * adc)
|
||||||
|
|
||||||
float Voltage_getVoltage(ADC_TypeDef * adc, int channel)
|
float Voltage_getVoltage(ADC_TypeDef * adc, int channel)
|
||||||
{
|
{
|
||||||
return ADC_readVolt(adc, channel);
|
// 13 * la valeur de l'ADC, car pont diviseur de tension en amont de l'ADC
|
||||||
|
return 13.0f * ADC_readVolt(adc, channel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,23 @@
|
||||||
#include "Display.h"
|
#include "Display.h"
|
||||||
#include "Voltage.h"
|
#include "Voltage.h"
|
||||||
#include "RFEmitter.h"
|
#include "RFEmitter.h"
|
||||||
|
#include "Sail.h"
|
||||||
|
#include "stdio.h"
|
||||||
|
#include "string.h"
|
||||||
|
|
||||||
USART_TypeDef * EMITTER_USART = USART1;
|
USART_TypeDef * EMITTER_USART = USART1;
|
||||||
|
GPIO_TypeDef * EMITTER_GPIO = GPIOA;
|
||||||
|
const int EMITTER_PIN = LL_GPIO_PIN_11;
|
||||||
|
|
||||||
ADC_TypeDef * VOLTAGE_ADC = ADC2;
|
ADC_TypeDef * VOLTAGE_ADC = ADC2;
|
||||||
const int VOLTAGE_CHANNEL = LL_ADC_CHANNEL_12;
|
const int VOLTAGE_CHANNEL = 12;
|
||||||
GPIO_TypeDef * VOLTAGE_GPIO = GPIOC;
|
GPIO_TypeDef * VOLTAGE_GPIO = GPIOC;
|
||||||
const int VOLTAGE_PIN = LL_GPIO_PIN_2;
|
const int VOLTAGE_PIN = LL_GPIO_PIN_2;
|
||||||
|
|
||||||
void Display_conf()
|
void Display_conf()
|
||||||
{
|
{
|
||||||
Voltage_conf(VOLTAGE_ADC, VOLTAGE_GPIO, VOLTAGE_PIN);
|
Voltage_conf(VOLTAGE_ADC, VOLTAGE_GPIO, VOLTAGE_PIN);
|
||||||
RFEmitter_conf(EMITTER_USART);
|
RFEmitter_conf(EMITTER_USART, EMITTER_GPIO, EMITTER_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display_start()
|
void Display_start()
|
||||||
|
@ -21,7 +26,30 @@ void Display_start()
|
||||||
RFEmitter_start(EMITTER_USART);
|
RFEmitter_start(EMITTER_USART);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display_background()
|
|
||||||
|
void Display_background(int secCounter)
|
||||||
{
|
{
|
||||||
float voltage = Voltage_getVoltage(ADC2, LL_ADC_CHANNEL_12);
|
static int previousEmergencyState = 0;
|
||||||
|
static int prevSendSec = 0;
|
||||||
|
|
||||||
|
const int emergency = Sail_getEmergencyState();
|
||||||
|
|
||||||
|
if (secCounter - prevSendSec == 3 || (emergency && !previousEmergencyState)) {
|
||||||
|
prevSendSec = secCounter;
|
||||||
|
|
||||||
|
const float voltage = Voltage_getVoltage(VOLTAGE_ADC, VOLTAGE_CHANNEL);
|
||||||
|
const int sailAngle = Sail_getSailAngle();
|
||||||
|
const int relativeAngle = sailAngle >= 180 ? 360 - sailAngle : sailAngle;
|
||||||
|
const int sailPercent = (90 - relativeAngle) * 100 / 90;
|
||||||
|
|
||||||
|
char displayStr[100];
|
||||||
|
|
||||||
|
sprintf(displayStr, "Bordage actuel = %d%%\nTension de la batterie = %fV\n", sailPercent, voltage);
|
||||||
|
if (emergency)
|
||||||
|
sprintf(displayStr, "Limite de roulis atteinte !\n%s", displayStr);
|
||||||
|
|
||||||
|
RFEmitter_send(EMITTER_USART, displayStr, strlen(displayStr), EMITTER_GPIO, EMITTER_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
previousEmergencyState = emergency;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,6 @@ void Display_conf(void);
|
||||||
|
|
||||||
void Display_start(void);
|
void Display_start(void);
|
||||||
|
|
||||||
void Display_background(void);
|
void Display_background(int msCounter);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
#include "Accelerometer.h"
|
#include "Accelerometer.h"
|
||||||
#include "stdlib.h"
|
#include "stdlib.h"
|
||||||
|
|
||||||
ADC_TypeDef * ROLL_ADC = ADC1;
|
ADC_TypeDef * ROLL_ADC = ADC2;
|
||||||
const int ROLL_X_CHANNEL = LL_ADC_CHANNEL_11;
|
const int ROLL_X_CHANNEL = 11;
|
||||||
const int ROLL_Y_CHANNEL = LL_ADC_CHANNEL_10;
|
const int ROLL_Y_CHANNEL = 10;
|
||||||
GPIO_TypeDef * ROLL_GPIO = GPIOC;
|
GPIO_TypeDef * ROLL_GPIO = GPIOC;
|
||||||
const int ROLL_X_PIN = LL_GPIO_PIN_0;
|
const int ROLL_X_PIN = LL_GPIO_PIN_0;
|
||||||
const int ROLL_Y_PIN = LL_GPIO_PIN_1;
|
const int ROLL_Y_PIN = LL_GPIO_PIN_1;
|
||||||
|
|
15
Src/Sail.c
15
Src/Sail.c
|
@ -28,7 +28,7 @@ void Sail_start()
|
||||||
IncrementalEncoder_start(ENCODER_TIMER);
|
IncrementalEncoder_start(ENCODER_TIMER);
|
||||||
}
|
}
|
||||||
|
|
||||||
int getSailAngle(int windAngle)
|
int windToSailAngle(int windAngle)
|
||||||
{
|
{
|
||||||
if (windAngle > 180)
|
if (windAngle > 180)
|
||||||
return 90 * (windAngle - 45) / 135;
|
return 90 * (windAngle - 45) / 135;
|
||||||
|
@ -36,6 +36,12 @@ int getSailAngle(int windAngle)
|
||||||
return 360 - 90 * ((360 - windAngle) - 45) / 135;
|
return 360 - 90 * ((360 - windAngle) - 45) / 135;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Sail_getSailAngle(void)
|
||||||
|
{
|
||||||
|
return ServoMotor_getAngle(MOTOR_TIMER, MOTOR_CHANNEL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sail_background()
|
void Sail_background()
|
||||||
{
|
{
|
||||||
if (Sail_isEmergencyState)
|
if (Sail_isEmergencyState)
|
||||||
|
@ -46,7 +52,7 @@ void Sail_background()
|
||||||
if (windAngle < 45 || windAngle > 315)
|
if (windAngle < 45 || windAngle > 315)
|
||||||
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, 0);
|
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, 0);
|
||||||
else
|
else
|
||||||
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, getSailAngle(windAngle));
|
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, windToSailAngle(windAngle));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sail_setEmergency(int state)
|
void Sail_setEmergency(int state)
|
||||||
|
@ -55,3 +61,8 @@ void Sail_setEmergency(int state)
|
||||||
if (Sail_isEmergencyState)
|
if (Sail_isEmergencyState)
|
||||||
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, RESET_ANGLE);
|
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, RESET_ANGLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Sail_getEmergencyState()
|
||||||
|
{
|
||||||
|
return Sail_isEmergencyState;
|
||||||
|
}
|
||||||
|
|
|
@ -25,6 +25,10 @@ void Sail_background(void);
|
||||||
*/
|
*/
|
||||||
void Sail_setEmergency(int state);
|
void Sail_setEmergency(int state);
|
||||||
|
|
||||||
|
int Sail_getEmergencyState(void);
|
||||||
|
|
||||||
|
int Sail_getSailAngle(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Réinitialise la voile à sa position initiale
|
* @brief Réinitialise la voile à sa position initiale
|
||||||
* @note
|
* @note
|
||||||
|
|
59
Src/main.c
59
Src/main.c
|
@ -29,44 +29,34 @@
|
||||||
#include "ADC.h"
|
#include "ADC.h"
|
||||||
#include "GPIO.h"
|
#include "GPIO.h"
|
||||||
#include "Accelerometer.h"
|
#include "Accelerometer.h"
|
||||||
|
#include "RFEmitter.h"
|
||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
void SystemClock_Config(void);
|
void SystemClock_Config(void);
|
||||||
|
|
||||||
|
int secCounter = 0;
|
||||||
|
|
||||||
/* Private functions ---------------------------------------------------------*/
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
|
||||||
int counter = 1;
|
|
||||||
int adcRaw1 = 0;
|
|
||||||
int adcRaw2 = 0;
|
|
||||||
double adcVolt1 = 0.0;
|
|
||||||
double adcVolt2 = 0.0;
|
|
||||||
|
|
||||||
int angle = 0;
|
|
||||||
|
|
||||||
void backgroundTask()
|
void backgroundTask()
|
||||||
{
|
{
|
||||||
counter++;
|
static int msCounter;
|
||||||
|
msCounter++;
|
||||||
|
if (msCounter == 1000) {
|
||||||
|
msCounter = 0;
|
||||||
|
secCounter++;
|
||||||
|
}
|
||||||
Sail_background();
|
Sail_background();
|
||||||
Roll_background();
|
Roll_background();
|
||||||
Orientation_background();
|
Orientation_background();
|
||||||
|
|
||||||
|
|
||||||
// DEBUG
|
|
||||||
angle = Accelerometer_getAngle(ADC1, LL_ADC_CHANNEL_11);
|
|
||||||
|
|
||||||
adcRaw1 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_11);
|
|
||||||
adcRaw2 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_10);
|
|
||||||
adcVolt1 = ADC_convertToVolt(adcRaw1);
|
|
||||||
adcVolt2 = ADC_convertToVolt(adcRaw2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void configurePeripherals()
|
void configurePeripherals()
|
||||||
{
|
{
|
||||||
Sail_conf();
|
Sail_conf();
|
||||||
Roll_conf();
|
Roll_conf();
|
||||||
|
Display_conf();
|
||||||
Orientation_conf();
|
Orientation_conf();
|
||||||
|
|
||||||
// DEBUG
|
|
||||||
ADC_conf(ADC1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void startPeripherals()
|
void startPeripherals()
|
||||||
|
@ -74,9 +64,6 @@ void startPeripherals()
|
||||||
Sail_start();
|
Sail_start();
|
||||||
Roll_start();
|
Roll_start();
|
||||||
Display_start();
|
Display_start();
|
||||||
|
|
||||||
// DEBUG
|
|
||||||
ADC_start(ADC1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,7 +72,7 @@ void startPeripherals()
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
/* Configure the system clock to 72 MHz */
|
/* Configure the system clock to 72 MHz */
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
|
|
||||||
|
@ -97,8 +84,24 @@ int main(void)
|
||||||
Scheduler_start();
|
Scheduler_start();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
Display_background();
|
Display_background(secCounter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//// ADC 2 marche niquel, ADC1 ne marche pas :(
|
||||||
|
// ADC_conf(ADC1);
|
||||||
|
// ADC_start(ADC1);
|
||||||
|
//
|
||||||
|
// ADC_conf(ADC2);
|
||||||
|
// ADC_start(ADC2);
|
||||||
|
|
||||||
|
//
|
||||||
|
// while (1) {
|
||||||
|
// val1 = ADC_readRaw(ADC1, 10);
|
||||||
|
// val2 = ADC_readRaw(ADC2, 10);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,8 +180,8 @@ void SystemClock_Config(void)
|
||||||
*/
|
*/
|
||||||
void assert_failed(uint8_t *file, uint32_t line)
|
void assert_failed(uint8_t *file, uint32_t line)
|
||||||
{
|
{
|
||||||
/* User can add his own implementation to report the file name and line number,
|
/* User can add his own implementation to report the file name and line number*/
|
||||||
ex: printf("Wrong parameters value: file %s on line %d", file, line) */
|
printf("Wrong parameters value: file %s on line %d", file, line);
|
||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
while (1)
|
while (1)
|
||||||
|
|
Loading…
Reference in a new issue