progetto finale

Dependencies:   TextLCD mbed

Fork of ProgettoAUC by Marco Vitone

Committer:
Alessio359
Date:
Sun Dec 04 09:54:36 2016 +0000
Revision:
5:a38af5651374
Parent:
4:98e062cf962e
Child:
6:d333346124aa
aa

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
Alessio359 2:6b09752bd3b2 5 //Developed by Mazzella, Vitone, Tarallo
Alessio359 0:7b9184b3ceba 6
marcovitone 4:98e062cf962e 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 0:7b9184b3ceba 11 Serial pc(USBTX, USBRX); //tx, rx
Alessio359 2:6b09752bd3b2 12 InterruptIn button (USER_BUTTON);
Alessio359 5:a38af5651374 13
marcovitone 3:4ce3bb78b1fc 14 char s;
marcovitone 3:4ce3bb78b1fc 15 float frequenza;
marcovitone 4:98e062cf962e 16 unsigned int N,m1,m2;
Alessio359 5:a38af5651374 17 char config_t[5];
Alessio359 5:a38af5651374 18 char lettura[5];
Alessio359 0:7b9184b3ceba 19
Alessio359 2:6b09752bd3b2 20 const int addr = 0xC0; //address for writing data, reading is C1
Alessio359 0:7b9184b3ceba 21
Alessio359 5:a38af5651374 22 //char search[5];
marcovitone 4:98e062cf962e 23 /*void seqfreq() //search next frequency, minimun signal strength
Alessio359 2:6b09752bd3b2 24 {
franzs17 1:84d896b9240b 25 search[0] = 0x6F;
franzs17 1:84d896b9240b 26 search[1] = 0xCA;
franzs17 1:84d896b9240b 27 search[2] = 0xB0;
franzs17 1:84d896b9240b 28 search[3] = 0x12;
franzs17 1:84d896b9240b 29 search[4] = 0x00;
franzs17 1:84d896b9240b 30 radio.write(addr, search, 5);
marcovitone 3:4ce3bb78b1fc 31 wait(0.01);
marcovitone 3:4ce3bb78b1fc 32 radio.read(0xC1, lettura,5);// dobbiamo azzerare i primi due bit
marcovitone 3:4ce3bb78b1fc 33 for(int i=0;i<2;i++){
marcovitone 3:4ce3bb78b1fc 34 s=lettura[i]& 0x3F;
marcovitone 3:4ce3bb78b1fc 35
marcovitone 4:98e062cf962e 36 }*/
marcovitone 3:4ce3bb78b1fc 37
marcovitone 3:4ce3bb78b1fc 38
Alessio359 2:6b09752bd3b2 39
Alessio359 2:6b09752bd3b2 40 int main()
Alessio359 2:6b09752bd3b2 41 {
marcovitone 3:4ce3bb78b1fc 42 while (1){
marcovitone 3:4ce3bb78b1fc 43 frequenza=(108-87.5)*trimmer.read()+87.5;
marcovitone 4:98e062cf962e 44 N=4*(frequenza*1e6+225000)/32768;
marcovitone 4:98e062cf962e 45 /*pc.printf("Frequenza = \n\r");
marcovitone 4:98e062cf962e 46 pc.printf("%1.3f",frequenza);
marcovitone 4:98e062cf962e 47 pc.printf("\n\r");*/
marcovitone 3:4ce3bb78b1fc 48 //a questo punto dobbiamo converitre in esadecimale N ed inviarlo al modulo radio
marcovitone 4:98e062cf962e 49 // usando unsigned int n sappiamo con sicurezza di utilizzare solo 2 byte
marcovitone 4:98e062cf962e 50 m2=N & 0x00FF;//isoliamo il secondo byte di N
Alessio359 5:a38af5651374 51 m1=N & 0xFF00;//isoliamo il primo byte di N,dobbiamo però shifarlo
marcovitone 4:98e062cf962e 52 m1=m1>>8;
Alessio359 2:6b09752bd3b2 53
marcovitone 4:98e062cf962e 54 config_t[0] = char(m1);
marcovitone 4:98e062cf962e 55 config_t[1] = char(m2); // config data byte, tune at 100.00MHz
Alessio359 2:6b09752bd3b2 56 config_t[2] = 0x10;
Alessio359 2:6b09752bd3b2 57 config_t[3] = 0x12;
Alessio359 2:6b09752bd3b2 58 config_t[4] = 0x00;
Alessio359 2:6b09752bd3b2 59
Alessio359 2:6b09752bd3b2 60 radio.write(addr, config_t, 5);
Alessio359 5:a38af5651374 61 lcd.locate(4,0);
Alessio359 5:a38af5651374 62 lcd.printf("Frequenza: " ,frequenza);
Alessio359 5:a38af5651374 63 lcd.printf(" MHz ");
Alessio359 5:a38af5651374 64 wait(0.5);
marcovitone 4:98e062cf962e 65 }
Alessio359 5:a38af5651374 66
Alessio359 2:6b09752bd3b2 67
Alessio359 2:6b09752bd3b2 68 }