![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Everything working except ticker. Ticker is not working. Please make sure all the ground are connected. INterrupt and CS pin are changed. Please take care of that. Thank You
Fork of October_22_11AM____Worksproperly_till_bbram by
main.cpp@3:5ce3971c1545, 2015-10-22 (annotated)
- Committer:
- dheerajmpai23
- Date:
- Thu Oct 22 12:26:17 2015 +0000
- Revision:
- 3:5ce3971c1545
- Parent:
- 2:3ad3165e4d6c
Everything working except ticker.; ; Ticker is not working.; Please make sure all the ground are connected. INterrupt and CS pin are changed. Please take care of that.; ; Thank You
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dheerajmpai23 | 0:cb8104f3ae71 | 1 | ///ADF7023 From BIT BUCKET |
dheerajmpai23 | 0:cb8104f3ae71 | 2 | //TO DO SPI and CMD CHeck |
dheerajmpai23 | 0:cb8104f3ae71 | 3 | #include "mbed.h" |
dheerajmpai23 | 0:cb8104f3ae71 | 4 | #include <iostream> |
dheerajmpai23 | 0:cb8104f3ae71 | 5 | #include <stdio.h> |
dheerajmpai23 | 0:cb8104f3ae71 | 6 | using namespace std; |
dheerajmpai23 | 0:cb8104f3ae71 | 7 | #include <bitset> |
dheerajmpai23 | 0:cb8104f3ae71 | 8 | #define ENDL "\r" << endl; |
dheerajmpai23 | 0:cb8104f3ae71 | 9 | |
dheerajmpai23 | 0:cb8104f3ae71 | 10 | #define MISO_PIN PTA17 |
dheerajmpai23 | 0:cb8104f3ae71 | 11 | #define THRS 20 |
dheerajmpai23 | 0:cb8104f3ae71 | 12 | #define STATE_ERR_THRS 20 |
dheerajmpai23 | 0:cb8104f3ae71 | 13 | #define PHY_OFF_EXEC_TIME 300 |
dheerajmpai23 | 0:cb8104f3ae71 | 14 | #define PHY_ON_EXEC_TIME 300 |
dheerajmpai23 | 0:cb8104f3ae71 | 15 | #define PHY_TX_EXEC_TIME 600 |
dheerajmpai23 | 0:cb8104f3ae71 | 16 | /******DEFINING OMMANDS*********/ |
dheerajmpai23 | 0:cb8104f3ae71 | 17 | |
dheerajmpai23 | 0:cb8104f3ae71 | 18 | #define CMD_HW_RESET 0xC8 |
dheerajmpai23 | 0:cb8104f3ae71 | 19 | #define CMD_PHY_ON 0xB1 |
dheerajmpai23 | 0:cb8104f3ae71 | 20 | #define CMD_PHY_OFF 0xB0 |
dheerajmpai23 | 0:cb8104f3ae71 | 21 | #define CMD_PHY_TX 0xB5 |
dheerajmpai23 | 0:cb8104f3ae71 | 22 | #define CMD_CONFIG_DEV 0xBB |
dheerajmpai23 | 0:cb8104f3ae71 | 23 | |
dheerajmpai23 | 0:cb8104f3ae71 | 24 | /*****FUNCTION Declaration********************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 25 | bool assrt_phy_off( int, int, int); |
dheerajmpai23 | 0:cb8104f3ae71 | 26 | bool assrt_phy_on( int,int,int); |
dheerajmpai23 | 0:cb8104f3ae71 | 27 | bool assrt_phy_tx(int,int,int); |
dheerajmpai23 | 0:cb8104f3ae71 | 28 | /****************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 29 | SPI adf(PTA16, MISO_PIN, PTA15); |
dheerajmpai23 | 0:cb8104f3ae71 | 30 | //MOSI, MISO, CLOCK |
dheerajmpai23 | 1:9cd986151b11 | 31 | DigitalOut CS(D7); |
dheerajmpai23 | 0:cb8104f3ae71 | 32 | //DigitalOut CS(PTD4);//D10==PTD4 |
dheerajmpai23 | 0:cb8104f3ae71 | 33 | Serial PC(USBTX, USBRX); |
dheerajmpai23 | 0:cb8104f3ae71 | 34 | DigitalOut ledr(LED1); |
dheerajmpai23 | 0:cb8104f3ae71 | 35 | DigitalOut led2(LED2); |
dheerajmpai23 | 0:cb8104f3ae71 | 36 | InterruptIn IRQ(D8); |
dheerajmpai23 | 0:cb8104f3ae71 | 37 | //InterruptIn IRQ(PTA13);//D8==PTA13 |
dheerajmpai23 | 0:cb8104f3ae71 | 38 | Ticker ticker; |
dheerajmpai23 | 0:cb8104f3ae71 | 39 | //Timer t; |
dheerajmpai23 | 0:cb8104f3ae71 | 40 | //Timer stop; |
dheerajmpai23 | 0:cb8104f3ae71 | 41 | int x=IRQ; |
dheerajmpai23 | 0:cb8104f3ae71 | 42 | int src=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 43 | int irqsrc = 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 44 | int j = 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 45 | int k = 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 46 | int irq1=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 47 | int r = 0; |
dheerajmpai23 | 3:5ce3971c1545 | 48 | 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,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,0x3C,0x04,0x1E,0x08,0xAD,0x23,0x3F,0x66,0x6A,0xFF,0xD4,0xB2,0xE0,0xAB,0xA9,0x0A,0x20,0x57,0x3A,0x48,0xD7,0x75,0x9B,0x78,0x41,0x62,0x89,0x3C,0xA1,0x23,0x38,0xA2,0xDA,0x05,0xA9,0xA4,0x4F,0x91,0xE2,0x7E,0x31,0x1F,0x93,0x50,0x3D,0x77,0xE2,0x7A,0x2E,0x15,0x9E,0x28,0xA2,0x6D,0x91,0xDC,0x36,0xDF,0x9E,0x18,0x16,0x47,0x99,0xCE,0xA9,0xDB,0x17,0x0C,0xDF,0xCC,0x6E,0xFA,0x41,0x4C,0xB1,0xE6,0x7B,0xEE,0x46,0xD0,0x60,0x01,0xC6,0xF2,0x79,0x13,0x9D,0x34,0xAD,0xC1,0x27,0xD2,0xA6,0x9B,0xCB,0x0A,0x7A,0x55,0xB9,0x5C,0x70,0x53,0x86,0x56,0x74,0xCC,0x11,0x74,0x60,0x86,0x91,0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x33,0x5B,0x25,0xFA,0xD9,0x42,0x46,0xF6,0x18,0x44,0x1D,0xCC,0x1E,0x5B,0x25,0x6A,0x57,0x29,0x97,0x2C,0xD6,0xEF,0x01,0x04,0xE0,0xAB,0x48,0xCC,0xF6,0x7A,0xBF,0xF6,0xCB,0x18,0x2A,0xE8,0x90,0xA8,0x15,0xCC,0xA4,0xB5,0xDD,0x66,0x37,0x90,0x58,0xA0,0x93,0xE8,0x48,0xCC,0x8A,0x16,0x81,0x6A,0x1A,0x53,0xE4,0x7A,0xA7,0xEC,0x47,0xE4,0x35,0x0F,0x5D,0xF8,0x27,0xAB,0x85,0x66,0x62,0xA8,0x9B,0x64,0x1D,0xCD,0xB7,0xE6,0x61,0x85,0x91,0xE6,0x1C,0xCA,0x76,0xC6,0xF0,0xF7,0xF3,0x1A,0x6F,0xB0,0x53,0x2C,0x1E,0x7E,0xFB,0x92,0xED,0x18,0x00,0x72,0xEF,0x3E,0x44,0xE4,0xD3,0x6B,0x70,0x4A,0xFD,0x09,0xA6,0xF2,0x30,0xBE,0x95,0x6C,0x95,0xDC,0x14,0xE0,0x65,0x7D,0x33,0x06,0x97,0x58,0x21,0xA6,0x9D,0x2C,0xD6,0xC8,0x5F,0x96,0x50,0x90,0x6F,0x66,0x11,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x5C,0xC7,0x96,0xC8,0x56,0xB5,0xCA,0x64,0x72,0xF5,0xBB,0xC0,0x10,0x78,0x2A,0xD2,0x0C,0xFD,0x9E,0xAC,0xFF,0x52,0xC6,0x08,0xAE,0xA4,0x2A,0x04,0x5C,0xE9,0x2D,0x76,0x56,0x6D,0xE4,0x16,0x0A,0x24,0xFA,0x12,0x0C,0xE2,0x85,0xA2,0x96,0xA6,0x94,0xF8,0x47,0x89,0xFB,0x12,0xFE,0x4D,0x43,0xD4,0xDF,0x89,0xEA,0xE0,0x56,0x78,0xAA,0x24,0xB6,0x47,0x73,0x6C,0x7E,0x78,0x61,0x64,0x1E,0x67,0x32,0x9C,0x6C,0x5C,0x3D,0xFE,0xB1,0xBB,0xEC,0x16,0xB2,0xC7,0x9F,0xBC,0xB9,0x1B,0x46,0x00,0x07,0x1B,0xCF,0x92,0xCE,0x74,0xDA,0xDE,0x84,0x9F,0x42,0x6A,0xEF,0x2C,0x2F,0xA4,0x56,0xE5,0x77,0x04,0x4E,0x19,0x5F,0x4C,0x30,0x45,0xD6,0x0A,0x9A,0x47,0x4B,0x36,0xEC,0x97,0xE5,0x94,0x09,0x1B,0xD9,0x86,0x90,0x77,0x31,0xE6,0xEC,0x95,0xAD,0x72,0x26,0x5C,0xBD,0x6E,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}; |
dheerajmpai23 | 0:cb8104f3ae71 | 49 | int a[100]; |
dheerajmpai23 | 0:cb8104f3ae71 | 50 | int b[100]; |
dheerajmpai23 | 0:cb8104f3ae71 | 51 | int c[100]; |
dheerajmpai23 | 0:cb8104f3ae71 | 52 | |
dheerajmpai23 | 0:cb8104f3ae71 | 53 | /*****ERROR CHECKING ALGO*****/ |
dheerajmpai23 | 0:cb8104f3ae71 | 54 | unsigned char status =0; |
dheerajmpai23 | 0:cb8104f3ae71 | 55 | unsigned int cmd_err_cnt=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 56 | unsigned int state_err_cnt=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 57 | unsigned int miso_err_cnt=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 58 | unsigned int hw_reset_err_cnt=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 59 | /*Err_check Flags*/ |
dheerajmpai23 | 0:cb8104f3ae71 | 60 | bool bcn_flag=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 61 | bool bbram_flag=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 62 | /***********/ |
dheerajmpai23 | 0:cb8104f3ae71 | 63 | |
dheerajmpai23 | 0:cb8104f3ae71 | 64 | #define SPI_NOP 0xFF |
dheerajmpai23 | 0:cb8104f3ae71 | 65 | /***********************************************************************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 66 | void bbram_write() |
dheerajmpai23 | 0:cb8104f3ae71 | 67 | { |
dheerajmpai23 | 0:cb8104f3ae71 | 68 | /* CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 69 | adf.write(0xB0);//PHY_OFF |
dheerajmpai23 | 0:cb8104f3ae71 | 70 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 71 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 72 | *///Commented on 21st October debugging |
dheerajmpai23 | 0:cb8104f3ae71 | 73 | // Write bbram |
dheerajmpai23 | 0:cb8104f3ae71 | 74 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 75 | adf.write(0x19); |
dheerajmpai23 | 0:cb8104f3ae71 | 76 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 77 | adf.write(0x60); |
dheerajmpai23 | 0:cb8104f3ae71 | 78 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 79 | |
dheerajmpai23 | 0:cb8104f3ae71 | 80 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 81 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 82 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 83 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 84 | |
dheerajmpai23 | 0:cb8104f3ae71 | 85 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 86 | adf.write(0x33); |
dheerajmpai23 | 0:cb8104f3ae71 | 87 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 88 | adf.write(0xF4);//Frequency Register F9 = 435.802 MHz F4 = 435.800 MHz |
dheerajmpai23 | 0:cb8104f3ae71 | 89 | |
dheerajmpai23 | 0:cb8104f3ae71 | 90 | adf.write(0xC2); |
dheerajmpai23 | 0:cb8104f3ae71 | 91 | adf.write(0x10); |
dheerajmpai23 | 0:cb8104f3ae71 | 92 | adf.write(0xC0); |
dheerajmpai23 | 0:cb8104f3ae71 | 93 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 94 | |
dheerajmpai23 | 0:cb8104f3ae71 | 95 | adf.write(0x30); |
dheerajmpai23 | 0:cb8104f3ae71 | 96 | adf.write(0x31); |
dheerajmpai23 | 0:cb8104f3ae71 | 97 | adf.write(0x07); |
dheerajmpai23 | 0:cb8104f3ae71 | 98 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 99 | |
dheerajmpai23 | 0:cb8104f3ae71 | 100 | adf.write(0x01); |
dheerajmpai23 | 0:cb8104f3ae71 | 101 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 102 | adf.write(0x7F); |
dheerajmpai23 | 0:cb8104f3ae71 | 103 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 104 | |
dheerajmpai23 | 0:cb8104f3ae71 | 105 | adf.write(0x0B); |
dheerajmpai23 | 0:cb8104f3ae71 | 106 | adf.write(0x37); |
dheerajmpai23 | 0:cb8104f3ae71 | 107 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 108 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 109 | |
dheerajmpai23 | 0:cb8104f3ae71 | 110 | adf.write(0x40); |
dheerajmpai23 | 0:cb8104f3ae71 | 111 | adf.write(0x0C); |
dheerajmpai23 | 0:cb8104f3ae71 | 112 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 113 | adf.write(0x05); |
dheerajmpai23 | 0:cb8104f3ae71 | 114 | |
dheerajmpai23 | 0:cb8104f3ae71 | 115 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 116 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 117 | adf.write(0x18); |
dheerajmpai23 | 0:cb8104f3ae71 | 118 | adf.write(0x12); |
dheerajmpai23 | 0:cb8104f3ae71 | 119 | |
dheerajmpai23 | 0:cb8104f3ae71 | 120 | adf.write(0x34); |
dheerajmpai23 | 0:cb8104f3ae71 | 121 | adf.write(0x56); |
dheerajmpai23 | 0:cb8104f3ae71 | 122 | adf.write(0x10); |
dheerajmpai23 | 0:cb8104f3ae71 | 123 | adf.write(0x10); |
dheerajmpai23 | 0:cb8104f3ae71 | 124 | |
dheerajmpai23 | 0:cb8104f3ae71 | 125 | adf.write(0xC4); // Different |
dheerajmpai23 | 0:cb8104f3ae71 | 126 | adf.write(0x14); |
dheerajmpai23 | 0:cb8104f3ae71 | 127 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 128 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 129 | |
dheerajmpai23 | 0:cb8104f3ae71 | 130 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 131 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 132 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 133 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 134 | |
dheerajmpai23 | 0:cb8104f3ae71 | 135 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 136 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 137 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 138 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 139 | |
dheerajmpai23 | 0:cb8104f3ae71 | 140 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 141 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 142 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 143 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 144 | |
dheerajmpai23 | 0:cb8104f3ae71 | 145 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 146 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 147 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 148 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 149 | |
dheerajmpai23 | 0:cb8104f3ae71 | 150 | adf.write(0x04); |
dheerajmpai23 | 0:cb8104f3ae71 | 151 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 152 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 153 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 154 | |
dheerajmpai23 | 0:cb8104f3ae71 | 155 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 156 | adf.write(0x00); |
dheerajmpai23 | 0:cb8104f3ae71 | 157 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 158 | wait(1); |
dheerajmpai23 | 0:cb8104f3ae71 | 159 | |
dheerajmpai23 | 0:cb8104f3ae71 | 160 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 161 | |
dheerajmpai23 | 0:cb8104f3ae71 | 162 | |
dheerajmpai23 | 0:cb8104f3ae71 | 163 | /******************************************************************************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 164 | |
dheerajmpai23 | 0:cb8104f3ae71 | 165 | void initiate(void){ |
dheerajmpai23 | 0:cb8104f3ae71 | 166 | |
dheerajmpai23 | 0:cb8104f3ae71 | 167 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 168 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 169 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 170 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 171 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 172 | |
dheerajmpai23 | 0:cb8104f3ae71 | 173 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 174 | adf.write(0x08); // TRANSMIT_DATA LENGTH |
dheerajmpai23 | 0:cb8104f3ae71 | 175 | adf.write(0x14); |
dheerajmpai23 | 0:cb8104f3ae71 | 176 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 177 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 178 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 179 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 180 | adf.write(0x08); // TRANSMIT_DATA LENGTH |
dheerajmpai23 | 0:cb8104f3ae71 | 181 | adf.write(0x15); |
dheerajmpai23 | 0:cb8104f3ae71 | 182 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 183 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 184 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 185 | |
dheerajmpai23 | 0:cb8104f3ae71 | 186 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 187 | adf.write(0x09); |
dheerajmpai23 | 0:cb8104f3ae71 | 188 | adf.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte) |
dheerajmpai23 | 0:cb8104f3ae71 | 189 | adf.write(0x20); |
dheerajmpai23 | 0:cb8104f3ae71 | 190 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 191 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 192 | |
dheerajmpai23 | 0:cb8104f3ae71 | 193 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 194 | adf.write(0x09); |
dheerajmpai23 | 0:cb8104f3ae71 | 195 | adf.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size |
dheerajmpai23 | 0:cb8104f3ae71 | 196 | adf.write(0xE0); |
dheerajmpai23 | 0:cb8104f3ae71 | 197 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 198 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 199 | |
dheerajmpai23 | 0:cb8104f3ae71 | 200 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 201 | adf.write(0x09); |
dheerajmpai23 | 0:cb8104f3ae71 | 202 | adf.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled |
dheerajmpai23 | 0:cb8104f3ae71 | 203 | adf.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given |
dheerajmpai23 | 0:cb8104f3ae71 | 204 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 205 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 206 | |
dheerajmpai23 | 0:cb8104f3ae71 | 207 | |
dheerajmpai23 | 0:cb8104f3ae71 | 208 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 209 | adf.write(0x09); |
dheerajmpai23 | 0:cb8104f3ae71 | 210 | adf.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled |
dheerajmpai23 | 0:cb8104f3ae71 | 211 | adf.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given |
dheerajmpai23 | 0:cb8104f3ae71 | 212 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 213 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 214 | |
dheerajmpai23 | 0:cb8104f3ae71 | 215 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 216 | |
dheerajmpai23 | 0:cb8104f3ae71 | 217 | |
dheerajmpai23 | 0:cb8104f3ae71 | 218 | |
dheerajmpai23 | 0:cb8104f3ae71 | 219 | /*int irq_src(void){ |
dheerajmpai23 | 0:cb8104f3ae71 | 220 | |
dheerajmpai23 | 0:cb8104f3ae71 | 221 | adf.write(0x2B); |
dheerajmpai23 | 0:cb8104f3ae71 | 222 | adf.write(0x36); |
dheerajmpai23 | 0:cb8104f3ae71 | 223 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 224 | irqsrc = adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 225 | |
dheerajmpai23 | 0:cb8104f3ae71 | 226 | irqsrc &= 0x60; |
dheerajmpai23 | 0:cb8104f3ae71 | 227 | if (irqsrc == 0x20) |
dheerajmpai23 | 0:cb8104f3ae71 | 228 | return 1;//Buffer is almost full |
dheerajmpai23 | 0:cb8104f3ae71 | 229 | else if (irqsrc == 0x40) |
dheerajmpai23 | 0:cb8104f3ae71 | 230 | return 2;// Buffer is Full |
dheerajmpai23 | 0:cb8104f3ae71 | 231 | else |
dheerajmpai23 | 0:cb8104f3ae71 | 232 | return 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 233 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 234 | */ |
dheerajmpai23 | 0:cb8104f3ae71 | 235 | int p=112; |
dheerajmpai23 | 0:cb8104f3ae71 | 236 | int count = 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 237 | int intcount =0; |
dheerajmpai23 | 3:5ce3971c1545 | 238 | int siz= sizeof(data); |
dheerajmpai23 | 0:cb8104f3ae71 | 239 | void write_data(void){ |
dheerajmpai23 | 0:cb8104f3ae71 | 240 | // t.reset(); |
dheerajmpai23 | 0:cb8104f3ae71 | 241 | // count++; |
dheerajmpai23 | 0:cb8104f3ae71 | 242 | // cout<<"3"<<ENDL; |
dheerajmpai23 | 0:cb8104f3ae71 | 243 | // ledr=!ledr; |
dheerajmpai23 | 0:cb8104f3ae71 | 244 | // cout<<"irq detected"<<ENDL; |
dheerajmpai23 | 0:cb8104f3ae71 | 245 | // src = irq_src(); |
dheerajmpai23 | 0:cb8104f3ae71 | 246 | p+=112; |
dheerajmpai23 | 0:cb8104f3ae71 | 247 | |
dheerajmpai23 | 0:cb8104f3ae71 | 248 | //CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 249 | // adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF |
dheerajmpai23 | 0:cb8104f3ae71 | 250 | // adf.write(0x36);//Address : 0x336 |
dheerajmpai23 | 0:cb8104f3ae71 | 251 | // adf.write(0xFF);//Put Low |
dheerajmpai23 | 0:cb8104f3ae71 | 252 | // CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 253 | // wait_us(80); |
dheerajmpai23 | 0:cb8104f3ae71 | 254 | // CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 255 | // k=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 256 | |
dheerajmpai23 | 0:cb8104f3ae71 | 257 | if(!j){ |
dheerajmpai23 | 0:cb8104f3ae71 | 258 | adf.write(0x18); |
dheerajmpai23 | 0:cb8104f3ae71 | 259 | adf.write(0x20); |
dheerajmpai23 | 0:cb8104f3ae71 | 260 | while(k<=223){ |
dheerajmpai23 | 0:cb8104f3ae71 | 261 | |
dheerajmpai23 | 0:cb8104f3ae71 | 262 | adf.write(data[k]); |
dheerajmpai23 | 0:cb8104f3ae71 | 263 | k++; |
dheerajmpai23 | 0:cb8104f3ae71 | 264 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 265 | |
dheerajmpai23 | 0:cb8104f3ae71 | 266 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 267 | |
dheerajmpai23 | 3:5ce3971c1545 | 268 | else if(k<siz){ |
dheerajmpai23 | 0:cb8104f3ae71 | 269 | // if(src == 1){ |
dheerajmpai23 | 0:cb8104f3ae71 | 270 | if(j%2){ //src== Buffer Half Full src == 1 |
dheerajmpai23 | 3:5ce3971c1545 | 271 | adf.write(0x18); |
dheerajmpai23 | 3:5ce3971c1545 | 272 | adf.write(0x20); |
dheerajmpai23 | 0:cb8104f3ae71 | 273 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 274 | |
dheerajmpai23 | 0:cb8104f3ae71 | 275 | // else if(src==2){ |
dheerajmpai23 | 3:5ce3971c1545 | 276 | else{ //src== Buffer is Full src==2 |
dheerajmpai23 | 3:5ce3971c1545 | 277 | adf.write(0x18); |
dheerajmpai23 | 3:5ce3971c1545 | 278 | adf.write(0x90); |
dheerajmpai23 | 0:cb8104f3ae71 | 279 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 280 | |
dheerajmpai23 | 0:cb8104f3ae71 | 281 | |
dheerajmpai23 | 0:cb8104f3ae71 | 282 | while(k<p){ |
dheerajmpai23 | 0:cb8104f3ae71 | 283 | adf.write(data[k]); |
dheerajmpai23 | 0:cb8104f3ae71 | 284 | k++; |
dheerajmpai23 | 0:cb8104f3ae71 | 285 | |
dheerajmpai23 | 0:cb8104f3ae71 | 286 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 287 | // if((k)>=sizeof(data)) |
dheerajmpai23 | 0:cb8104f3ae71 | 288 | // { |
dheerajmpai23 | 0:cb8104f3ae71 | 289 | // ticker.detach();//Stop interrupt detection |
dheerajmpai23 | 0:cb8104f3ae71 | 290 | // cout<<src<<ENDL; |
dheerajmpai23 | 0:cb8104f3ae71 | 291 | // } |
dheerajmpai23 | 0:cb8104f3ae71 | 292 | |
dheerajmpai23 | 0:cb8104f3ae71 | 293 | |
dheerajmpai23 | 0:cb8104f3ae71 | 294 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 295 | |
dheerajmpai23 | 3:5ce3971c1545 | 296 | else if(k>=siz ){ |
dheerajmpai23 | 0:cb8104f3ae71 | 297 | k=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 298 | j=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 299 | p=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 300 | // cout<<count<<" "<<sizeof(data)/112<<ENDL; |
dheerajmpai23 | 0:cb8104f3ae71 | 301 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 302 | |
dheerajmpai23 | 0:cb8104f3ae71 | 303 | |
dheerajmpai23 | 0:cb8104f3ae71 | 304 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 305 | adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF |
dheerajmpai23 | 0:cb8104f3ae71 | 306 | adf.write(0x36);//Address : 0x336 |
dheerajmpai23 | 0:cb8104f3ae71 | 307 | adf.write(0xFF);//Put Low |
dheerajmpai23 | 0:cb8104f3ae71 | 308 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 309 | wait_us(80); |
dheerajmpai23 | 1:9cd986151b11 | 310 | // CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 311 | |
dheerajmpai23 | 0:cb8104f3ae71 | 312 | // a[r]=t.read_us(); |
dheerajmpai23 | 0:cb8104f3ae71 | 313 | j++; |
dheerajmpai23 | 0:cb8104f3ae71 | 314 | // r++; |
dheerajmpai23 | 1:9cd986151b11 | 315 | // CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 316 | wait_us(1); |
dheerajmpai23 | 0:cb8104f3ae71 | 317 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 318 | |
dheerajmpai23 | 0:cb8104f3ae71 | 319 | void Interrupt(){ |
dheerajmpai23 | 0:cb8104f3ae71 | 320 | x = IRQ; |
dheerajmpai23 | 3:5ce3971c1545 | 321 | CS=0; |
dheerajmpai23 | 3:5ce3971c1545 | 322 | adf.write(0xFF); |
dheerajmpai23 | 3:5ce3971c1545 | 323 | adf.write(0xFF); |
dheerajmpai23 | 3:5ce3971c1545 | 324 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 325 | // intcount++; |
dheerajmpai23 | 0:cb8104f3ae71 | 326 | if(x) |
dheerajmpai23 | 0:cb8104f3ae71 | 327 | { |
dheerajmpai23 | 0:cb8104f3ae71 | 328 | write_data(); |
dheerajmpai23 | 0:cb8104f3ae71 | 329 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 330 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 331 | |
dheerajmpai23 | 0:cb8104f3ae71 | 332 | |
dheerajmpai23 | 0:cb8104f3ae71 | 333 | |
dheerajmpai23 | 0:cb8104f3ae71 | 334 | |
dheerajmpai23 | 0:cb8104f3ae71 | 335 | void send_data(void){ |
dheerajmpai23 | 0:cb8104f3ae71 | 336 | |
dheerajmpai23 | 0:cb8104f3ae71 | 337 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 338 | adf.write(CMD_CONFIG_DEV); |
dheerajmpai23 | 0:cb8104f3ae71 | 339 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 340 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 341 | |
dheerajmpai23 | 0:cb8104f3ae71 | 342 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 343 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 344 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 345 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 346 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 347 | |
dheerajmpai23 | 0:cb8104f3ae71 | 348 | write_data(); |
dheerajmpai23 | 0:cb8104f3ae71 | 349 | |
dheerajmpai23 | 0:cb8104f3ae71 | 350 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 351 | adf.write(0xB1); |
dheerajmpai23 | 0:cb8104f3ae71 | 352 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 353 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 354 | assrt_phy_on(0,0,0); |
dheerajmpai23 | 0:cb8104f3ae71 | 355 | |
dheerajmpai23 | 0:cb8104f3ae71 | 356 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 357 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 358 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 359 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 360 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 361 | |
dheerajmpai23 | 0:cb8104f3ae71 | 362 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 363 | adf.write(CMD_PHY_TX); |
dheerajmpai23 | 0:cb8104f3ae71 | 364 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 365 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 366 | assrt_phy_tx(0,0,0); |
dheerajmpai23 | 0:cb8104f3ae71 | 367 | |
dheerajmpai23 | 0:cb8104f3ae71 | 368 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 369 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 370 | adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 371 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 372 | wait_ms(2); |
dheerajmpai23 | 0:cb8104f3ae71 | 373 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 374 | /*******ADDITIONAL STUFF****************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 375 | unsigned char check_status(void){ |
dheerajmpai23 | 1:9cd986151b11 | 376 | unsigned char stat=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 377 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 378 | adf.write(0xFF); |
dheerajmpai23 | 1:9cd986151b11 | 379 | stat = adf.write(0xFF); |
dheerajmpai23 | 0:cb8104f3ae71 | 380 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 381 | return stat; |
dheerajmpai23 | 0:cb8104f3ae71 | 382 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 383 | /*****************************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 384 | bool assrt_phy_off(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ |
dheerajmpai23 | 0:cb8104f3ae71 | 385 | status=check_status(); |
dheerajmpai23 | 0:cb8104f3ae71 | 386 | if(status==0xB1){ |
dheerajmpai23 | 0:cb8104f3ae71 | 387 | return 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 388 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 389 | else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 390 | return 1;//You need to Reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 391 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 392 | else if(state_err_cnt>STATE_ERR_THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 393 | return 1;//Again reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 394 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 395 | else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. |
dheerajmpai23 | 0:cb8104f3ae71 | 396 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 397 | adf.write(CMD_PHY_OFF); //CMD_PHY_OFF=0xB0 |
dheerajmpai23 | 0:cb8104f3ae71 | 398 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 399 | wait_us(PHY_OFF_EXEC_TIME);// Typical = 24us We are giving 300us |
dheerajmpai23 | 0:cb8104f3ae71 | 400 | return assrt_phy_off(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); |
dheerajmpai23 | 0:cb8104f3ae71 | 401 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 402 | else if(status&0x80==0x00){ |
dheerajmpai23 | 0:cb8104f3ae71 | 403 | wait_ms(5); |
dheerajmpai23 | 0:cb8104f3ae71 | 404 | //Error: SPI=0 Not ready CMD= Dont care |
dheerajmpai23 | 0:cb8104f3ae71 | 405 | return assrt_phy_off(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 406 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 407 | else {//if(status&0xA0==0x80){ |
dheerajmpai23 | 0:cb8104f3ae71 | 408 | wait_ms(1); |
dheerajmpai23 | 0:cb8104f3ae71 | 409 | //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable |
dheerajmpai23 | 0:cb8104f3ae71 | 410 | return assrt_phy_off(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 411 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 412 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 413 | /*****************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 414 | bool assrt_phy_on(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ |
dheerajmpai23 | 0:cb8104f3ae71 | 415 | status=check_status(); |
dheerajmpai23 | 2:3ad3165e4d6c | 416 | if((status&0x1F)==0x12){ |
dheerajmpai23 | 0:cb8104f3ae71 | 417 | return 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 418 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 419 | else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 420 | return 1;//You need to Reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 421 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 422 | else if(state_err_cnt>STATE_ERR_THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 423 | return 1;//Again reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 424 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 425 | else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. |
dheerajmpai23 | 0:cb8104f3ae71 | 426 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 427 | adf.write(0xB1); //CMD_PHY_OFF |
dheerajmpai23 | 0:cb8104f3ae71 | 428 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 429 | wait_us(PHY_ON_EXEC_TIME);// Typical = 24us We are giving 300us |
dheerajmpai23 | 0:cb8104f3ae71 | 430 | return assrt_phy_on(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); |
dheerajmpai23 | 0:cb8104f3ae71 | 431 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 432 | else if(status&0x80==0x00){ |
dheerajmpai23 | 0:cb8104f3ae71 | 433 | wait_ms(5); |
dheerajmpai23 | 0:cb8104f3ae71 | 434 | //Error: SPI=0 Not ready CMD= Dont care |
dheerajmpai23 | 0:cb8104f3ae71 | 435 | return assrt_phy_on(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 436 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 437 | else if(status&0xA0==0x80){ |
dheerajmpai23 | 0:cb8104f3ae71 | 438 | wait_ms(1); |
dheerajmpai23 | 0:cb8104f3ae71 | 439 | //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable |
dheerajmpai23 | 0:cb8104f3ae71 | 440 | return assrt_phy_on(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 441 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 442 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 443 | /*****************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 444 | bool assrt_phy_tx(int cmd_err_cnt,int spi_err_cnt,int state_err_cnt){ |
dheerajmpai23 | 0:cb8104f3ae71 | 445 | status=check_status(); |
dheerajmpai23 | 3:5ce3971c1545 | 446 | if((status & 0x1F) == 0x14){ |
dheerajmpai23 | 0:cb8104f3ae71 | 447 | return 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 448 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 449 | else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 450 | return 1;//You need to Reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 451 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 452 | else if(state_err_cnt>STATE_ERR_THRS){ |
dheerajmpai23 | 0:cb8104f3ae71 | 453 | return 1;//Again reset the hardware |
dheerajmpai23 | 0:cb8104f3ae71 | 454 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 455 | else if((status&0xA0)==0xA0){ //If Status' first three bit ore 0b1X1 =>SPI ready, Dont care interrupt and CMD Ready. |
dheerajmpai23 | 0:cb8104f3ae71 | 456 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 457 | adf.write(0xB1); //CMD_PHY_OFF |
dheerajmpai23 | 0:cb8104f3ae71 | 458 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 459 | wait_us(PHY_TX_EXEC_TIME);// Typical = 24us We are giving 300us |
dheerajmpai23 | 0:cb8104f3ae71 | 460 | return assrt_phy_tx(cmd_err_cnt,spi_err_cnt,state_err_cnt+1); |
dheerajmpai23 | 0:cb8104f3ae71 | 461 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 462 | else if(status&0x80==0x00){ |
dheerajmpai23 | 0:cb8104f3ae71 | 463 | wait_ms(1); |
dheerajmpai23 | 0:cb8104f3ae71 | 464 | //Error: SPI=0 Not ready CMD= Dont care |
dheerajmpai23 | 0:cb8104f3ae71 | 465 | return assrt_phy_tx(cmd_err_cnt,spi_err_cnt+1,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 466 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 467 | else if(status&0xA0==0x80){ |
dheerajmpai23 | 0:cb8104f3ae71 | 468 | wait_us(50); |
dheerajmpai23 | 0:cb8104f3ae71 | 469 | //Error: Command Not ready SPI Ready cmd_err_cnt is a global variable |
dheerajmpai23 | 0:cb8104f3ae71 | 470 | return assrt_phy_tx(cmd_err_cnt+1,spi_err_cnt,state_err_cnt); |
dheerajmpai23 | 0:cb8104f3ae71 | 471 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 472 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 473 | |
dheerajmpai23 | 0:cb8104f3ae71 | 474 | /***************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 475 | bool hardware_reset(int bcn_call){ |
dheerajmpai23 | 0:cb8104f3ae71 | 476 | if (bcn_call>20){//Worst Case 20seconds will be lost ! |
dheerajmpai23 | 0:cb8104f3ae71 | 477 | return 1; |
dheerajmpai23 | 0:cb8104f3ae71 | 478 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 479 | int count=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 480 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 481 | adf.write(CMD_HW_RESET); |
dheerajmpai23 | 0:cb8104f3ae71 | 482 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 483 | wait_ms(2);// Typically 1 ms |
dheerajmpai23 | 1:9cd986151b11 | 484 | while(count<10 && miso_err_cnt<10){ |
dheerajmpai23 | 0:cb8104f3ae71 | 485 | if(MISO_PIN){ |
dheerajmpai23 | 0:cb8104f3ae71 | 486 | |
dheerajmpai23 | 0:cb8104f3ae71 | 487 | if(!assrt_phy_off(0,0,0)){ |
dheerajmpai23 | 0:cb8104f3ae71 | 488 | break; |
dheerajmpai23 | 0:cb8104f3ae71 | 489 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 490 | count++; |
dheerajmpai23 | 0:cb8104f3ae71 | 491 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 492 | else{ |
dheerajmpai23 | 0:cb8104f3ae71 | 493 | wait_us(50); |
dheerajmpai23 | 0:cb8104f3ae71 | 494 | miso_err_cnt++; |
dheerajmpai23 | 0:cb8104f3ae71 | 495 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 496 | } |
dheerajmpai23 | 1:9cd986151b11 | 497 | if(count==10 ||miso_err_cnt==10){ |
dheerajmpai23 | 0:cb8104f3ae71 | 498 | return hardware_reset(bcn_call+1); |
dheerajmpai23 | 0:cb8104f3ae71 | 499 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 500 | else |
dheerajmpai23 | 0:cb8104f3ae71 | 501 | return 0; |
dheerajmpai23 | 0:cb8104f3ae71 | 502 | |
dheerajmpai23 | 0:cb8104f3ae71 | 503 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 504 | |
dheerajmpai23 | 0:cb8104f3ae71 | 505 | |
dheerajmpai23 | 0:cb8104f3ae71 | 506 | /*******************************************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 507 | int main() |
dheerajmpai23 | 0:cb8104f3ae71 | 508 | { |
dheerajmpai23 | 0:cb8104f3ae71 | 509 | adf.format(8,0); |
dheerajmpai23 | 0:cb8104f3ae71 | 510 | adf.frequency(1000000); |
dheerajmpai23 | 0:cb8104f3ae71 | 511 | /**ADDED On 21/10/2015 ***/ |
dheerajmpai23 | 0:cb8104f3ae71 | 512 | /******************/ |
dheerajmpai23 | 0:cb8104f3ae71 | 513 | /***********/ |
dheerajmpai23 | 0:cb8104f3ae71 | 514 | bool state_0=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 515 | adf.write(CMD_PHY_OFF); //0xB0 |
dheerajmpai23 | 0:cb8104f3ae71 | 516 | while(hw_reset_err_cnt<2){ |
dheerajmpai23 | 0:cb8104f3ae71 | 517 | |
dheerajmpai23 | 0:cb8104f3ae71 | 518 | if(!assrt_phy_off(0,0,0)){ //assrt_phy_off () returns 0 if state is PHY_OFF , returns 1 if couldn't go to PHY_OFF |
dheerajmpai23 | 0:cb8104f3ae71 | 519 | bbram_write(); |
dheerajmpai23 | 0:cb8104f3ae71 | 520 | bbram_flag=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 521 | break; |
dheerajmpai23 | 0:cb8104f3ae71 | 522 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 523 | else{ |
dheerajmpai23 | 0:cb8104f3ae71 | 524 | hardware_reset(0); // Asserts Hardware for 20sec(20times). PHY_OFF for 20,000 times |
dheerajmpai23 | 1:9cd986151b11 | 525 | hw_reset_err_cnt++; |
dheerajmpai23 | 0:cb8104f3ae71 | 526 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 527 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 528 | state_0=assrt_phy_off(0,0,0);// We actually do not need this but make sure "we do not need this" |
dheerajmpai23 | 0:cb8104f3ae71 | 529 | if(!bbram_flag){ |
dheerajmpai23 | 0:cb8104f3ae71 | 530 | //Switch to beacon |
dheerajmpai23 | 0:cb8104f3ae71 | 531 | bcn_flag=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 532 | } |
dheerajmpai23 | 0:cb8104f3ae71 | 533 | initiate(); |
dheerajmpai23 | 0:cb8104f3ae71 | 534 | send_data(); |
dheerajmpai23 | 0:cb8104f3ae71 | 535 | cout<<"Work"<<ENDL; |
dheerajmpai23 | 0:cb8104f3ae71 | 536 | CS=0; |
dheerajmpai23 | 0:cb8104f3ae71 | 537 | adf.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF |
dheerajmpai23 | 0:cb8104f3ae71 | 538 | adf.write(0x36);//Address : 0x336 |
dheerajmpai23 | 0:cb8104f3ae71 | 539 | adf.write(0xFF);//Put Low Clearing the MCR Value of the Source Register |
dheerajmpai23 | 0:cb8104f3ae71 | 540 | CS=1; |
dheerajmpai23 | 0:cb8104f3ae71 | 541 | |
dheerajmpai23 | 3:5ce3971c1545 | 542 | ticker.attach_us(&Interrupt,3200); |
dheerajmpai23 | 3:5ce3971c1545 | 543 | } |