Test program for the Adafruit Si4713 FM transmitter
Dependencies: Adafruit_Si4713 mbed
main.cpp@1:cad29d4fbce9, 2017-01-24 (annotated)
- Committer:
- JLarkin
- Date:
- Tue Jan 24 07:00:15 2017 +0000
- Revision:
- 1:cad29d4fbce9
- Parent:
- 0:9cf641b3b681
Test program for the mbed version of the Adafruit Si4713 library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JLarkin | 0:9cf641b3b681 | 1 | #include "mbed.h" |
JLarkin | 0:9cf641b3b681 | 2 | #include "Adafruit_Si4713.h" |
JLarkin | 0:9cf641b3b681 | 3 | |
JLarkin | 0:9cf641b3b681 | 4 | /* For the demo use PWM (p25) connected to LIN to play... */ |
JLarkin | 0:9cf641b3b681 | 5 | PwmOut muzak(p25); |
JLarkin | 0:9cf641b3b681 | 6 | float frequency[]={659, 554, 659, 554, 440, 494, 554, 587, 494, 659, 554, 440}; |
JLarkin | 0:9cf641b3b681 | 7 | float beat[]={1,1,1,1,1,0.5,0.5,1,1,1,1,2}; |
JLarkin | 0:9cf641b3b681 | 8 | |
JLarkin | 0:9cf641b3b681 | 9 | uint16_t fmstation = 9350; // 9350 == 93.5 MHz |
JLarkin | 0:9cf641b3b681 | 10 | |
JLarkin | 0:9cf641b3b681 | 11 | I2C myi2c(p9,p10); |
JLarkin | 0:9cf641b3b681 | 12 | Adafruit_Si4713 radio = Adafruit_Si4713(myi2c, p5, 0x63<<1); |
JLarkin | 0:9cf641b3b681 | 13 | |
JLarkin | 0:9cf641b3b681 | 14 | int main() { |
JLarkin | 0:9cf641b3b681 | 15 | printf("Adafruit Radio - Si4713 Test\r\n"); |
JLarkin | 0:9cf641b3b681 | 16 | |
JLarkin | 0:9cf641b3b681 | 17 | if (! radio.begin()) { |
JLarkin | 0:9cf641b3b681 | 18 | printf("Couldn't find radio?\r\n"); |
JLarkin | 0:9cf641b3b681 | 19 | while (1); |
JLarkin | 0:9cf641b3b681 | 20 | } |
JLarkin | 0:9cf641b3b681 | 21 | |
JLarkin | 0:9cf641b3b681 | 22 | // Uncomment to scan power of entire range from 87.5 to 108.0 MHz |
JLarkin | 0:9cf641b3b681 | 23 | for (uint16_t f = 8750; f<10800; f+=10) { |
JLarkin | 0:9cf641b3b681 | 24 | radio.readTuneMeasure(f); |
JLarkin | 0:9cf641b3b681 | 25 | printf("Measuring %.1f\t",f/100.0); |
JLarkin | 0:9cf641b3b681 | 26 | radio.readTuneStatus(); |
JLarkin | 0:9cf641b3b681 | 27 | printf("%i\r\n",radio.currNoiseLevel); |
JLarkin | 0:9cf641b3b681 | 28 | } |
JLarkin | 0:9cf641b3b681 | 29 | |
JLarkin | 0:9cf641b3b681 | 30 | printf("\n\rSet TX power"); |
JLarkin | 0:9cf641b3b681 | 31 | radio.setTXpower(115); // dBuV, 88-115 max |
JLarkin | 0:9cf641b3b681 | 32 | |
JLarkin | 0:9cf641b3b681 | 33 | printf("\n\rTuning into %.1f\r\n",fmstation/100.0); |
JLarkin | 0:9cf641b3b681 | 34 | radio.tuneFM(fmstation); |
JLarkin | 0:9cf641b3b681 | 35 | |
JLarkin | 0:9cf641b3b681 | 36 | // This will tell you the status in case you want to read it from the chip |
JLarkin | 0:9cf641b3b681 | 37 | radio.readTuneStatus(); |
JLarkin | 0:9cf641b3b681 | 38 | printf("\tCurr freq: %d\r\n", radio.currFreq); |
JLarkin | 0:9cf641b3b681 | 39 | printf("\tCurr freqdBuV: %d\r\n", radio.currdBuV); |
JLarkin | 0:9cf641b3b681 | 40 | printf("\tCurr ANTcap: %d\r\n", radio.currAntCap); |
JLarkin | 0:9cf641b3b681 | 41 | |
JLarkin | 0:9cf641b3b681 | 42 | while (1) { |
JLarkin | 0:9cf641b3b681 | 43 | for (int i = 0; i<=11; i++) { |
JLarkin | 0:9cf641b3b681 | 44 | muzak.period(1/(2*frequency[i])); |
JLarkin | 0:9cf641b3b681 | 45 | muzak = 0.5; |
JLarkin | 0:9cf641b3b681 | 46 | wait(0.4*beat[i]); |
JLarkin | 0:9cf641b3b681 | 47 | } |
JLarkin | 0:9cf641b3b681 | 48 | } |
JLarkin | 0:9cf641b3b681 | 49 | } |