<?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; CS3310 - Stereo Digital Volume Control]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=162</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=162&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CS3310 - Stereo Digital Volume Control».]]></description>
		<lastBuildDate>Wed, 14 May 2025 00:09:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11822#p11822</link>
			<description><![CDATA[<p>Не проверял, но должно работать для PGA4311</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 14 May 2025 00:09:19 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11822#p11822</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11821#p11821</link>
			<description><![CDATA[<p>CS3310.h</p><div class="codebox"><pre><code>//  Alexander Liman
//  liman324@yandex.ru
//  rcl-radio.ru

#ifndef  CS3310_H
#define  CS3310_H

#include &lt;Arduino.h&gt;


class  CS3310
  {
    public:

  CS3310(uint8_t, uint8_t, uint8_t);
  void setVol(byte ch1, byte ch2, byte ch3, byte ch4);
  
    private:

  uint8_t CS;
  uint8_t SCLK;
  uint8_t SDATAI;

  };
#endif</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 14 May 2025 00:08:36 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11821#p11821</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11820#p11820</link>
			<description><![CDATA[<p>CS3310.cpp</p><div class="codebox"><pre><code>  
#include &lt;CS3310.h&gt;

CS3310::CS3310(uint8_t cs, uint8_t sclk, uint8_t sdatai){
            CS = cs;
            SCLK = sclk;
            SDATAI = sdatai;
      pinMode(CS,OUTPUT);
      pinMode(SCLK,OUTPUT);
      pinMode(SDATAI,OUTPUT);
}

void CS3310::setVol(byte r, byte l){
     // start 
     digitalWrite(CS,HIGH);
     digitalWrite(SCLK,HIGH);
     delay(2);
     digitalWrite(CS,LOW);

   //  ch1
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (ch1 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }

     //  ch2
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (ch2 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }
     //  ch3
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (ch3 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }

     //  ch4
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (ch4 &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }
   // end
   digitalWrite(CS,HIGH);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 14 May 2025 00:04:54 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11820#p11820</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11819#p11819</link>
			<description><![CDATA[<div class="quotebox"><cite>liman324 пишет:</cite><blockquote><p>Все можно сделать.....</p></blockquote></div><p>Приветствую! Подскажите плииз, я правильно понимаю что эта библиотека может&nbsp; использоваться для всех регуляторов с похожим протоколом управления ? в частности PGA4311 ? <br />достаточно только в <br />void setVol(byte r, byte l);<br />объявить не 2, а 4 канала ?<br />void setVol(byte ch4, byte ch3, byte ch2, byte ch1);&nbsp; = норм ? <br />а может вообще плясок с библиотекой не устраивать ? объявить пины и к ним переделанный на 4 канала CS3310.cpp ???<br />или&nbsp; не получится ?</p>]]></description>
			<author><![CDATA[null@example.com (4gam)]]></author>
			<pubDate>Tue, 13 May 2025 19:27:35 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11819#p11819</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1765#p1765</link>
			<description><![CDATA[<p>Еще раз убедился на практике,что полный диапазон регулировки нужно ограничивать , в ряде случаев приводит к подвозбуду оконечников и подгоранию резистора в цобеле,когда кто то сдуру загонит регулировку в +31дб,даже при отсутствии сигнала.</p>]]></description>
			<author><![CDATA[null@example.com (dmitry287)]]></author>
			<pubDate>Sun, 14 Jun 2020 09:16:20 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1765#p1765</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1627#p1627</link>
			<description><![CDATA[<p>Понял , спасибо за ответ .</p>]]></description>
			<author><![CDATA[null@example.com (folks)]]></author>
			<pubDate>Sat, 23 May 2020 08:43:03 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1627#p1627</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1626#p1626</link>
			<description><![CDATA[<p>Все можно сделать, но пока на подобные проекты с FTF экранами интересных предложений мне не поступало.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 23 May 2020 08:27:15 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1626#p1626</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1625#p1625</link>
			<description><![CDATA[<p>Ну здесь на мой взгляд как то слишком много информации сразу выведено . Это чисто мое мнение , это как будто панель управления станка ЧПУ.<span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/bc7bf22400528a271fff16aeaba277f7.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/bc7bf22400528a271fff16aeaba277f7.jpg" /></span>&nbsp; Вот здесь как то более гармонично смотрится .</p>]]></description>
			<author><![CDATA[null@example.com (folks)]]></author>
			<pubDate>Sat, 23 May 2020 08:21:52 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1625#p1625</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1624#p1624</link>
			<description><![CDATA[<p>Я делал проекты на ftf экранах для аудиопроцессоров с большим набором параметров, но все же на LCD1602 больше проектов повторяют, да и дешевле.<br /><span class="postimg"><img src="http://rcl-radio.ru/wp-content/uploads/2019/07/623786862187.png" alt="http://rcl-radio.ru/wp-content/uploads/2019/07/623786862187.png" /></span><br /><span class="postimg"><img src="http://rcl-radio.ru/wp-content/uploads/2019/04/7523965782368.png" alt="http://rcl-radio.ru/wp-content/uploads/2019/04/7523965782368.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 23 May 2020 08:16:31 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1624#p1624</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1623#p1623</link>
			<description><![CDATA[<p>Я заметил , что вы как то любите дисплеи 1602 . Как то вы не любите цветные дисплеи , хотя на них все очень здорово смотрится .<span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/615f74746a4d80ec6cbfd23b2d883c5b.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/615f74746a4d80ec6cbfd23b2d883c5b.jpg" /></span> <span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/bf91353c2f6831357dbd91b20002ef71.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/bf91353c2f6831357dbd91b20002ef71.jpg" /></span> <span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/b8f676a8232f93f9454a8fe75f62b70d.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/b8f676a8232f93f9454a8fe75f62b70d.jpg" /></span></p>]]></description>
			<author><![CDATA[null@example.com (folks)]]></author>
			<pubDate>Sat, 23 May 2020 08:12:10 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1623#p1623</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1622#p1622</link>
			<description><![CDATA[<p>Эта функция ограничивает диапазон регулировки:</p><p>void vol_func(){if(vol&lt;0){vol=0;}if(vol&gt;255){vol=255;}</p><p>например:</p><p>void vol_func(){if(vol&lt;20){vol=20;}if(vol&gt;200){vol=200;}</p><p>Диапазон регулировки будет не 255 шагов а 180, можно и меньше сделать</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 23 May 2020 04:26:01 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1622#p1622</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1621#p1621</link>
			<description><![CDATA[<p>Интересная тема...Делал РГ на этой микре,хорошая вещь,но диапазон регулировки громкости в большинстве случаев сильно избыточен,неплохо бы иметь возможность ограничивать его,как сверху,так и снизу,или через меню настроек или перед прошивкой какие то константы менять.</p>]]></description>
			<author><![CDATA[null@example.com (dmitry287)]]></author>
			<pubDate>Fri, 22 May 2020 20:48:35 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1621#p1621</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1575#p1575</link>
			<description><![CDATA[<p>mute</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;EEPROM.h&gt;
#include &lt;Encoder.h&gt;  // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include &lt;MsTimer2.h&gt; // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include &lt;CS3310.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt; //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
  Encoder myEnc(9, 8);//CLK, DT
  CS3310 cs(2,3,4);//CS,SCLK,SDATAI

  byte a1[8] = {0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
  byte a2[8] = {0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
  byte a3[8] = {0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000};  
  int vol,vol_d,z,z0,z1,vol_old;
  byte w,w1,mute;
  unsigned long times,oldPosition  = -999,newPosition;

void setup(){ 
  Wire.begin();Serial.begin(9600);
  lcd.init();lcd.backlight();
  MsTimer2::set(1, to_Timer);MsTimer2::start();
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  lcd.setCursor(0,0);lcd.print(&quot;     CS3310   &quot;);delay(3000);lcd.clear();// ЗАСТАВКА
  vol = EEPROM.read(0);
  pinMode(7,INPUT);
  audio();
  }

void loop(){
   if (newPosition != oldPosition&amp;&amp;mute==0){oldPosition = newPosition;
   vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio();Serial.print(vol*0.5-96,1);Serial.print(&quot; &quot;);Serial.println(vol);} 
   vol_d=map(vol,0,255,0,45);
   if(w1==1){
   for(z=0,z0=0,z1=0;z&lt;=vol_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(&quot;   &quot;);}}
   if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}w1=0;}

   if(digitalRead(7)==LOW&amp;&amp;mute==0){mute=1;vol_old=vol;vol=0;audio();lcd.clear();lcd.setCursor(0,0);lcd.print(&quot;      MUTE   &quot;);delay(300);}
   if(digitalRead(7)==LOW&amp;&amp;mute==1){mute=0;vol=vol_old;      audio();lcd.clear();w1=1;delay(300);}

   if(mute==0){  
     lcd.setCursor(0,0);lcd.print(&quot;VOLUME &quot;);
     if(vol*0.5-96&gt;=0){lcd.print(&quot;+&quot;);}
     lcd.print(vol*0.5-96,1);lcd.print(&quot; &quot;);
     lcd.setCursor(14,0);lcd.print(&quot;dB&quot;);}
//     delay(10);
   
 //////// EEPROM //////////////////////////////////////////////////
  if(millis()-times&gt;3000 &amp;&amp; w==1){EEPROM.update(0,vol);w=0;}
  } // LOOP

void audio(){
  cs.setVol(vol,vol);
  // byte 0  === mute
  // byte 1...255 === -95.5...+31.5 dB (step 0.5 dB)
  }
void to_Timer(){newPosition = myEnc.read()/4;}
void vol_func(){if(vol&lt;0){vol=0;}if(vol&gt;255){vol=255;}
  }  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 13 May 2020 09:21:22 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1575#p1575</guid>
		</item>
		<item>
			<title><![CDATA[Re: CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1574#p1574</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/60ef81cf6ff197690bfee2ecb84efb85.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/60ef81cf6ff197690bfee2ecb84efb85.png" /></span> </p><br /><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;EEPROM.h&gt;
#include &lt;Encoder.h&gt;  // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include &lt;MsTimer2.h&gt; // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include &lt;CS3310.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt; //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
  Encoder myEnc(9, 8);//CLK, DT
  CS3310 cs(2,3,4);//CS,SCLK,SDATAI

  byte a1[8] = {0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
  byte a2[8] = {0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
  byte a3[8] = {0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000};  
  int vol,vol_d,z,z0,z1;
  byte w,w1;
  unsigned long times,oldPosition  = -999,newPosition;

void setup(){ 
  Wire.begin();Serial.begin(9600);
  lcd.init();lcd.backlight();
  MsTimer2::set(1, to_Timer);MsTimer2::start();
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  lcd.setCursor(0,0);lcd.print(&quot;     CS3310   &quot;);delay(3000);lcd.clear();// ЗАСТАВКА
  vol = EEPROM.read(0);
  audio();
  }

void loop(){
  if (newPosition != oldPosition){oldPosition = newPosition;
   vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio();Serial.print(vol*0.5-96,1);Serial.print(&quot; &quot;);Serial.println(vol);} 
   vol_d=map(vol,0,255,0,45);
   if(w1==1){
   for(z=0,z0=0,z1=0;z&lt;=vol_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(&quot;   &quot;);}}
   if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}w1=0;}
     
     lcd.setCursor(0,0);lcd.print(&quot;VOLUME &quot;);
     if(vol*0.5-96&gt;=0){lcd.print(&quot;+&quot;);}
     lcd.print(vol*0.5-96,1);lcd.print(&quot; &quot;);
     lcd.setCursor(14,0);lcd.print(&quot;dB&quot;);
//     delay(10);
   
 //////// EEPROM //////////////////////////////////////////////////
  if(millis()-times&gt;3000 &amp;&amp; w==1){EEPROM.update(0,vol);w=0;}
  } // LOOP

void audio(){
  cs.setVol(vol,vol);
  // byte 0  === mute
  // byte 1...255 === -95.5...+31.5 dB (step 0.5 dB)
  }
void to_Timer(){newPosition = myEnc.read()/4;}
void vol_func(){if(vol&lt;0){vol=0;}if(vol&gt;255){vol=255;}
  }  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 13 May 2020 08:37:41 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1574#p1574</guid>
		</item>
		<item>
			<title><![CDATA[CS3310 - Stereo Digital Volume Control]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=1572#p1572</link>
			<description><![CDATA[<p><strong>Features</strong><br />Complete Digital Volume Control<br /> 2 Independent Channels<br />— Serial Control<br />— 0.5 dB Step Size<br />Wide Adjustable Range<br />— -95.5 dB Attenuation<br />— +31.5 dB Gain<br />Low Distortion &amp; Noise<br />— 0.001% THD+N<br />— 116 dB Dynamic Range<br />Noise Free Level Transitions<br />Channel-to-Channel Crosstalk Better Than 110 dB</p><p><span class="attention-yellow"></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/4e56bff41d83cacd0632e2a36f8782b5.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/4e56bff41d83cacd0632e2a36f8782b5.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/10751bef417c60d033677607035b79ab.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/10751bef417c60d033677607035b79ab.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/c41c65cf63314985570b7f83166cf8c7.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/c41c65cf63314985570b7f83166cf8c7.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/05/107e11d73cdbf6f5db20bf33e90f3e78.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/05/107e11d73cdbf6f5db20bf33e90f3e78.png" /></span> </p><p><span class="attention-yellow"></span> </p><br /><p>test.ino<br /></p><div class="codebox"><pre><code>#include &lt;CS3310.h&gt;

CS3310 cs(2,3,4);//CS,SCLK,SDATAI

void setup(){
  delay(100);
  audio();
  
  }

void loop(){}

void audio(){
  cs.setVol(200,200);
  // byte 0  === mute
  // byte 1...255 === -95.5...+31.5 dB (step 0.5 dB)
  }</code></pre></div><br /><p>CS3310.h<br /></p><div class="codebox"><pre><code>//  Alexander Liman
//  liman324@yandex.ru
//  rcl-radio.ru

#ifndef  CS3310_H
#define  CS3310_H

#include &lt;Arduino.h&gt;


class  CS3310
  {
    public:

  CS3310(uint8_t, uint8_t, uint8_t);
  void setVol(byte r, byte l);
  
    private:

  uint8_t CS;
  uint8_t SCLK;
  uint8_t SDATAI;

  };
#endif</code></pre></div><p>CS3310.cpp<br /></p><div class="codebox"><pre><code>#include &lt;CS3310.h&gt;

CS3310::CS3310(uint8_t cs, uint8_t sclk, uint8_t sdatai){
            CS = cs;
            SCLK = sclk;
            SDATAI = sdatai;
      pinMode(CS,OUTPUT);
      pinMode(SCLK,OUTPUT);
      pinMode(SDATAI,OUTPUT);
}

void CS3310::setVol(byte r, byte l){
     // start 
     digitalWrite(CS,HIGH);
     digitalWrite(SCLK,HIGH);
     delay(2);
     digitalWrite(CS,LOW);

     //  R
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (r &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }

     //  L
  for(int i = 7; i &gt;= 0; i--){
        digitalWrite(SCLK,LOW);//delay(1);
        digitalWrite(SDATAI, (l &gt;&gt; i) &amp; 0x01);delay(1);
        digitalWrite(SCLK,HIGH);delay(1);
  }
   // end
   digitalWrite(CS,HIGH);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 12 May 2020 16:07:16 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=1572#p1572</guid>
		</item>
	</channel>
</rss>
