<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=5001&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-05T20:10:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=5001&amp;mode</id>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2013-12-05T20:10:10+01:00</updated>
<published>2013-12-05T20:10:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59823#p59823</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59823#p59823"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59823#p59823"><![CDATA[
Kontynuując wątek timerów...<br /><br />[syntax=c]void TIM2_Config(void){<br />TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;<br />TIM_OCInitTypeDef  TIM_OCInitStructure;<br />/* TIM1 Periph clock enable */<br />RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);<br /><br />/* Time base configuration 10kHz, 0,1ms*10000 = 1s   25us */<br />TIM_TimeBaseStructInit(&amp;TIM_TimeBaseStructure);<br />TIM_TimeBaseStructure.TIM_Period = 250000; //<br />TIM_TimeBaseStructure.TIM_Prescaler = ( (SystemCoreClock / 2) / 1000000) - 1;<br />TIM_TimeBaseStructure.TIM_ClockDivision = 0; ///<br />TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;<br />TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;<br /><br />// CH1<br />TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;<br />TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />TIM_OCInitStructure.TIM_Pulse = 25; // 1s<br />TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;<br /><br />TIM_TimeBaseInit(TIM2, &amp;TIM_TimeBaseStructure);<br />TIM_OC3Init(TIM2, &amp;TIM_OCInitStructure);<br />TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Disable);<br />TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);<br />TIM_Cmd(TIM2, ENABLE);<br /><br />// Włączenie przerwania od porównania w kanale 1<br />TIM_ITConfig(TIM2, TIM_IT_CC3, ENABLE);<br />}<br />void TIM2_Down_IRQHandler(void){<br />if( TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET ){<br />// Czyszczenie flagi przerwania<br />TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);<br />GPIO_WriteBit( GPIOB, GPIO_Pin_10, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_10) ) );<br />}<br />}[/syntax] <br /><br />Mam ustawiony TIM2 na zliczanie w dół. Potrzebuję odliczyć czas, gdzie przerwaniem będzie odpowiednia wartość na przetworniku ADC, więc pewnie będę musiał to jeszcze jakoś zmodyfikować. No, ale jak odczytać wartość na której timer przestał zliczać? Chyba, że źle to kombinuje?<br /><br />// edit<br /><br />Próbowałem odczytać wartość licznika funkcją<br />[syntax=c]TIM_GetCounter(TIM2);[/syntax]<br /><br />No i chyba otrzymuję to czego potrzebuję (sprawdziłem w trybie krokowym), tylko jest mały problem. Przy tych ustawieniach timer liczy bez przerwy, więc nie wiem ile razy doszedł do maksymalnej wartości. W jaki sposób go zatrzymać, aby odliczał jeden raz? Co prawda przy odpowiednim ustawieniu częstotliwości nie będzie mnie interesowało ile razy będzie liczył od nowa bo zmieszczę się w 1 cyklu, ale w fazie testowej chciał bym widzieć że jest max i coś trzeba poprawić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 5 gru 2013, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-03T23:31:15+01:00</updated>
<published>2013-12-03T23:31:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59575#p59575</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59575#p59575"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59575#p59575"><![CDATA[
nio ale załapałeś jak to liczyć .....<br />i o to chodziło<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 gru 2013, o 23:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2013-12-03T22:49:11+01:00</updated>
<published>2013-12-03T22:49:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59565#p59565</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59565#p59565"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59565#p59565"><![CDATA[
Ok <br />Rozumiem, że dokładnie tak, oznacza 21kHz. No i właśnie o to mi chodziło.<br /><br />Czyli<br />( (SystemCoreClock /2) / 40000000) - 1  dostanę 40kHz<br /><br />No a Period określa mi do jakiej wartości zliczy. Więc dla Twojego przykładu:<br />Częstotliwość 21kHz<br />Czas trwania jednego okresu ok 476us (T1)<br />Więc gdybym ustawił wypełnienie na 10 to stan wysoki będzie trwał 10 * (476us/665) = 7us<br /><br />Dobrze kombinuje?<br /><br />// edit<br /><br />Rozpędziłem się z zerami. Miało być<br />( (SystemCoreClock /2) / 40000) - 1<br /><br />więc u Ciebie w MHz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 3 gru 2013, o 22:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-03T22:38:11+01:00</updated>
<published>2013-12-03T22:38:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59560#p59560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59560#p59560"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59560#p59560"><![CDATA[
dokładnie tak<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 gru 2013, o 22:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2013-12-03T22:29:19+01:00</updated>
<published>2013-12-03T22:29:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59557#p59557</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59557#p59557"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59557#p59557"><![CDATA[
No dobra, Preskaler jest ustawiony na 168MHz / 2 / 21kHz czyli = 4000<br /><br />Tylko tak jak wcześniej pisałem. Żebyśmy się dobrze zrozumieli.<br /><br /><a href="http://www.fotosik.pl/pokaz_obrazek/a62a118384f3376d.html"  class="postlink"><img src="http://images64.fotosik.pl/446/a62a118384f3376dm.jpg" alt="Obrazek" /></a><br /><br />W Twoim przykładzie T1 to jest 21kHz, czy 21kHz/665? Mi tylko o to chodzi. <br />Przeglądałem sporo przykładów i próbowałem przeliczać ręcznie, ale nie do końca to &quot;czuję&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 3 gru 2013, o 22:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-03T22:15:14+01:00</updated>
<published>2013-12-03T22:15:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59555#p59555</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59555#p59555"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59555#p59555"><![CDATA[
popatrz w przykładzie w na wiersz 35 .....<br /><br />teraz już chyba widzisz , a łatwiej było na żywym przykładzie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 gru 2013, o 22:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2013-12-03T22:12:42+01:00</updated>
<published>2013-12-03T22:12:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59553#p59553</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59553#p59553"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59553#p59553"><![CDATA[
Dzięki za przykład, tylko mi chodzi o samo obliczenie częstotliwości. Czy to co napisałem jest dobrze, czy źle to rozumiem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 3 gru 2013, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-03T08:30:34+01:00</updated>
<published>2013-12-03T08:30:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59445#p59445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59445#p59445"/>
<title type="html"><![CDATA[Re: [STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59445#p59445"><![CDATA[
[syntax=c]int main(void)<br />{<br />   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;<br />   TIM_OCInitTypeDef  TIM_OCInitStructure;<br /><br />  // Konfiguracja TIMERA<br />  GPIO_InitTypeDef GPIO_InitStructure;<br /><br /><br />  // Włączenie zegara dla TIM4<br />  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);<br /><br /><br />  // DIODA<br />  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);<br />  <br />  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;<br />  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;<br />  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;<br />  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;<br />  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;<br />  GPIO_Init(GPIOD, &amp;GPIO_InitStructure);<br /><br /><br />  GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_TIM4);<br />  GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_TIM4);<br />  GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_TIM4);<br />  GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_TIM4);<br /><br /><br />// Ustawienia PWM <br /><br /><br />// Preskaler<br />  PrescalerValue = (uint16_t) ((SystemCoreClock /2) / 21000000) - 1;<br /><br />// Ustawienia bazowe Timera<br /><br />  TIM_TimeBaseStructure.TIM_Period = 665;<br />  TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;<br />  TIM_TimeBaseStructure.TIM_ClockDivision = 0;<br />  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;<br /><br /><br />  TIM_TimeBaseInit(TIM4, &amp;TIM_TimeBaseStructure);<br /><br /><br />// PWM1 Mode  ustawienie dla  Kanału 1<br />  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;<br />  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />  TIM_OCInitStructure.TIM_Pulse = 0;<br />  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;<br /><br /><br />  TIM_OC1Init(TIM4, &amp;TIM_OCInitStructure);<br /><br /><br />  TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);<br /><br /><br /> // PWM1 Mode  ustawienie dla  Kanału 2<br />  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />  TIM_OCInitStructure.TIM_Pulse = 0;<br /><br /><br />  TIM_OC2Init(TIM4, &amp;TIM_OCInitStructure);<br /><br /><br />  TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);<br /><br /><br />  // PWM1 Mode  ustawienie dla  Kanału 3<br />  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />  TIM_OCInitStructure.TIM_Pulse = 0;<br /><br /><br />  TIM_OC3Init(TIM4, &amp;TIM_OCInitStructure);<br /><br /><br />  TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);<br /><br />  // PWM1 Mode  ustawienie dla  Kanału 4<br /> <br />  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />  TIM_OCInitStructure.TIM_Pulse = 0;<br /><br /><br />  TIM_OC4Init(TIM4, &amp;TIM_OCInitStructure);<br /><br /><br />  TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);<br /><br /><br />  TIM_ARRPreloadConfig(TIM4, ENABLE);<br /><br /><br />  // TIM4 włączenie ................... <br />  TIM_Cmd(TIM4, ENABLE);<br /><br />  // -- DEMO ---------------------------------------------------------------------<br /><br />      int jasnosc = 0;<br /><br /><br />  while(1)  <br />    {<br />          jasnosc++;<br /><br />// Ustawienia poziomów jasnosci<br />          TIM4-&gt;CCR3 = 333 - (jasnosc + 0) % 333;<br />          TIM4-&gt;CCR4 = 333 - (jasnosc + 166/2) % 333; <br />          TIM4-&gt;CCR1 = 333 - (jasnosc + 333/2) % 333; <br />          TIM4-&gt;CCR2 = 333 - (jasnosc + 499/2) % 333; <br /><br />// ------- DELAYE<br />          for(i=0;i&lt;10000;i++); <br />          for(i=0;i&lt;10000;i++);  <br />          for(i=0;i&lt;10000;i++);  <br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 3 gru 2013, o 08:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2013-12-02T23:36:48+01:00</updated>
<published>2013-12-02T23:36:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59435#p59435</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59435#p59435"/>
<title type="html"><![CDATA[[STM32F4] PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5001&amp;p=59435#p59435"><![CDATA[
Witam, mam nadzieję że piszę w dobrym dziale (chyba jedyny o ARM?)<br /><br />Mam problem z PWM. Przeglądałem już nie jeden przykład, ale jakoś nie mogę poprawnie obliczyć częstotliwości (przynajmniej tak mi się wydaje).<br /><br /><br />[syntax=c]void RCC_Config(void){<br />// Zmienna opisująca rezultat uruchomienie HSE<br />ErrorStatus HSEStartUpStatus;<br /><br />// Reset ustawień RCC<br />RCC_DeInit();<br /><br />// Włącz HSE<br />RCC_HSEConfig(RCC_HSE_ON);<br /><br />// Odczekaj na gotowoć HSE<br />HSEStartUpStatus = RCC_WaitForHSEStartUp();<br /><br />if( HSEStartUpStatus == SUCCESS ){<br />// Ustaw zwłokę dla pamięci FLASH<br />// Zależnie od taktowania rdzenia<br />// Voltage range (2,7 - 3,6V)<br />//            @arg FLASH_Latency_0: FLASH Zero Latency cycle 0 - 30MHz<br />  //            @arg FLASH_Latency_1: FLASH One Latency cycle    30 - 60MHz<br />//            @arg FLASH_Latency_2: FLASH Two Latency cycles   60 - 90MHz<br />//            @arg FLASH_Latency_3: FLASH Three Latency cycles90 - 120MHz<br />//            @arg FLASH_Latency_4: FLASH Four Latency cycles 120 - 150MHz<br />//            @arg FLASH_Latency_5: FLASH Five Latency cycles 120 - 168MHz<br />//            @arg FLASH_Latency_6: FLASH Six Latency cyclesNA<br />//            @arg FLASH_Latency_7: FLASH Seven Latency cyclesNA<br />FLASH_PrefetchBufferCmd(ENABLE);<br />FLASH_SetLatency(FLASH_Latency_5);<br /><br />// HCLK=SYSCLK<br />RCC_HCLKConfig(RCC_SYSCLK_Div1);<br /><br />// PCLK2 = HCLK/2 MAX 84MHz<br />RCC_PCLK2Config(RCC_HCLK_Div2);<br /><br />// PCLK1 = HCLK/4MAX42MHz<br />RCC_PCLK1Config(RCC_HCLK_Div4);<br /><br />// Ustaw PLLCLK PLLM = 8, PLLN = 336, PLLP = 2, PLLQ = 7<br />// PLLCLK = (HSE * (PLLN/PLLM))/PLLP  = 168MHz (MAX 168MHz)<br />// USB OTG FS, SDIO, RNG clock output = PLLCLK / PLLQ  (MAX 48MHz)<br />RCC_PLLConfig(RCC_PLLSource_HSE, 8, 336, 2, 7);<br /><br />// Wlacz PLL<br />RCC_PLLCmd(ENABLE);<br /><br />// Odczekaj na poprawne uruchomienie PLL<br />while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET );<br /><br />// Ustaw PLL jako źródło sygnału zegarowego<br />RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);<br /><br />// Odczekaj az PLL będzie sygnałem zegarowym systemu<br />// 0x00: HSI used as system clock<br />        // 0x04: HSE used as system clock<br />        // 0x08: PLL used as system clock<br />while( RCC_GetSYSCLKSource() != 0x08 );<br /><br />// Konfiguracja peryferiów (jezeli potrzebne)<br /><br />// Włącz taktowanie portów<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);<br />RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);<br /><br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3, ENABLE);<br />}<br />}<br />void TIM4_Config(void){<br />  TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;<br />  TIM_OCInitTypeDef  TIM_OCInitStructure;<br /><br />  /* TIM4 Periph clock enable */<br />  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);<br /><br />  /* Time base configuration */<br />  TIM_TimeBaseStructInit(&amp;TIM_TimeBaseStructure);<br />  TIM_TimeBaseStructure.TIM_Period = PeriodValue;<br />  TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;<br />  TIM_TimeBaseStructure.TIM_ClockDivision = 0;<br />  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;<br /><br />  TIM_TimeBaseInit(TIM4, &amp;TIM_TimeBaseStructure);<br /><br />  /* PWM1 Mode configuration: Channel2 */<br />  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;<br />  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;<br />  TIM_OCInitStructure.TIM_Pulse = CCR2_Val;<br />  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;<br /><br />  TIM_OC1Init(TIM4, &amp;TIM_OCInitStructure);<br />  TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);<br />  TIM_ARRPreloadConfig(TIM4, ENABLE);<br /><br />  /* TIM4 enable counter */<br />  TIM_Cmd(TIM4, ENABLE);<br />}[/syntax]<br /><br />No i teraz pytanie czy dobrze liczę?<br /><br />Prescaler = ( (SystemCoreClock / 2)  /  40000) - 1 = ( (168MHz/2) / 40kHz ) - 1 = 2100-1<br /><br />Czyli prescaler ustawiony na 2099 daje mi częstotliwość timera 40kHz? Czyli już teraz otrzymuje okres PWM 40kHz?<br /><br />Czy okres PWM ustawiam dopiero w Period i np. Period = (10 - 1) da mi okres 4kHz?<br /><br />Na prawdę już zgłupiałem i prosze o pomoc.<br /><br />Pozdrawiam<br />Karol<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 2 gru 2013, o 23:36</p><hr />
]]></content>
</entry>
</feed>