Compare commits
9 commits
Author | SHA1 | Date | |
---|---|---|---|
|
0d390c9c27 | ||
|
04f1835265 | ||
|
88050db15f | ||
|
49f261078b | ||
|
6e1c2b1766 | ||
|
5c38d5e1da | ||
|
11a7310a43 | ||
|
325154c167 | ||
|
9c195f3020 |
7 changed files with 202 additions and 20 deletions
|
@ -300,12 +300,12 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>5</nTsel>
|
<nTsel>6</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
<sDlgPa></sDlgPa>
|
<sDlgPa></sDlgPa>
|
||||||
<sIfile></sIfile>
|
<sIfile>..\..\inifiles\Simu_Pulse.ini</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=-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=98,107,519,534,0)(121=-1,-1,-1,-1,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=-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>
|
<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>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
|
@ -358,6 +358,14 @@
|
||||||
<ItemText>time</ItemText>
|
<ItemText>time</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>0</SubType>
|
||||||
|
<ItemText>porta</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
</Tracepoint>
|
</Tracepoint>
|
||||||
|
@ -378,7 +386,7 @@
|
||||||
<AscS3>0</AscS3>
|
<AscS3>0</AscS3>
|
||||||
<aSer3>0</aSer3>
|
<aSer3>0</aSer3>
|
||||||
<eProf>0</eProf>
|
<eProf>0</eProf>
|
||||||
<aLa>0</aLa>
|
<aLa>1</aLa>
|
||||||
<aPa1>0</aPa1>
|
<aPa1>0</aPa1>
|
||||||
<AscS4>0</AscS4>
|
<AscS4>0</AscS4>
|
||||||
<aSer4>0</aSer4>
|
<aSer4>0</aSer4>
|
||||||
|
@ -400,6 +408,18 @@
|
||||||
<pszMrulep></pszMrulep>
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp></pSingCmdsp>
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp></pMultCmdsp>
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
<LogicAnalyzers>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>0</IntNumber>
|
||||||
|
<FirstString>((portb & 0x00000040) >> 6 & 0x40) >> 6</FirstString>
|
||||||
|
<SecondString>00008000000000000000000000000000E0FFEF400000000000000000000000000000000028706F7274622026203078303030303030343029203E3E2036000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000E03F0D00000000000000000000000000000000000000440E0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>1</IntNumber>
|
||||||
|
<FirstString>((portb & 0x00000080) >> 7 & 0x80) >> 7</FirstString>
|
||||||
|
<SecondString>00000000000000000000000000000000E0FFEF400000000000000000000000000000000028706F7274622026203078303030303030383029203E3E2037000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000000000000000E03F0D00000000000000000000000000000000000000040E0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
</LogicAnalyzers>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>0</EnableFlashSeq>
|
<EnableFlashSeq>0</EnableFlashSeq>
|
||||||
|
@ -420,7 +440,7 @@
|
||||||
<GroupNumber>1</GroupNumber>
|
<GroupNumber>1</GroupNumber>
|
||||||
<FileNumber>1</FileNumber>
|
<FileNumber>1</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>../Src/main.c</PathWithFileName>
|
<PathWithFileName>../Src/main.c</PathWithFileName>
|
||||||
|
@ -456,6 +476,18 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>3</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\MyDrivers\MyPWM.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>MyPWM.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -466,7 +498,7 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>3</FileNumber>
|
<FileNumber>4</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -478,7 +510,7 @@
|
||||||
</File>
|
</File>
|
||||||
<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>
|
||||||
|
@ -490,7 +522,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>
|
||||||
|
@ -502,7 +534,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>
|
||||||
|
@ -514,7 +546,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>
|
||||||
|
@ -534,7 +566,7 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>8</FileNumber>
|
<FileNumber>9</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -554,7 +586,7 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>9</FileNumber>
|
<FileNumber>10</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -574,7 +606,7 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>10</FileNumber>
|
<FileNumber>11</FileNumber>
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
|
|
@ -400,6 +400,11 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>MyPWM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\MyDrivers\MyPWM.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -595,11 +600,11 @@
|
||||||
<RunIndependent>0</RunIndependent>
|
<RunIndependent>0</RunIndependent>
|
||||||
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||||
<Capability>1</Capability>
|
<Capability>1</Capability>
|
||||||
<DriverSelection>4107</DriverSelection>
|
<DriverSelection>4101</DriverSelection>
|
||||||
</Flash1>
|
</Flash1>
|
||||||
<bUseTDR>1</bUseTDR>
|
<bUseTDR>1</bUseTDR>
|
||||||
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
|
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
|
||||||
<Flash3></Flash3>
|
<Flash3>"" ()</Flash3>
|
||||||
<Flash4></Flash4>
|
<Flash4></Flash4>
|
||||||
<pFcarmOut></pFcarmOut>
|
<pFcarmOut></pFcarmOut>
|
||||||
<pFcarmGrp></pFcarmGrp>
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
@ -861,6 +866,11 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
<FilePath>..\MyDrivers\MyTimer.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>MyPWM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\MyDrivers\MyPWM.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
|
65
MyDrivers/MyPWM.c
Normal file
65
MyDrivers/MyPWM.c
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#include "MyPWM.h"
|
||||||
|
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges
|
||||||
|
#include "stm32f1xx_ll_tim.h"
|
||||||
|
|
||||||
|
void MyPWM_Conf_Output(TIM_TypeDef * Timer, int channel)
|
||||||
|
{
|
||||||
|
LL_TIM_OC_InitTypeDef My_LL_Tim_OC_Init_Struct;
|
||||||
|
|
||||||
|
//Configuration du output channel en PWM
|
||||||
|
LL_TIM_OC_StructInit(&My_LL_Tim_OC_Init_Struct);
|
||||||
|
//Configure le mode de la PWM : PWM1 = 1 jusqu'à la CompareValue puis 0, PWM2 = l'inverse
|
||||||
|
My_LL_Tim_OC_Init_Struct.OCMode = LL_TIM_OCMODE_PWM1;
|
||||||
|
|
||||||
|
LL_TIM_OC_Init(Timer,channel,&My_LL_Tim_OC_Init_Struct);
|
||||||
|
|
||||||
|
//Activation du channel pour le timer considéré
|
||||||
|
LL_TIM_CC_EnableChannel(Timer, channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Configurer obligatoirement les channels 1 et 2 sur IC1 et IC2 ou IC3 et IC4
|
||||||
|
void MyPWM_Conf_Input(TIM_TypeDef * Timer, int channel1, int channel2)
|
||||||
|
{
|
||||||
|
LL_TIM_IC_InitTypeDef My_LL_Tim_IC_Init_Struct;
|
||||||
|
|
||||||
|
//Configuration du channel1 (front montant, mappé sur TI1 = valeurs par défaut)
|
||||||
|
LL_TIM_IC_StructInit(&My_LL_Tim_IC_Init_Struct);
|
||||||
|
LL_TIM_IC_Init(Timer,channel1,&My_LL_Tim_IC_Init_Struct);
|
||||||
|
|
||||||
|
//Configuration du channel2 (front descendant, mappé sur TI1 = valeurs modifiées)
|
||||||
|
LL_TIM_IC_StructInit(&My_LL_Tim_IC_Init_Struct);
|
||||||
|
//Détection sur front descendant
|
||||||
|
My_LL_Tim_IC_Init_Struct.ICPolarity = LL_TIM_IC_POLARITY_FALLING;
|
||||||
|
//Mappage sur TI1
|
||||||
|
My_LL_Tim_IC_Init_Struct.ICActiveInput = LL_TIM_ACTIVEINPUT_INDIRECTTI;
|
||||||
|
LL_TIM_IC_Init(Timer,channel2,&My_LL_Tim_IC_Init_Struct);
|
||||||
|
|
||||||
|
//Definition du trigger
|
||||||
|
LL_TIM_SetTriggerInput(Timer, LL_TIM_TS_TI1FP1);
|
||||||
|
|
||||||
|
//Configure le mode esclave en mode RESET
|
||||||
|
LL_TIM_SetSlaveMode(Timer, LL_TIM_SLAVEMODE_RESET);
|
||||||
|
|
||||||
|
//Activation des 2 channels pour le timer considéré
|
||||||
|
LL_TIM_CC_EnableChannel(Timer, channel1);
|
||||||
|
LL_TIM_CC_EnableChannel(Timer, channel2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MyPWM_Set_Impulse_Duration(TIM_TypeDef * Timer, uint32_t CompareValue, int channel)
|
||||||
|
{
|
||||||
|
if (channel==LL_TIM_CHANNEL_CH1) LL_TIM_OC_SetCompareCH1(Timer, CompareValue);
|
||||||
|
else if (channel==LL_TIM_CHANNEL_CH2) LL_TIM_OC_SetCompareCH2(Timer, CompareValue);
|
||||||
|
else if (channel==LL_TIM_CHANNEL_CH3) LL_TIM_OC_SetCompareCH3(Timer, CompareValue);
|
||||||
|
else LL_TIM_OC_SetCompareCH4(Timer, CompareValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
int MyPWM_Duty_Cycle_Permilles(TIM_TypeDef * Timer, int channel1, int channel2) {
|
||||||
|
if(channel1 == LL_TIM_CHANNEL_CH1 && channel2 == LL_TIM_CHANNEL_CH2) {
|
||||||
|
return LL_TIM_IC_GetCaptureCH2(Timer) / LL_TIM_IC_GetCaptureCH1(Timer) * 1000;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
16
MyDrivers/MyPWM.h
Normal file
16
MyDrivers/MyPWM.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef MYPWM_H
|
||||||
|
#define MYPWM_H
|
||||||
|
|
||||||
|
#include "stm32f1xx_ll_bus.h" // Pour l'activation des horloges
|
||||||
|
#include "stm32f1xx_ll_tim.h"
|
||||||
|
|
||||||
|
|
||||||
|
void MyPWM_Conf_Output(TIM_TypeDef * Timer, int channel);
|
||||||
|
|
||||||
|
void MyPWM_Conf_Input(TIM_TypeDef * Timer, int channel1, int channel2);
|
||||||
|
|
||||||
|
void MyPWM_Set_Impulse_Duration(TIM_TypeDef * Timer, uint32_t CompareValue, int channel);
|
||||||
|
|
||||||
|
int MyPWM_Duty_Cycle_Permilles(TIM_TypeDef * Timer, int channel1, int channel2);
|
||||||
|
|
||||||
|
#endif
|
|
@ -32,7 +32,7 @@ void (*Ptr_ItFct_TIM4)(void);
|
||||||
* int Psc : valeur à placer dans PSC
|
* int Psc : valeur à placer dans PSC
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MyTimer_Conf(TIM_TypeDef * Timer, int Period)
|
void MyTimer_Conf(TIM_TypeDef * Timer, int Arr, int Psc)
|
||||||
{
|
{
|
||||||
LL_TIM_InitTypeDef My_LL_Tim_Init_Struct;
|
LL_TIM_InitTypeDef My_LL_Tim_Init_Struct;
|
||||||
|
|
||||||
|
@ -42,9 +42,6 @@ void MyTimer_Conf(TIM_TypeDef * Timer, int Period)
|
||||||
else if (Timer==TIM3) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
|
else if (Timer==TIM3) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3);
|
||||||
else LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4);
|
else LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4);
|
||||||
|
|
||||||
int Psc = (Period*72*1000000)/256 + 2;
|
|
||||||
int Arr = (Period*72*1000000)/Psc + 1;
|
|
||||||
|
|
||||||
// chargement structure Arr, Psc, Up Count
|
// chargement structure Arr, Psc, Up Count
|
||||||
My_LL_Tim_Init_Struct.Autoreload=Arr;
|
My_LL_Tim_Init_Struct.Autoreload=Arr;
|
||||||
My_LL_Tim_Init_Struct.Prescaler=Psc;
|
My_LL_Tim_Init_Struct.Prescaler=Psc;
|
||||||
|
|
|
@ -18,7 +18,7 @@ Driver pour Timer 1
|
||||||
* int Psc : valeur à placer dans PSC
|
* int Psc : valeur à placer dans PSC
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MyTimer_Conf(TIM_TypeDef * Timer,int Period);
|
void MyTimer_Conf(TIM_TypeDef * Timer, int Arr, int Psc);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
62
Src/main.c
62
Src/main.c
|
@ -19,6 +19,9 @@
|
||||||
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
|
||||||
#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
|
#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_system.h" // utile dans la fonction SystemClock_Config
|
||||||
|
#include "stm32f1xx_ll_gpio.h"
|
||||||
|
#include "MyTimer.h"
|
||||||
|
#include "MyPWM.h"
|
||||||
|
|
||||||
void SystemClock_Config(void);
|
void SystemClock_Config(void);
|
||||||
|
|
||||||
|
@ -36,9 +39,68 @@ int main(void)
|
||||||
/* Configure the system clock to 72 MHz */
|
/* Configure the system clock to 72 MHz */
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
|
|
||||||
|
|
||||||
|
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB);
|
||||||
|
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
|
||||||
|
LL_GPIO_InitTypeDef My_GPIO_Init_Struct;
|
||||||
|
|
||||||
|
/*===Test Output===*/
|
||||||
|
|
||||||
|
// 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 */
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
duty_cycle = MyPWM_Duty_Cycle_Permilles(Timer, channel1, channel2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue