Marco Vitone / Mbed 2 deprecated ProgettoAUC

Dependencies:   mbed TextLCD

Fork of Nucleo_radio_module by AUC Team

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 
00004 //TEA5767 example with STM32 nucleo
00005 //Developed by Mazzella, Vitone, Tarallo
00006 
00007 TextLCD lcd(D12, D11, D5, D4, D3, D2, TextLCD::LCD16x2); 
00008 I2C radio(D14, D15); //sda, sc1
00009 AnalogIn trimmer(PA_0);// A0 ingresso analogico
00010 
00011 Serial pc(USBTX, USBRX); //tx, rx
00012 InterruptIn button (USER_BUTTON);
00013 char s;
00014 float frequenza;
00015 unsigned int N,m1,m2;
00016 
00017 const int addr = 0xC0; //address for writing data, reading is C1
00018 
00019 char config_t[5];
00020 char search[5];
00021 char lettura[5];
00022 
00023 
00024 /*void seqfreq()          //search next frequency, minimun signal strength
00025 {
00026     search[0] = 0x6F;
00027     search[1] = 0xCA;
00028     search[2] = 0xB0;
00029     search[3] = 0x12;
00030     search[4] = 0x00;
00031     radio.write(addr, search, 5);
00032     wait(0.01);
00033     radio.read(0xC1, lettura,5);// dobbiamo azzerare i primi due bit
00034     for(int i=0;i<2;i++){
00035         s=lettura[i]& 0x3F;
00036         
00037     
00038     
00039 }*/
00040  
00041      
00042 
00043 int main()
00044 {
00045     while (1){
00046       frequenza=(108-87.5)*trimmer.read()+87.5;
00047       N=4*(frequenza*1e6+225000)/32768; 
00048       /*pc.printf("Frequenza = \n\r");
00049       pc.printf("%1.3f",frequenza);
00050       pc.printf("\n\r");*/
00051       //a questo punto dobbiamo converitre in esadecimale N ed inviarlo al modulo radio 
00052       // usando unsigned int n sappiamo con sicurezza di utilizzare solo 2 byte
00053       m2=N & 0x00FF;//isoliamo il secondo byte di N
00054       m1=N& 0xFF00;//isoliamo il primo byte di N,dobbiamo però shifarlo
00055       m1=m1>>8;
00056 
00057     config_t[0] = char(m1);
00058     config_t[1] = char(m2); // config data byte, tune at 100.00MHz
00059     config_t[2] = 0x10;
00060     config_t[3] = 0x12;
00061     config_t[4] = 0x00;
00062 
00063     radio.write(addr, config_t, 5);
00064     lcd.locate(0,0);
00065     lcd.printf("Frequenza:" ,frequenza);
00066     wait(1);
00067     }
00068    // button.rise(&seqfreq);
00069 
00070 }