Test program for the Adafruit Si4713 FM transmitter

Dependencies:   Adafruit_Si4713 mbed

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?

UserRevisionLine numberNew 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 }