Siva ram
/
COM_TEST_2
INT working perfectly
main.cpp
- Committer:
- Piasiv1206
- Date:
- 2015-07-05
- Revision:
- 0:7ddcd61d0bc8
File content as of revision 0:7ddcd61d0bc8:
#include "mbed.h" #define ENDL "\r" << endl; #define START_ADDRESS 0x020; #define PI 3.14 InterruptIn SPI_INT(PTD2); SPI adf(PTD6,PTD7,PTD5 ); DigitalOut CS(PTD4); Serial pc(USBTX, USBRX); DigitalOut flash(LED4); int src=0; int irqsrc = 0; int j = 0; int k = 0; int x=0; int irq1=0; unsigned char data[]={0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCE,0x56,0x33,0x76,0x2D,0xD7,0x5F,0x0A,0x2D,0xD5,0x9D,0x36,0xD2,0x2C,0x97,0xB2,0xF1,0xA8,0xBE,0xE4,0x9F,0xE8,0x57,0x8C,0x01,0x27,0xB2,0x34,0x6B,0x5E,0x9A,0x30,0x5F,0x78,0x7C,0x0E,0xDC,0x0D,0x4B,0x78,0x00,0x13,0x09,0xDA,0xAD,0x9A,0x3C,0xD6,0xCC,0xB2,0x89,0x8C,0xB4,0xA0,0x0B,0xA4,0x14,0x09,0xEE,0x9C,0x62,0x86,0x53,0xBE,0x59,0x56,0xF7,0xF2,0x71,0x75,0x04,0xE4,0xC7,0x7B,0xBA,0xAC,0xE6,0x0A,0xB9,0x74,0x2B,0x87,0x2D,0x82,0x3D,0x3D,0xCF,0x44,0x48,0xAE,0xA2,0xB2,0xD8,0x88,0xEA,0x68,0x69,0x50,0x0C,0xFA,0xB9,0x3F,0xF9,0xAE,0x2D,0xA6,0x70,0x76,0x99,0xBA,0x99,0xF8,0x61,0xA9,0xBA,0xF6,0x62,0xC9,0xFB,0x74,0xB2,0x4A,0xFF,0xD0,0x1B,0xA2,0x61,0x30,0x08,0xB0,0x51,0x38,0x2D,0x33,0x95,0x8E,0xB7,0x6B,0x75,0xD4,0xF0,0xAB,0x75,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x53,0x54,0x8B,0x26,0xFB,0x1C,0x6A,0x2E,0x6E,0x67,0xFA,0x14,0x78,0xC0,0x49,0xEC,0x23,0x5A,0xD7,0xA4,0xA3,0x17,0xDE,0x1E,0x40,0xD7,0x03,0x52,0x37,0x80,0x04,0xC2,0x1D,0x8B,0x66,0x8E,0x4D,0x53,0x2C,0xA2,0x18,0xED,0x28,0x00,0xBA,0x45,0x02,0x7A,0x69,0xD8,0xA1,0x94,0x3B,0xF6,0x55,0xBC,0x7F,0x3C,0x5D,0x42,0xCE,0x71,0xDE,0xEC,0xAA,0xF9,0x82,0xAC,0x97,0x4A,0xE1,0xCA,0x58,0x2F,0x4F,0x70,0xF4,0x52,0x2B,0xAA,0xAB,0x16,0x22,0x3A,0x26,0x9A,0x54,0x00,0xCF,0x8E,0x4F,0xFE,0x1A,0xEB,0x69,0x9E,0x87,0x46,0x6E,0xA6,0x1F,0x98,0x6A,0x6C,0xAF,0x78,0xB2,0x7E,0x37,0x6C,0x92,0xBE,0x7D,0x06,0xE8,0x9A,0x93,0x02,0x2C,0x14,0x13,0x8B,0x4C,0xE4,0x58,0xCD,0xDA,0xDC,0x5D,0x7C,0x2A,0xDC,0x56,0x74,0xD5,0x20,0xB2,0x5E,0xC7,0x18,0xA2,0xFB,0x99,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; void ISR (void) { flash = !flash; CS=0; adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF adf.write(0x36);//Address : 0x336 adf.write(0xFF);//Put Low CS=1; CS=0; CS=0; k=0; if(!j){ adf.write(0x18); adf.write(0x20); while(k<=223){ adf.write(data[k]); k++; } } else if(j<=sizeof(data)/112){ if(j%2){ //src== Buffer Half Full src == 1 adf.write(0x18); adf.write(0x20); } else{ //src== Buffer is Full src==2 adf.write(0x18); adf.write(0x90); } while(k<=111){ adf.write(data[(j+1)*112+k]); k++; } } j++; if(j>=(sizeof(data)/112) ) j=1; CS=1; wait_us(5); } void initiate(void){ CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x14); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x08); // TRANSMIT_DATA LENGTH adf.write(0x15); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte) adf.write(0x20); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size adf.write(0xE0); CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given CS=1; wait_ms(2); CS=0; adf.write(0x09); adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given CS=1; wait_ms(2); } void bbram_write() { CS=0; adf.write(0xB0);//PHY_OFF wait_ms(2); CS=1; // Write bbram CS=0; adf.write(0x19); adf.write(0x00); adf.write(0x60); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x33); adf.write(0x00); adf.write(0xF4);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz adf.write(0xC2); adf.write(0x10); adf.write(0xC0); adf.write(0x00); adf.write(0x30); adf.write(0x31); adf.write(0x07); adf.write(0x00); adf.write(0x01); adf.write(0x00); adf.write(0x7F); adf.write(0x00); adf.write(0x0B); adf.write(0x37); adf.write(0x00); adf.write(0x00); adf.write(0x40); adf.write(0x0C); adf.write(0x00); adf.write(0x05); adf.write(0x00); adf.write(0x00); adf.write(0x18); adf.write(0x12); adf.write(0x34); adf.write(0x56); adf.write(0x10); adf.write(0x10); adf.write(0xC4); // Different adf.write(0x14); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x04); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); adf.write(0x00); CS=1; wait(1); } void send_data(void){ CS=0; adf.write(0xBB); CS=1; wait_ms(2); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); // write_data(); ISR(); CS=0; adf.write(0xB1); CS=1; wait_ms(2); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_ms(2); CS=0; adf.write(0xB5); CS=1; wait_ms(2); CS=0; adf.write(0xFF); adf.write(0xFF); CS=1; wait_us(20); } int main (void) { CS = 1; adf.format(8,0); adf.frequency(1000000); SPI_INT.rise(&ISR); bbram_write(); initiate(); send_data(); while(1); }