Subversion Repositories NaviCtrl

Rev

Rev 149 | Rev 154 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 149 Rev 150
Line 65... Line 65...
65
#include "led.h"
65
#include "led.h"
66
#include "spi_slave.h"
66
#include "spi_slave.h"
Line 67... Line 67...
67
 
67
 
-
 
68
 
Line 68... Line 69...
68
 
69
volatile I2C_State_t I2C_State = I2C_OFF;
69
volatile I2C_State_t I2C_State = I2C_OFF;
70
u8 I2C_StopPolling = 1;
70
 
71
 
71
// rxbuffer
72
// rxbuffer
Line 89... Line 90...
89
 
90
 
90
#define I2C1_TIMEOUT 500 // 500 ms
91
#define I2C1_TIMEOUT 500 // 500 ms
91
volatile u32 I2C1_Timeout = 0;
92
volatile u32 I2C1_Timeout = 0;
Line 92... Line -...
92
volatile u8 I2C_PrimRxBuffer[10]; // must be larger than any of the secondary rx buffers
-
 
93
 
93
volatile u8 I2C_PrimRxBuffer[10]; // must be larger than any of the secondary rx buffers
94
 
94
 
95
//--------------------------------------------------------------
95
//--------------------------------------------------------------
96
void I2C1_Init(void)
96
void I2C1_Init(void)
97
{
97
{
Line 465... Line 465...
465
void I2C1_GetMK3MagVersion(void)
465
void I2C1_GetMK3MagVersion(void)
466
{
466
{
467
        u8 msg[64];
467
        u8 msg[64];
468
        u8 repeat = 20;
468
        u8 repeat = 20;
469
        u32 timeout;
469
        u32 timeout;
-
 
470
       
-
 
471
        I2C_StopPolling = 1;
Line 470... Line 472...
470
 
472
 
471
        MK3MAG_Version.Major = 0xFF;
473
        MK3MAG_Version.Major = 0xFF;
472
        MK3MAG_Version.Minor = 0xFF;
474
        MK3MAG_Version.Minor = 0xFF;
473
        MK3MAG_Version.Patch = 0xFF;
475
        MK3MAG_Version.Patch = 0xFF;
474
        MK3MAG_Version.Compatible = 0xFF;
-
 
-
 
476
        MK3MAG_Version.Compatible = 0xFF;
475
 
477
        // polling of version info
476
        while ((MK3MAG_Version.Major == 0xFF)  && (repeat != 0))
478
        while ((MK3MAG_Version.Major == 0xFF)  && (repeat != 0))
477
        {
479
        {
478
                I2C1_SendCommand(I2C_CMD_VERSION);
480
                I2C1_SendCommand(I2C_CMD_VERSION);
479
                timeout = SetDelay(200);
481
                timeout = SetDelay(500);
480
                while (!CheckDelay(timeout)) if (MK3MAG_Version.Major != 0xFF) break;
482
                while (!CheckDelay(timeout)) if (MK3MAG_Version.Major != 0xFF) break;
481
                repeat--;
483
                repeat--;
Line 482... Line 484...
482
        }
484
        }
Line 487... Line 489...
487
                UART1_PutString(msg);
489
                UART1_PutString(msg);
488
                sprintf(msg, " Compatible: %d", MK3MAG_Version.Compatible);
490
                sprintf(msg, " Compatible: %d", MK3MAG_Version.Compatible);
489
                UART1_PutString(msg);
491
                UART1_PutString(msg);
490
        }
492
        }
491
        else UART1_PutString("\n\rNo version information from MK3Mag.");
493
        else UART1_PutString("\n\rNo version information from MK3Mag.");
-
 
494
 
-
 
495
        I2C_StopPolling = 0; // enable polling of heading
492
}
496
}
Line 493... Line 497...
493
 
497
 
494
 
498
 
495
//----------------------------------------------------------------
499
//----------------------------------------------------------------
496
void I2C1_UpdateCompass(void)
500
void I2C1_UpdateCompass(void)
Line 497... Line 501...
497
{
501
{
Line 498... Line 502...
498
        static u32 TimerCompassUpdate = 0;
502
        static u32 TimerCompassUpdate = 0;
499
 
503
 
500
        if(I2C_State == I2C_OFF) return;
504
        if((I2C_State == I2C_OFF) || (I2C_StopPolling)) return;
501
       
505