INT working perfectly

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
Piasiv1206
Date:
Sun Jul 05 13:23:37 2015 +0000
Commit message:
COM Code Working

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7ddcd61d0bc8 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Jul 05 13:23:37 2015 +0000
@@ -0,0 +1,286 @@
+#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);
+
+    
+}
+
diff -r 000000000000 -r 7ddcd61d0bc8 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Jul 05 13:23:37 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/7cff1c4259d7
\ No newline at end of file