Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie syntezą LM7001 z Arduino
#13
Kod:
#define DATA 7
#define CL 6
#define CE 5


uint16_t Fpom = 1;
int Sterowanie = 255 ; //25 kHz10100000


void setup() {
pinMode(DATA, OUTPUT);
pinMode(CL, OUTPUT);
pinMode(CE, OUTPUT);
synteza();

}


void loop() {

}


void synteza(){
  
digitalWrite(CE, HIGH);
for( uint8_t idx=0; idx<14; idx++ ) //wysyłanie 14 bitów częstotliwości
{
   if ( ( Fpom >> idx ) & 0x0001 )
   {
      digitalWrite(DATA, HIGH);         // Pin DATA ustawiamy na 1
   } else
   {
      digitalWrite(DATA, LOW) ;         // Pin DATA ustawiamy na 0
   }
   zegarek(); // Generujemy impuls na linii CL
}
    digitalWrite(DATA, LOW); //wysłanie T0
    zegarek();
    digitalWrite(DATA, LOW); //wysłanie T1
    zegarek();
    
for( uint8_t idy=0; idy<8; idy++ ) //wysyłanie 14 bitów częstotliwości
{
   if ( ( Sterowanie >> idy ) & 0x01 )
   {
      digitalWrite(DATA, HIGH);        
   } else
   {
      digitalWrite(DATA, LOW) ;        
   }
   zegarek();
   digitalWrite(DATA, LOW);
}
  
   digitalWrite(CE, LOW);
  
  
}


void zegarek(){
  digitalWrite(CL, LOW);
  delay(10);
  digitalWrite(CL, HIGH);
  delay(10);
  digitalWrite(CL, LOW);
  delay(10);
}

I teraz problem w drugą stronę. Sterowanie przechodzi tylko jako postać dziesiętna korzystając z tej pętelki.
Pozdrawiam, Artur

Odpowiedz


Wiadomości w tym wątku
Sterowanie syntezą LM7001 z Arduino - przez SP7EZG - 22-02-2017, 8:08

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości