Merge branch 'Moteur' into develop

This commit is contained in:
Neluji 2020-11-22 18:40:45 +01:00
commit 7c30feb7fa
7 changed files with 178 additions and 82 deletions

View file

@ -305,7 +305,7 @@
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
<sDlgPa></sDlgPa> <sDlgPa></sDlgPa>
<sIfile>..\..\inifiles\Simu_Pulse.ini</sIfile> <sIfile></sIfile>
<tDll></tDll> <tDll></tDll>
<tDllPa></tDllPa> <tDllPa></tDllPa>
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
@ -317,7 +317,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=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=504,37,1150,710,0)(110=60,88,280,548,0)(111=752,104,972,564,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=533,85,954,512,0)(121=892,96,1313,523,0)(122=674,103,1095,530,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=709,11,1303,762,0)(131=150,13,744,764,0)(132=599,17,1193,768,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> <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=504,37,1150,710,0)(110=60,88,280,548,0)(111=752,104,972,564,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=864,64,1285,491,0)(121=892,96,1313,523,0)(122=674,103,1095,530,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=709,11,1303,762,0)(131=736,17,1330,768,0)(132=599,17,1193,768,0)(133=295,17,889,768,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>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -350,7 +350,24 @@
<Name>-U-O142 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name> <Name>-U-O142 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>25</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134219120</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>F:\Etudes\4A\µC - Périphériques\Periph-Voilier\Services\Moteur.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\NUCLEO_F103RB\../Services/Moteur.c\25</Expression>
</Bp>
</Breakpoint>
<WatchWindow1> <WatchWindow1>
<Ww> <Ww>
<count>0</count> <count>0</count>
@ -362,7 +379,7 @@
<Mm> <Mm>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<SubType>0</SubType> <SubType>0</SubType>
<ItemText>porta</ItemText> <ItemText>My_GPIO_Init_Struct</ItemText>
<AccSizeX>0</AccSizeX> <AccSizeX>0</AccSizeX>
</Mm> </Mm>
</MemoryWindow1> </MemoryWindow1>
@ -411,13 +428,13 @@
<LogicAnalyzers> <LogicAnalyzers>
<Wi> <Wi>
<IntNumber>0</IntNumber> <IntNumber>0</IntNumber>
<FirstString>((portb &amp; 0x00000040) &gt;&gt; 6 &amp; 0x40) &gt;&gt; 6</FirstString> <FirstString>((porta &amp; 0x00000002) &gt;&gt; 1 &amp; 0x2) &gt;&gt; 1</FirstString>
<SecondString>00008000000000000000000000000000E0FFEF400000000000000000000000000000000028706F7274622026203078303030303030343029203E3E2036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000E03F0D00000000000000000000000000000000000000440E0008</SecondString> <SecondString>00800000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274612026203078303030303030303229203E3E2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000E03F0B00000000000000000000000000000000000000320F0008</SecondString>
</Wi> </Wi>
<Wi> <Wi>
<IntNumber>1</IntNumber> <IntNumber>1</IntNumber>
<FirstString>((portb &amp; 0x00000080) &gt;&gt; 7 &amp; 0x80) &gt;&gt; 7</FirstString> <FirstString>((porta &amp; 0x00000004) &gt;&gt; 2 &amp; 0x4) &gt;&gt; 2</FirstString>
<SecondString>00000000000000000000000000000000E0FFEF400000000000000000000000000000000028706F7274622026203078303030303030383029203E3E2037000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000000000000000E03F0D00000000000000000000000000000000000000040E0008</SecondString> <SecondString>00008000000000000000000000000000E0FFEF400100000000000000000000000000000028706F7274612026203078303030303030303429203E3E2032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000000000000000E03F0B00000000000000000000000000000000000000320F0008</SecondString>
</Wi> </Wi>
</LogicAnalyzers> </LogicAnalyzers>
<DebugDescription> <DebugDescription>
@ -456,6 +473,18 @@
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Services\Moteur.c</PathWithFileName>
<FilenameWithoutPath>Moteur.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -466,9 +495,9 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>2</FileNumber> <FileNumber>3</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\MyTimer.c</PathWithFileName> <PathWithFileName>..\MyDrivers\MyTimer.c</PathWithFileName>
@ -478,9 +507,9 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>3</FileNumber> <FileNumber>4</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\MyPWM.c</PathWithFileName> <PathWithFileName>..\MyDrivers\MyPWM.c</PathWithFileName>
@ -498,7 +527,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>4</FileNumber> <FileNumber>5</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -510,7 +539,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>5</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -522,7 +551,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>6</FileNumber> <FileNumber>7</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -534,7 +563,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>7</FileNumber> <FileNumber>8</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -546,7 +575,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>8</FileNumber> <FileNumber>9</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -566,7 +595,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>9</FileNumber> <FileNumber>10</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -586,7 +615,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>10</FileNumber> <FileNumber>11</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -606,7 +635,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>11</FileNumber> <FileNumber>12</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View file

@ -391,6 +391,13 @@
</Group> </Group>
<Group> <Group>
<GroupName>User Services</GroupName> <GroupName>User Services</GroupName>
<Files>
<File>
<FileName>Moteur.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Moteur.c</FilePath>
</File>
</Files>
</Group> </Group>
<Group> <Group>
<GroupName>MyDrivers</GroupName> <GroupName>MyDrivers</GroupName>
@ -857,6 +864,13 @@
</Group> </Group>
<Group> <Group>
<GroupName>User Services</GroupName> <GroupName>User Services</GroupName>
<Files>
<File>
<FileName>Moteur.c</FileName>
<FileType>1</FileType>
<FilePath>..\Services\Moteur.c</FilePath>
</File>
</Files>
</Group> </Group>
<Group> <Group>
<GroupName>MyDrivers</GroupName> <GroupName>MyDrivers</GroupName>

View file

@ -1,8 +1,7 @@
#ifndef MYPWM_H #ifndef PWM_H
#define MYPWM_H #define PWM_H
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges #include "stm32f103xb.h"
#include "stm32f1xx_ll_tim.h"
void MyPWM_Conf_Output(TIM_TypeDef * Timer, int channel); void MyPWM_Conf_Output(TIM_TypeDef * Timer, int channel);

80
Services/Moteur.c Normal file
View file

@ -0,0 +1,80 @@
#include "Moteur.h"
#include "MyPWM.h"
#include "MyTimer.h"
#include "stm32f1xx_ll_bus.h"
#include "stm32f1xx_ll_gpio.h"
#include "stm32f1xx_ll_tim.h"
void Moteur_Conf(void) {
//Fpwm = 10kHz = 72Mhz/(7200 = 0x1C20)
int Arr = 0x1C1F;
int Psc = 0x0;
//Activation horloge GPIO
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
//Config broche PA2 -> Sens
LL_GPIO_InitTypeDef My_GPIO_Init_Struct;
LL_GPIO_StructInit(&My_GPIO_Init_Struct);
My_GPIO_Init_Struct.Pin = PinSens;
My_GPIO_Init_Struct.Mode = LL_GPIO_MODE_OUTPUT;
My_GPIO_Init_Struct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_Init(GPIOPins, &My_GPIO_Init_Struct);
//Config broche PA1 -> PWM
LL_GPIO_StructInit(&My_GPIO_Init_Struct);
My_GPIO_Init_Struct.Pin = LL_GPIO_PIN_1;
My_GPIO_Init_Struct.Mode = LL_GPIO_MODE_ALTERNATE;
My_GPIO_Init_Struct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_Init(GPIOA, &My_GPIO_Init_Struct);
//Activation horloge Timer
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2);
//Configuration initiale du Timer
MyTimer_Conf(TimerPWM, Arr, Psc);
//Configuration du Timer en PWM Output
MyPWM_Conf_Output(TimerPWM, channelPWM);
Moteur_Speed(0);
Moteur_Sens(0);
}
void Moteur_Speed(int speedPercentage) {
int Arr = 0x1C1F;
if(speedPercentage == 0) {
MyTimer_Stop(TimerPWM);
}
else {
MyTimer_Start(TimerPWM);
MyPWM_Set_Impulse_Duration(TimerPWM, Arr*speedPercentage/100, channelPWM);
}
}
void Moteur_Sens(int sens) {
if(sens == 0) {
LL_GPIO_ResetOutputPin(GPIOPins, PinSens);
}
else {
LL_GPIO_SetOutputPin(GPIOPins, PinSens);
}
}

