progetto finale

Dependencies:   TextLCD mbed

Fork of ProgettoAUC by Marco Vitone

Committer:
marcovitone
Date:
Mon Dec 05 11:59:24 2016 +0000
Revision:
7:c16d95c42907
Parent:
6:d333346124aa
versione finale

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alessio359 2:6b09752bd3b2 1 #include "mbed.h"
marcovitone 4:98e062cf962e 2 #include "TextLCD.h"
Alessio359 0:7b9184b3ceba 3
Alessio359 2:6b09752bd3b2 4 //TEA5767 example with STM32 nucleo
marcovitone 7:c16d95c42907 5 //Developed by Mazzella, Vitone, (un po')Tarallo
Alessio359 0:7b9184b3ceba 6
marcovitone 7:c16d95c42907 7 TextLCD lcd(D12, D11, D5, D4, D3, D2, TextLCD::LCD16x2);
Alessio359 0:7b9184b3ceba 8 I2C radio(D14, D15); //sda, sc1
marcovitone 3:4ce3bb78b1fc 9 AnalogIn trimmer(PA_0);// A0 ingresso analogico
Alessio359 0:7b9184b3ceba 10
Alessio359 5:a38af5651374 11
marcovitone 7:c16d95c42907 12
marcovitone 3:4ce3bb78b1fc 13 float frequenza;
marcovitone 4:98e062cf962e 14 unsigned int N,m1,m2;
Alessio359 5:a38af5651374 15 char config_t[5];
marcovitone 7:c16d95c42907 16
Alessio359 0:7b9184b3ceba 17
Alessio359 2:6b09752bd3b2 18 const int addr = 0xC0; //address for writing data, reading is C1
Alessio359 0:7b9184b3ceba 19
Alessio359 2:6b09752bd3b2 20 int main()
Alessio359 2:6b09752bd3b2 21 {
marcovitone 7:c16d95c42907 22 while (1) {
marcovitone 7:c16d95c42907 23 frequenza=(108-87.5)*trimmer.read()+87.5;
marcovitone 7:c16d95c42907 24 N=4*(frequenza*1e6+225000)/32768;
marcovitone 7:c16d95c42907 25 //a questo punto dobbiamo converitre in esadecimale N ed inviarlo al modulo radio
marcovitone 7:c16d95c42907 26 // usando unsigned int n sappiamo con sicurezza di utilizzare solo 2 byte
marcovitone 7:c16d95c42907 27 m2=N & 0x00FF;//isoliamo il secondo byte di N
marcovitone 7:c16d95c42907 28 m1=N & 0xFF00;//isoliamo il primo byte di N,dobbiamo però shifarlo
marcovitone 7:c16d95c42907 29 m1=m1>>8;
Alessio359 2:6b09752bd3b2 30
marcovitone 7:c16d95c42907 31 config_t[0] = char(m1);
marcovitone 7:c16d95c42907 32 config_t[1] = char(m2); // config data byte, tune at 100.00MHz
marcovitone 7:c16d95c42907 33 config_t[2] = 0x10;
marcovitone 7:c16d95c42907 34 config_t[3] = 0x12;
marcovitone 7:c16d95c42907 35 config_t[4] = 0x00;
marcovitone 7:c16d95c42907 36
marcovitone 7:c16d95c42907 37 radio.write(addr, config_t, 5);
Alessio359 2:6b09752bd3b2 38
marcovitone 7:c16d95c42907 39 lcd.locate(0,0);
marcovitone 7:c16d95c42907 40 lcd.printf("Frequenza: ");
marcovitone 7:c16d95c42907 41 lcd.locate(0,1);
marcovitone 7:c16d95c42907 42 lcd.printf("%-2.2f", frequenza );
marcovitone 7:c16d95c42907 43 lcd.printf("MHz ");
marcovitone 7:c16d95c42907 44
marcovitone 7:c16d95c42907 45 wait(0.3);
marcovitone 4:98e062cf962e 46 }
marcovitone 7:c16d95c42907 47
Alessio359 2:6b09752bd3b2 48
Alessio359 2:6b09752bd3b2 49 }