progetto finale

Dependencies:   TextLCD mbed

Fork of ProgettoAUC by Marco Vitone

main.cpp

Committer:
Alessio359
Date:
2016-12-04
Revision:
5:a38af5651374
Parent:
4:98e062cf962e
Child:
6:d333346124aa

File content as of revision 5:a38af5651374:

#include "mbed.h"
#include "TextLCD.h"

//TEA5767 example with STM32 nucleo
//Developed by Mazzella, Vitone, Tarallo

TextLCD lcd(D12, D11, D5, D4, D3, D2, TextLCD::LCD16x2); 
I2C radio(D14, D15); //sda, sc1
AnalogIn trimmer(PA_0);// A0 ingresso analogico

Serial pc(USBTX, USBRX); //tx, rx
InterruptIn button (USER_BUTTON);

char s;
float frequenza;
unsigned int N,m1,m2;
char config_t[5];
char lettura[5];

const int addr = 0xC0; //address for writing data, reading is C1

//char search[5];
/*void seqfreq()          //search next frequency, minimun signal strength
{
    search[0] = 0x6F;
    search[1] = 0xCA;
    search[2] = 0xB0;
    search[3] = 0x12;
    search[4] = 0x00;
    radio.write(addr, search, 5);
    wait(0.01);
    radio.read(0xC1, lettura,5);// dobbiamo azzerare i primi due bit
    for(int i=0;i<2;i++){
        s=lettura[i]& 0x3F;
        
}*/
 
     

int main()
{
    while (1){
      frequenza=(108-87.5)*trimmer.read()+87.5;
      N=4*(frequenza*1e6+225000)/32768; 
      /*pc.printf("Frequenza = \n\r");
      pc.printf("%1.3f",frequenza);
      pc.printf("\n\r");*/
      //a questo punto dobbiamo converitre in esadecimale N ed inviarlo al modulo radio 
      // usando unsigned int n sappiamo con sicurezza di utilizzare solo 2 byte
      m2=N & 0x00FF;//isoliamo il secondo byte di N
      m1=N & 0xFF00;//isoliamo il primo byte di N,dobbiamo però shifarlo
      m1=m1>>8;

    config_t[0] = char(m1);
    config_t[1] = char(m2); // config data byte, tune at 100.00MHz
    config_t[2] = 0x10;
    config_t[3] = 0x12;
    config_t[4] = 0x00;

    radio.write(addr, config_t, 5);
    lcd.locate(4,0);
    lcd.printf("Frequenza: " ,frequenza);
    lcd.printf(" MHz ");
    wait(0.5);
    }
   

}