
progetto finale
Fork of ProgettoAUC by
main.cpp@5:a38af5651374, 2016-12-04 (annotated)
- 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?
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 |
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 | } |