<?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; Заменить SAMPLES на  j]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=271</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=271&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Заменить SAMPLES на  j».]]></description>
		<lastBuildDate>Sun, 07 Feb 2021 08:01:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Заменить SAMPLES на  j]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3047#p3047</link>
			<description><![CDATA[<p>Частоту генератора можно менять меняя число 88, нада заменить&nbsp; 88 на j которое меняется кнопками.</p><div class="codebox"><pre><code>#include &quot;LiquidCrystal.h&quot;
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);

///////////////////////////
int j;
#define SAMPLES 88
///////////////////////////

#include &lt;libmaple/dma.h&gt;

dma_tube_config dma_cfg;

int flag1 = 0;
int out1 = PB7;
int val1[SAMPLES];

int amp = 50;
int cnt = 0;
int time_track = 0;
float stp = 6.2831 / SAMPLES;
//float stp = 7.8539/SAMPLES;
int ret = 17;

timer_dev *dev1 = PIN_MAP[out1].timer_device;

uint8 cc_channel1 = PIN_MAP[out1].timer_channel;


void fun()
{
  flag1++;
}

void timer_conf()
{

  timer_dma_set_base_addr(dev1, TIMER_DMA_BASE_CCR2);
  timer_dma_set_burst_len(dev1, 1);
  timer_dma_enable_req(dev1, cc_channel1);
  timer_set_reload(dev1, 102);
  timer_set_prescaler(dev1, 0);

}

void dma_conf()
{
  dma_init(DMA1);
  /* T4C2 DMA C4 */
  dma_cfg.tube_dst = &amp;(dev1-&gt;regs.gen-&gt;DMAR);
  dma_cfg.tube_dst_size = DMA_SIZE_32BITS;
  dma_cfg.tube_src = val1;
  dma_cfg.tube_src_size = DMA_SIZE_32BITS;

  dma_cfg.tube_nr_xfers = SAMPLES;
  dma_cfg.tube_flags = DMA_CFG_SRC_INC | DMA_CFG_CIRC | DMA_CFG_CMPLT_IE;

  dma_cfg.tube_req_src = DMA_REQ_SRC_TIM4_CH2;
  dma_cfg.target_data = 0;

  ret = dma_tube_cfg(DMA1, DMA_CH4, &amp;dma_cfg);

}

void dma_start()
{
  dma_attach_interrupt(DMA1, DMA_CH4, fun);

  dma_enable(DMA1, DMA_CH4);
  timer_resume(dev1);


  dma_enable(DMA1, DMA_CH2);//
  //  timer_resume(dev2);
}

void init_wave()
{
  int i;
  for (i = 0; i &lt; SAMPLES; i++)
  {
    val1[i] = 50 + amp * sin(stp * i);

  }
}


void setup() {


  lcd.begin(16, 2);

  int i;
  int j;

  pinMode(out1, PWM);
  pinMode(PB13, INPUT_PULLDOWN);
  pinMode(PB12, INPUT_PULLDOWN);


  timer_conf();
  dma_conf();
  dma_start();

  init_wave();
}

void loop()
{
  if (digitalRead(PB12) == HIGH)
    // if (digitalRead(PB6) == HIGH) // UP
  {
    if (j &lt; 200)
      // if (i &lt; 25)
    {
      j++;

    }
  }

  if (digitalRead(PB13) == HIGH)

  {
    if (j &gt; 0)
    {
      j--;

    }
  }
  lcd.setCursor(0, 1);
  lcd.print(&quot;j = &quot;);
  lcd.setCursor(4, 1);
  lcd.print(j);

  delay(100);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (galina)]]></author>
			<pubDate>Sun, 07 Feb 2021 08:01:28 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3047#p3047</guid>
		</item>
	</channel>
</rss>
