FM-test

Dependencies:   MODSERIAL mbed-rtos mbed

Fork of Master by Ohnishi_Gundan

Committer:
9uS7
Date:
Thu Sep 11 10:15:34 2014 +0000
Revision:
0:4f07ba929908
Child:
1:e1cfb5850088
main_program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
9uS7 0:4f07ba929908 1 #include "mbed.h"
9uS7 0:4f07ba929908 2 #include "fm.h"
9uS7 0:4f07ba929908 3
9uS7 0:4f07ba929908 4
9uS7 0:4f07ba929908 5 void i2cSetup(unsigned int _f)
9uS7 0:4f07ba929908 6 {
9uS7 0:4f07ba929908 7 freq = _f; //freq/10.MHz 760~910
9uS7 0:4f07ba929908 8 if(freq > 870){
9uS7 0:4f07ba929908 9 freqB = freq - 870;
9uS7 0:4f07ba929908 10 freqH = freqB>>2;
9uS7 0:4f07ba929908 11 freqL = (freqB&3)<<6; // Shift channel selection for matching register 0x03
9uS7 0:4f07ba929908 12 }else{
9uS7 0:4f07ba929908 13 freqB = freq-760;
9uS7 0:4f07ba929908 14 freqH = freqB>>2;
9uS7 0:4f07ba929908 15 freqL = (freqB&3)<<6;
9uS7 0:4f07ba929908 16 }
9uS7 0:4f07ba929908 17
9uS7 0:4f07ba929908 18 i2c.start();
9uS7 0:4f07ba929908 19 i2c.write(addr);
9uS7 0:4f07ba929908 20 i2c.write(0x02);
9uS7 0:4f07ba929908 21 i2c.write(0xC0);
9uS7 0:4f07ba929908 22 i2c.write(0x03);
9uS7 0:4f07ba929908 23 i2c.stop();
9uS7 0:4f07ba929908 24 wait(0.5); // wait 500ms
9uS7 0:4f07ba929908 25
9uS7 0:4f07ba929908 26 i2c.start();
9uS7 0:4f07ba929908 27 i2c.write(addr);
9uS7 0:4f07ba929908 28 i2c.write(0x02);
9uS7 0:4f07ba929908 29 i2c.write(0xC0);
9uS7 0:4f07ba929908 30 i2c.write(0x0D);
9uS7 0:4f07ba929908 31 i2c.stop();
9uS7 0:4f07ba929908 32 wait(0.5);
9uS7 0:4f07ba929908 33
9uS7 0:4f07ba929908 34 if(freq > 870){
9uS7 0:4f07ba929908 35 freqL=freqL | 0x10;
9uS7 0:4f07ba929908 36 }else{
9uS7 0:4f07ba929908 37 freqL=freqL | 0x14;
9uS7 0:4f07ba929908 38 }
9uS7 0:4f07ba929908 39 i2c.start();
9uS7 0:4f07ba929908 40 i2c.write(addr);
9uS7 0:4f07ba929908 41 i2c.write(0x03);
9uS7 0:4f07ba929908 42 i2c.write(freqH);
9uS7 0:4f07ba929908 43 i2c.write(freqL);
9uS7 0:4f07ba929908 44 i2c.stop();
9uS7 0:4f07ba929908 45 wait(0.5);
9uS7 0:4f07ba929908 46
9uS7 0:4f07ba929908 47 char temp0 = 0x00;
9uS7 0:4f07ba929908 48 char temp1 = 0x00;
9uS7 0:4f07ba929908 49 i2c.read(addr,&temp0,1);
9uS7 0:4f07ba929908 50 i2c.read(addr,&temp1,1);
9uS7 0:4f07ba929908 51 temp0 &= 0xff;
9uS7 0:4f07ba929908 52 temp1 &= 0xf0;
9uS7 0:4f07ba929908 53 temp0 |= 0x00;
9uS7 0:4f07ba929908 54 temp1 |= 0x01;
9uS7 0:4f07ba929908 55 i2c.start();
9uS7 0:4f07ba929908 56 i2c.write(addr);
9uS7 0:4f07ba929908 57 i2c.write(0x40);
9uS7 0:4f07ba929908 58 i2c.write(temp0);
9uS7 0:4f07ba929908 59 i2c.write(temp1);
9uS7 0:4f07ba929908 60 i2c.stop();
9uS7 0:4f07ba929908 61 wait(0.5);
9uS7 0:4f07ba929908 62
9uS7 0:4f07ba929908 63 i2c.start();
9uS7 0:4f07ba929908 64 i2c.write(addr);
9uS7 0:4f07ba929908 65 i2c.write(0x42);
9uS7 0:4f07ba929908 66 i2c.write(0x03);
9uS7 0:4f07ba929908 67 i2c.write(0x0F);
9uS7 0:4f07ba929908 68 i2c.stop();
9uS7 0:4f07ba929908 69
9uS7 0:4f07ba929908 70 wait(0.5);
9uS7 0:4f07ba929908 71 }