18
Services/Moteur.h Normal file
View file

@ -0,0 +1,18 @@
#ifndef MOTEUR_H
#define MOTEUR_H
#include "stm32f103xb.h"
#define PinSens LL_GPIO_PIN_2
#define PinPWM LL_GPIO_PIN_1
#define GPIOPins GPIOA
#define TimerPWM TIM2
#define channelPWM LL_TIM_CHANNEL_CH2
void Moteur_Conf(void);
void Moteur_Speed(int speedPercentage);
void Moteur_Sens(int sens);
#endif

View file

@ -1 +0,0 @@
Mettre les services ici

View file

@ -22,6 +22,7 @@
#include "stm32f1xx_ll_gpio.h" #include "stm32f1xx_ll_gpio.h"
#include "MyTimer.h" #include "MyTimer.h"
#include "MyPWM.h" #include "MyPWM.h"
#include "Moteur.h"
void SystemClock_Config(void); void SystemClock_Config(void);
@ -39,68 +40,24 @@ int main(void)
/* Configure the system clock to 72 MHz */ /* Configure the system clock to 72 MHz */
SystemClock_Config(); SystemClock_Config();
/*===Test Moteur===*/
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB); //INIT GPIO MARCHE PAS->PB PIN
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA); Moteur_Conf();
LL_GPIO_InitTypeDef My_GPIO_Init_Struct;
/*===Test Output===*/ Moteur_Speed(30);
Moteur_Sens(0);
// TIM_TypeDef *Timer1 = TIM3;
// int Channel1 = LL_TIM_CHANNEL_CH2;
// TIM_TypeDef *Timer2 = TIM4;
// int Channel2 = LL_TIM_CHANNEL_CH4;
//
// MyTimer_Conf(Timer1,0xFFFE, 0x72);
// MyTimer_Conf(Timer2,0xFFFE, 0x72);
//
// MyPWM_Conf_Output(Timer1, Channel1);
// MyPWM_Conf_Output(Timer2, Channel2);
//
// MyPWM_Set_Impulse_Duration(Timer1, 25, Channel1);
// MyPWM_Set_Impulse_Duration(Timer2, 75, Channel2);
//
// My_GPIO_Init_Struct.Pin = LL_GPIO_PIN_7;
// My_GPIO_Init_Struct.Mode = LL_GPIO_MODE_ALTERNATE;
// My_GPIO_Init_Struct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
// My_GPIO_Init_Struct.Speed = LL_GPIO_MODE_OUTPUT_2MHz;
// My_GPIO_Init_Struct.Pull = LL_GPIO_PULL_DOWN;
// LL_GPIO_Init(GPIOA, &My_GPIO_Init_Struct);
//
// My_GPIO_Init_Struct.Pin = LL_GPIO_PIN_9;
// My_GPIO_Init_Struct.Mode = LL_GPIO_MODE_ALTERNATE;
// My_GPIO_Init_Struct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
// My_GPIO_Init_Struct.Speed = LL_GPIO_MODE_OUTPUT_2MHz;
// My_GPIO_Init_Struct.Pull = LL_GPIO_PULL_DOWN;
// LL_GPIO_Init(GPIOB, &My_GPIO_Init_Struct);
//
// MyTimer_Start(Timer1);
// MyTimer_Start(Timer2);
/*===Test Input===*/
TIM_TypeDef *Timer = TIM4;
int channel1 = LL_TIM_CHANNEL_CH1;
int channel2 = LL_TIM_CHANNEL_CH2;
My_GPIO_Init_Struct.Pin = LL_GPIO_PIN_6;
My_GPIO_Init_Struct.Mode = LL_GPIO_MODE_FLOATING;
My_GPIO_Init_Struct.Pull = LL_GPIO_PULL_DOWN;
LL_GPIO_Init(GPIOB, &My_GPIO_Init_Struct);
My_GPIO_Init_Struct.Pin = LL_GPIO_PIN_7;
LL_GPIO_Init(GPIOB, &My_GPIO_Init_Struct);
MyTimer_Conf(Timer,0xFFAD,0x15);
MyPWM_Conf_Input(Timer, channel1, channel2);
int duty_cycle = 0;
/* Infinite loop */ /* Infinite loop */
for (int i =0; i<0xFFFF; i++)
{
}
Moteur_Speed(60);
Moteur_Sens(1);
while (1) while (1)
{ {
duty_cycle = MyPWM_Duty_Cycle_Permilles(Timer, channel1, channel2);
} }
} }