<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=CS link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Ale teď mi to taky nechodí, tak už nevim…</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>#define CPU_freq 48000000 // 48 MHz<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>#define PWM_freq 240000 // 240 kHz<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>// moje PWM TIM3 chan<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>#define PWM0_chan 3 // az po propojeni<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>#define PWM1_chan 4<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>#define PWM2_chan 2<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>void pwmSet(char chan, uint16_t val) { // hodnota PWM -------------------------------------------------<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> switch(chan) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> //case 0: TIM3->CCR0 = val; break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 1: TIM3->CCR1 = val; break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 2: TIM3->CCR2 = val; break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 3: TIM3->CCR3 = val; break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 4: TIM3->CCR4 = val; break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>}<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>void pwmInit(uint8_t chan, char port, uint8_t pin, uint16_t per, uint16_t val) { // -------------------<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> RCC->AHBENR |= (1<<17) + (1<<18); // IOPAEN IOPBEN<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> RCC->APB1ENR |= 2; // APB peripheral clock enable TIM3<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> switch (port) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 'A':<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOA->MODER |= 2<<(1<<pin); // port alt fn<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> switch(chan) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 0:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 1:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOA->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 2:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOA->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 3:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 4:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 'B':<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOB->MODER |= 2<<(1<<pin); //port alt fn<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> switch(chan) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 0:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 1:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOB->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 2:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOB->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 3:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOB->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> case 4:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> GPIOB->AFR[0] |= 1<<(pin<<2); // AF1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> break;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->CR1 = 1; // Bit 1 UDIS: Update disable<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->CCMR2 = 0b110<<12; // OC4M out 111 PWM mode 2, 110 PWM mode 1<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->CCER = 0x3000; // CC4P 1: OC1 active low / CC4E 1: On - OC1 signal is output<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->CNT = 0; // counter<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->PSC = 0; // nedelit - 48 MHz<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->ARR = per; // perioda<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> TIM3->CR1 = 0x1; // CEN 1: Counter enabled<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> pwmSet(chan, val); // hodnota PWM<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'>}<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A v mainu je:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> pwm0=10; pwm1=30; pwm2=180;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> pwmInit(PWM0_chan, 'B', 0, CPU_freq/PWM_freq, pwm0);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> pwmInit(PWM1_chan, 'B', 1, CPU_freq/PWM_freq, pwm1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> pwmInit(PWM2_chan, 'A', 7, CPU_freq/PWM_freq, pwm2);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> while (1) {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, 1);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> for (n=0; n<1000000; n++);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, 0);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> for (n=0; n<1000000; n++);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#843C0C;mso-style-textfill-fill-color:#843C0C;mso-style-textfill-fill-alpha:100.0%'> }<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>LEDka bliká, ale PWMky nePWMkujou.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>PH</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Od: </b><a href="mailto:edizon@seznam.cz">Pavel Hudecek</a><o:p></o:p></p></div><p class=MsoNormal>No to jsem udělal, ale ono to právě pak stejně nechodilo.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b>Od: </b><a href="mailto:jaroslav.buchta@hascomp.cz">Jaroslav Buchta</a><o:p></o:p></p></div><p>Tak ted se mi zda, ze prece jen aspon pro prvni pokusy je dobre pouzit konfigurator a HAL - naklika se to, spusti se timer a jede to... Postup spusteni je primo soucasti zdrojaku kdyz nekdo nechce hledat.</p><p><o:p> </o:p></p><div><p class=MsoNormal>Dne 29.11.2020 v 20:16 Fanda Kopriva napsal(a):<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>posilam soukromne tak to snad dojde<o:p></o:p></p></div><div><p class=MsoNormal>fanda<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Dne 29. 11. 2020 v 19:43 Pavel Hudecek napsal(a):<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Mohl bych poprosit o zaslání .h ve kteém jsou ty registry STM32F030K6T6 zadefinovaný?<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Stáhnul jsem několik takových fajlů a nefunguje ani jedno ani druhý<o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:black'>TIM3_CCR0 = val;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;color:black'>TIM3</span><span style='color:black'>-></span><span style='font-size:10.0pt;font-family:Consolas;color:black'>CCR0 = val;</span><o:p></o:p></p><p class=MsoNormal><span style='color:black'>Zajímavý je, že je v nich nadefinovaných spousta věcí, jako TIM1_..., nebo TIM17_... takže třeba s TIM1 by mi to tak šlo, ale k TIM3 je tam jen BASE.</span><o:p></o:p></p><p class=MsoNormal><span style='color:black'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:black'>Díky,</span><o:p></o:p></p><p class=MsoNormal><span style='color:black'>PH</span><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b>Od: </b><a href="mailto:info@elektronikavyvoj.cz">Fanda Kopriva</a><o:p></o:p></p></div><div><p class=MsoNormal>s STM32F030K6T6 jsem delal pro kamarada nastavovani modelarskeho serva opakovacka 20 ms a pulz 1-2ms<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>void motor(char co)<br>{<br>unsigned int pwmx;<br> switch (co) {<br> case 'I':<br> RCC_APB1ENR |=2; //servo inicializace<br> GPIOB_MODER |= 0x00000008; //port pb1<br> GPIOB_AFRL |= 0x00000010;<br> TIM3_CR1 = 0x1; <br> TIM3_CCMR2_Output = 0x7000; <br> TIM3_CCR4 = 0; //togle<br> TIM3_CCER = 0x3000; //11<br> TIM3_CNT = 0;<br> TIM3_PSC = 7; //1us<br> TIM3_ARR = 20000; //20ms<br> TIM3_CR1 = 0x1; //43<br> TIM3_CCR4 = 1000; //1.5ms<br> break;<br> case 'P':<br> pwmx = servo * 50 + 1000; //servo nastaveni<br> if (pwmx>2000) pwmx=2000; <br> TIM3_CCR4 = pwmx;<br> break;<br> case 'S':TIM3_CCR4 = 1000; //1.5ms servo stop<br> break;<br> }<br>}<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><p class=MsoNormal>jeste priklad pro stm32f446 - <o:p></o:p></p><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>#define enc1 0 //pc7 T3ch2<br>#define enc2 0 //pc8 T3ch3<br><br>void encod(unsigned char co){<br> if (co=='I') { //inicializace<br> GPIOC_MODER &= 0xfffc3fff;<br> GPIOC_MODER |= 0x00028000;<br> GPIOC_AFRH |= 0x00000002;<br> GPIOC_AFRL |= 0x20000000;<br> GPIOC_OSPEEDR |=0x00028000;<br> RCC_APB1ENR |= 0x2; //tim3 168/4 42MHz<br> TIM3_CR1 = 0x81; <br> TIM3_CCMR1_Output = 0x7000; <br> TIM3_CCMR2_Output = 0x0070; <br> TIM3_CCER = 0x0110; <br> TIM3_CNT = 0;<br> TIM3_PSC = 0;<br> TIM3_ARR = 20000;<br> TIM3_CCR2 = 10000;<br> TIM3_CCR3 = 10000;<br> TIM3_CR1 = 0x81; //zisk ad603 pwm1 ch1<br> }<br><br> if (co=='P') { //nastaveni<br><br> if (laserA>18000) pwmx=18000; else pwmx=18000 - laserA;<br> TIM1_CCR2 = pwmx;<br> if (laserB>18000) pwmx=18000; else pwmx=18000 - laserB;<br> TIM1_CCR3 = pwmx;<br> }<br> }<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>mam tady jeste priklad pro stm32f427 - <o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>//#define laspwm 0x200 //d14 T4ch3<br>//#define pwina // d12 T4ch1 //zisk<br>//#define pwin // d13 T4ch2<o:p></o:p></p></div><div><p class=MsoNormal>unsigned int laseron ;<br>void laser(unsigned char co)<br>{<br>signed int laspoz;<br>switch (co) {<br> case 'I':<br> GPIOD_MODER &= 0xc0FFFFFF;<br> GPIOD_MODER |= 0x2a000000;<br> GPIOD_AFRH |= 0x02220000;<br> RCC_APB1ENR |= 0x4;<br> TIM4_CR1 = 0x1;<br> TIM4_CCMR2_Output = 0x70;<br> TIM4_CCMR1_Output = 0x7070;<br> TIM4_CCER = 0x0111; //11<br> TIM4_CNT = 0;<br> TIM4_PSC = 10;<br> TIM4_ARR = 256;<br> TIM4_CCR3 = 255;<br> TIM4_CR1 = 0x1; //zisk ad603 pwm1 ch1 unsigned int lasset,lasproud,maxlaser;<br> break;<br> case 'P':<br> TIM4_CCR3 = laserproud;<o:p></o:p></p></div><div><p class=MsoNormal> TIM4_CCR2 = zisk;<br> TIM4_CCR1 = ziska;<br> break;<br> }<br>}<br><br>fanda<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal>Dne 29. 11. 2020 v 11:15 Pavel Hudecek napsal(a):<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Dobrý den všem,<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Trápím se tady s STM32F030K6T6, k PC připojeno přes STM32F0308 discovery, Cube IDE.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>1. Jak udělat, aby program běžel i po disconnect?<o:p></o:p></p><p class=MsoNormal>2. Nedaří se mi zprovoznit PWM. Byla by nějaká ukázka, nejlépe pro TIM3?<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:468.0pt;margin-bottom:0cm;margin-left:324.0pt;margin-bottom:.0001pt'> <o:p></o:p></p></blockquote></blockquote></blockquote><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>