<?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; ENCODER]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=196</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=196&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «ENCODER».]]></description>
		<lastBuildDate>Mon, 24 Aug 2020 11:08:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: ENCODER]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2043#p2043</link>
			<description><![CDATA[<p>Библиотека - <span class="attention-yellow"></span> </p><br /><div class="codebox"><pre><code>#include &lt;ENC.h&gt;

int data_old;

ENC enc(8,9);

void setup(){
  Serial.begin(9600);
}

void loop(){
  if(enc.data(1) != data_old){
    data_old = enc.data(1);
    Serial.println(enc.data(1));
  }
}

ISR (TIMER2_COMPA_vect){enc.data(1);}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 24 Aug 2020 11:08:48 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2043#p2043</guid>
		</item>
		<item>
			<title><![CDATA[Re: ENCODER]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2042#p2042</link>
			<description><![CDATA[<div class="codebox"><pre><code>#define CLK 8
#define DT  9

bool enc_a,enc_b,enc_old_a;
int enc_data, enc_data_old;

void setup(){
  Serial.begin(9600);
  TCCR2B |= (1 &lt;&lt; WGM22)|(1 &lt;&lt; CS20)|(1 &lt;&lt; CS21); 
  TIMSK2 |= (1 &lt;&lt; OCIE2A); 
  OCR2A = 250; // 1 ms
  pinMode(CLK,INPUT);
  pinMode(DT,INPUT);
}

void loop(){
  if(enc(1) != enc_data_old){enc_data_old = enc(1);
  Serial.println(enc(1));
  }
  }

int enc(bool byte_s){
  enc_a = digitalRead(CLK); 
  _delay_us(500); 
  enc_b = digitalRead(DT);
  
   if((!enc_a) &amp;&amp; (enc_old_a)){
    if(enc_b) {enc_data++;}   
     else {enc_data--;}}   
    enc_old_a = enc_a;
 if(byte_s == 0){enc_data = 0;}
    return enc_data;
}

ISR (TIMER2_COMPA_vect){enc(1);}</code></pre></div><p>Без Serial<br />Скетч использует 1000 байт (3%) памяти устройства. Всего доступно 32256 байт.<br />Глобальные переменные используют 15 байт (0%) динамической памяти, оставляя 2033 байт для локальных переменных. Максимум: 2048 байт.</p><p>Пустой скетч 444 байт<br />Итого 556 байт</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 24 Aug 2020 09:16:48 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2042#p2042</guid>
		</item>
		<item>
			<title><![CDATA[ENCODER]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2033#p2033</link>
			<description><![CDATA[<div class="codebox"><pre><code>#define CLK 8
#define DT  9

bool enc_a,enc_b,enc_old_a;
int enc_data, enc_data_old;

void setup(){
  Serial.begin(9600);
  TCCR2B |= (1 &lt;&lt; WGM22)|(1 &lt;&lt; CS20)|(1 &lt;&lt; CS21); 
  TIMSK2 |= (1 &lt;&lt; OCIE2A); 
  OCR2A = 250; // 1 ms
}

void loop(){
  if(enc(1) != enc_data_old){enc_data_old = enc(1);
  Serial.println(enc(1));
  }
  }

int enc(bool byte_s){
  switch(CLK){
    case 2: enc_a = ((PIND &gt;&gt; 2) &amp; 1);break;
    case 3: enc_a = ((PIND &gt;&gt; 3) &amp; 1);break;
    case 4: enc_a = ((PIND &gt;&gt; 4) &amp; 1);break;
    case 5: enc_a = ((PIND &gt;&gt; 5) &amp; 1);break;
    case 6: enc_a = ((PIND &gt;&gt; 6) &amp; 1);break;
    case 7: enc_a = ((PIND &gt;&gt; 7) &amp; 1);break;
    case 8: enc_a = ((PINB &gt;&gt; 0) &amp; 1);break;
    case 9: enc_a = ((PINB &gt;&gt; 1) &amp; 1);break;
   case 10: enc_a = ((PINB &gt;&gt; 2) &amp; 1);break;
   case 11: enc_a = ((PINB &gt;&gt; 3) &amp; 1);break;
   case 12: enc_a = ((PINB &gt;&gt; 4) &amp; 1);break;
   case 13: enc_a = ((PINB &gt;&gt; 5) &amp; 1);break;}_delay_us(500);  
  switch(DT){
    case 2: enc_b = ((PIND &gt;&gt; 2) &amp; 1);break;
    case 3: enc_b = ((PIND &gt;&gt; 3) &amp; 1);break;
    case 4: enc_b = ((PIND &gt;&gt; 4) &amp; 1);break;
    case 5: enc_b = ((PIND &gt;&gt; 5) &amp; 1);break;
    case 6: enc_b = ((PIND &gt;&gt; 6) &amp; 1);break;
    case 7: enc_b = ((PIND &gt;&gt; 7) &amp; 1);break;
    case 8: enc_b = ((PINB &gt;&gt; 0) &amp; 1);break;
    case 9: enc_b = ((PINB &gt;&gt; 1) &amp; 1);break;
   case 10: enc_b = ((PINB &gt;&gt; 2) &amp; 1);break;
   case 11: enc_b = ((PINB &gt;&gt; 3) &amp; 1);break;
   case 12: enc_b = ((PINB &gt;&gt; 4) &amp; 1);break;
   case 13: enc_b = ((PINB &gt;&gt; 5) &amp; 1);break;}
   if((!enc_a) &amp;&amp; (enc_old_a)){
    if(enc_b) {enc_data++;}   
     else {enc_data--;}}   
    enc_old_a = enc_a;
 if(byte_s == 0){enc_data = 0;}
    return enc_data;
}

ISR (TIMER2_COMPA_vect){enc(1);}</code></pre></div><p>Без Serial<br />Скетч использует 650 байт (2%) памяти устройства. Всего доступно 32256 байт.<br />Глобальные переменные используют 15 байт (0%) динамической памяти, оставляя 2033 байт для локальных переменных. Максимум: 2048 байт.</p><p>Пустой скетч 444 байт</p><p>итого 206 байт</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Thu, 20 Aug 2020 00:16:37 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2033#p2033</guid>
		</item>
	</channel>
</rss>
