<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; TIMER > OUTPUT COMPARE MODE]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=426</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=426&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «TIMER > OUTPUT COMPARE MODE».]]></description>
		<lastBuildDate>Tue, 12 Oct 2021 17:55:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[TIMER > OUTPUT COMPARE MODE]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=4779#p4779</link>
			<description><![CDATA[<p>Сравнение вывода (output compare)<br />В этом режиме выбранный канал таймера будет подключен к соответствующему выводу и будет изменять его (вывода) состояние каждый раз, когда счётчик таймера досчитает до значения регистра TIM_CCRx.</p><div class="codebox"><pre><code>void setup() {
  GPIOA-&gt;regs-&gt;CRH |= 0xB0000000; // OUTPUT PA15
  RCC_BASE-&gt;APB1ENR |= RCC_APB1ENR_TIM2EN;     // TIM2EN &gt; включить тактирование TIM_2 (APB1 ограничен 36 МГц | CK_PSC = 36 MHz)
  RCC_BASE-&gt;APB2ENR|= RCC_APB2ENR_IOPAEN; // включить тактирование PORT_A
  TIMER2_BASE-&gt;CR1 &amp;= ~TIMER_CR1_CEN;          // TIMx_CR1_CEN &gt; стоп таймер
  AFIO_BASE-&gt;MAPR = 0x02000300; //  SWJ _CFG [2:0] = &quot;010&quot; | TIM2_REMAP = PA15 = TIM2_REMAP[1:0] = &quot;11&quot; &gt;&gt;&gt; PA15 активен как выход, канал СН1
  TIMER2_BASE-&gt;PSC = 0; // регистр предделителя 16bit
  TIMER2_BASE-&gt;ARR = 1; // регистр переполнения 16bit
  TIMER2_BASE-&gt;CCR1  = 1;//регистр сравнения 16 bit
  TIMER2_BASE-&gt;CCMR1 = 0x00000038;// OC1M[2:0]=&quot;011&quot; | OC1PE[3]=&quot;1&quot; 
   // F(CH1) = CK_PSC/((PSC+1)*(ARR+1))   |    ARR &gt;= CCR1
   // F(CH1) = 36 000 000 / ((0+1)*(1+1)) = 18 000 000 MHz
  TIMER2_BASE-&gt;CCER |= TIMER_CCER_CC1E; // КАНАЛ БЛОКА СРАВНЕНИЯ
  TIMER2_BASE-&gt;CR1 |= TIMER_CR1_CEN;           // TIMx_CR1_CEN &gt; старт таймер
}

void loop() {}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 12 Oct 2021 17:55:33 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=4779#p4779</guid>
		</item>
	</channel>
</rss>
