Dependencies:   mbed

Committer:
michelebavaro
Date:
Tue Jan 25 11:26:16 2011 +0000
Revision:
0:be1765e9885e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
michelebavaro 0:be1765e9885e 1 #include "mbed.h"
michelebavaro 0:be1765e9885e 2 #include "max2769tw.h"
michelebavaro 0:be1765e9885e 3 #include "max2769ssp0.h"
michelebavaro 0:be1765e9885e 4
michelebavaro 0:be1765e9885e 5 DigitalOut myled1(LED1);
michelebavaro 0:be1765e9885e 6 DigitalOut myled2(LED2);
michelebavaro 0:be1765e9885e 7 DigitalOut myled3(LED3);
michelebavaro 0:be1765e9885e 8 DigitalOut myled4(LED4);
michelebavaro 0:be1765e9885e 9
michelebavaro 0:be1765e9885e 10 #define N_BYTES (16*1024)
michelebavaro 0:be1765e9885e 11 #define N_XFER (N_BYTES / sizeof(uint16_t))
michelebavaro 0:be1765e9885e 12
michelebavaro 0:be1765e9885e 13 Serial pc(USBTX, USBRX);
michelebavaro 0:be1765e9885e 14
michelebavaro 0:be1765e9885e 15 MAX2769TW spiGpsCtl(p24, p25, p26); // data, clock, chip select
michelebavaro 0:be1765e9885e 16
michelebavaro 0:be1765e9885e 17 MAX2769SSP0 spiGpsAdc(p11, p13, p14); // data, clock, frame
michelebavaro 0:be1765e9885e 18
michelebavaro 0:be1765e9885e 19 const unsigned int gpsConfRegArray[10] =
michelebavaro 0:be1765e9885e 20 {0x82938E30,
michelebavaro 0:be1765e9885e 21 0x85500081,
michelebavaro 0:be1765e9885e 22 0xEAFE8062,
michelebavaro 0:be1765e9885e 23 0x9AC00003,
michelebavaro 0:be1765e9885e 24 0x00780084,
michelebavaro 0:be1765e9885e 25 0x87D3E705,
michelebavaro 0:be1765e9885e 26 0x00010006,
michelebavaro 0:be1765e9885e 27 0x10061B17,
michelebavaro 0:be1765e9885e 28 0x1E0F4018,
michelebavaro 0:be1765e9885e 29 0x14C04029};
michelebavaro 0:be1765e9885e 30
michelebavaro 0:be1765e9885e 31
michelebavaro 0:be1765e9885e 32 int main() {
michelebavaro 0:be1765e9885e 33 int k;
michelebavaro 0:be1765e9885e 34 uint16_t *ptMem16;
michelebavaro 0:be1765e9885e 35
michelebavaro 0:be1765e9885e 36 pc.baud(115200);
michelebavaro 0:be1765e9885e 37
michelebavaro 0:be1765e9885e 38 myled1 = myled2 = myled3 = myled4 = 1;
michelebavaro 0:be1765e9885e 39 wait(1);
michelebavaro 0:be1765e9885e 40 myled1 = myled2 = myled3 = myled4 = 1;
michelebavaro 0:be1765e9885e 41
michelebavaro 0:be1765e9885e 42 //
michelebavaro 0:be1765e9885e 43 // PROGRAM THE MAX2769
michelebavaro 0:be1765e9885e 44 //
michelebavaro 0:be1765e9885e 45 myled2 = 1;
michelebavaro 0:be1765e9885e 46 for (k=0; k<10; k++) {
michelebavaro 0:be1765e9885e 47 myled1 = 1;
michelebavaro 0:be1765e9885e 48 spiGpsCtl.SendReg(gpsConfRegArray[k]);
michelebavaro 0:be1765e9885e 49 myled1 = 0;
michelebavaro 0:be1765e9885e 50 }
michelebavaro 0:be1765e9885e 51 myled2 = 0;
michelebavaro 0:be1765e9885e 52
michelebavaro 0:be1765e9885e 53 //
michelebavaro 0:be1765e9885e 54 // GET THE DATA SNAPSHOT FROM THE GPS FRONT-END
michelebavaro 0:be1765e9885e 55 //
michelebavaro 0:be1765e9885e 56 ptMem16 = (uint16_t*) malloc(N_BYTES);
michelebavaro 0:be1765e9885e 57 if (NULL != ptMem16) {
michelebavaro 0:be1765e9885e 58 // Write in memory, probably need DMA later
michelebavaro 0:be1765e9885e 59 myled3 = 1;
michelebavaro 0:be1765e9885e 60 memset(ptMem16, 0, N_BYTES);
michelebavaro 0:be1765e9885e 61 spiGpsAdc.Read(ptMem16, N_XFER);
michelebavaro 0:be1765e9885e 62 myled3 = 0;
michelebavaro 0:be1765e9885e 63 }
michelebavaro 0:be1765e9885e 64
michelebavaro 0:be1765e9885e 65 //
michelebavaro 0:be1765e9885e 66 // SEND SOME DEBUG DATA TO THE SERIAL PORT
michelebavaro 0:be1765e9885e 67 //
michelebavaro 0:be1765e9885e 68 if (NULL != ptMem16) {
michelebavaro 0:be1765e9885e 69 k = 0;
michelebavaro 0:be1765e9885e 70 while (k < N_XFER) {
michelebavaro 0:be1765e9885e 71 myled2 = 1;
michelebavaro 0:be1765e9885e 72 pc.printf("%04x:%04x%04x%04x%04x%04x%04x%04x%04x\n",
michelebavaro 0:be1765e9885e 73 k*sizeof(uint16_t),
michelebavaro 0:be1765e9885e 74 ptMem16[k+ 0], ptMem16[k+ 1], ptMem16[k+ 2], ptMem16[k+ 3],
michelebavaro 0:be1765e9885e 75 ptMem16[k+ 4], ptMem16[k+ 5], ptMem16[k+ 6], ptMem16[k+ 7] );
michelebavaro 0:be1765e9885e 76 k += 8;
michelebavaro 0:be1765e9885e 77 myled2 = 0;
michelebavaro 0:be1765e9885e 78 }
michelebavaro 0:be1765e9885e 79 }
michelebavaro 0:be1765e9885e 80
michelebavaro 0:be1765e9885e 81 // Free the allocated memory
michelebavaro 0:be1765e9885e 82 if (NULL != ptMem16) {
michelebavaro 0:be1765e9885e 83 free(ptMem16);
michelebavaro 0:be1765e9885e 84 ptMem16 = NULL;
michelebavaro 0:be1765e9885e 85 }
michelebavaro 0:be1765e9885e 86
michelebavaro 0:be1765e9885e 87 // Go idle
michelebavaro 0:be1765e9885e 88 while (1) {
michelebavaro 0:be1765e9885e 89 myled4 = 1;
michelebavaro 0:be1765e9885e 90 wait(1);
michelebavaro 0:be1765e9885e 91 myled4 = 0;
michelebavaro 0:be1765e9885e 92 wait(1);
michelebavaro 0:be1765e9885e 93 }
michelebavaro 0:be1765e9885e 94 }
michelebavaro 0:be1765e9885e 95