<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; cs4392]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=320&amp;type=atom" />
	<updated>2021-05-14T07:27:21Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=320</id>
		<entry>
			<title type="html"><![CDATA[cs4392]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=3541#p3541" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#define CPU_F   16000000 // Clock Speed
#define BAUD    9600 // USART Speed

#define CS  2
#define CLK 3
#define DIN 4
#define RST 5

void setup(){
  USART_Init(CPU_F/16/BAUD-1); 
  DDRD |= (1&lt;&lt;CS)|(1&lt;&lt;CLK)|(1&lt;&lt;DIN)|(1&lt;&lt;RST);
  PORTD &amp;= ~(1&lt;&lt;DIN)|(1&lt;&lt;CS)|(1&lt;&lt;CLK)|(1&lt;&lt;RST);
  delay(500);
  PORTD |=(1&lt;&lt;RST);del();
  Write(0x05,0b00110000);
  
  Write(0x01,0b10100010);
  Write(0x02,0b01001001);
  Write(0x03,0b00000000);
  Write(0x04,0b00000000);
  Write(0x06,0b00000000);
  del();
  Write(0x05,0b00100000);
  }

void loop(){

  }

void Write(byte reg, byte din){  // WRITE_REG 
  PORTD &amp;=~(1&lt;&lt;CS);del();
     byte addr = 0b00100000;
     for(char i = 7; i &gt;= 0; i--){
        if(((addr &gt;&gt; i) &amp; 0x01)==1){PORTD |=(1&lt;&lt;DIN);}else{PORTD &amp;=~(1&lt;&lt;DIN);}
        PORTD |=(1&lt;&lt;CLK);del();PORTD &amp;=~(1&lt;&lt;CLK);del();
        }
     for(char i = 7; i &gt;= 0; i--){
        if(((reg &gt;&gt; i) &amp; 0x01)==1){PORTD |=(1&lt;&lt;DIN);}else{PORTD &amp;=~(1&lt;&lt;DIN);}
        PORTD |=(1&lt;&lt;CLK);del();PORTD &amp;=~(1&lt;&lt;CLK);del();
        }
     for(char i = 7; i &gt;= 0; i--){
        if(((din &gt;&gt; i) &amp; 0x01)==1){PORTD |=(1&lt;&lt;DIN);}else{PORTD &amp;=~(1&lt;&lt;DIN);}
        PORTD |=(1&lt;&lt;CLK);del();PORTD &amp;=~(1&lt;&lt;CLK);del();
        }
        PORTD |=(1&lt;&lt;CS);
        PORTD &amp;=~(1&lt;&lt;DIN);
        del();
  } 


void del(){delayMicroseconds(10);}  

void USART_Init( unsigned int ubrr ){
  UBRR0H = (unsigned char)(ubrr&gt;&gt;8);
  UBRR0L = (unsigned char)ubrr;
  UCSR0B = (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);
  UCSR0C = (1&lt;&lt;USBS0)|(3&lt;&lt;UCSZ00);
}  

void USART_String(char *data){
  for(int i=0;i&lt;strlen(data);i++){
  while(!( UCSR0A &amp; (1 &lt;&lt; UDRE0 )));
  UDR0 = data[i];}
}

void USART_int(int to_int){
  String stringVar = String(to_int, DEC);
  char charVar[sizeof(stringVar)];
  stringVar.toCharArray(charVar, sizeof(charVar));
  USART_String(charVar);}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-05-14T07:27:21Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=3541#p3541</id>
		</entry>
</feed>
