<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; ENCODER]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=196&amp;type=atom" />
	<updated>2020-08-24T11:08:48Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=196</id>
		<entry>
			<title type="html"><![CDATA[Re: ENCODER]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2043#p2043" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-08-24T11:08:48Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2043#p2043</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: ENCODER]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2042#p2042" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-08-24T09:16:48Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2042#p2042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[ENCODER]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2033#p2033" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-08-20T00:16:37Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2033#p2033</id>
		</entry>
</feed>
