AUC Team
/
progettoauc
progetto finale
Fork of ProgettoAUC by
main.cpp@7:c16d95c42907, 2016-12-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |