Subversion Repositories HomeAutomation

Rev

Rev 483 | Rev 493 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 483 Rev 486
Line 42... Line 42...
42
#define STATUS_SEND_PERIOD  10000UL /* milliseconds */
42
#define STATUS_SEND_PERIOD  10000UL /* milliseconds */
43
#define FAILSAFE_SEND_PERIOD    10000UL /* milliseconds */
43
#define FAILSAFE_SEND_PERIOD    10000UL /* milliseconds */
44
#define BOUNCE_TIME         10 /* milliseconds */
44
#define BOUNCE_TIME         10 /* milliseconds */
45
#define BUTTON1             1
45
#define BUTTON1             1
46
#define BUTTON2             2
46
#define BUTTON2             2
-
 
47
 
-
 
48
#define APP_TYPE    CAN_APPTYPES_RELAY
-
 
49
#define APP_VERSION 0x0001
47
 
50
 
48
/*-------------------------------------------------------------------------
51
/*-------------------------------------------------------------------------
49
 * Global variables
52
 * Global variables
50
 * -----------------------------------------------------------------------*/
53
 * -----------------------------------------------------------------------*/
51
uint8_t relayStatus, failsafe_flag = 0;
54
uint8_t relayStatus, failsafe_flag = 0;
Line 55... Line 58...
55
volatile uint8_t rxMsgFull;   // Synchronization flag
58
volatile uint8_t rxMsgFull;   // Synchronization flag
56
 
59
 
57
 
60
 
58
/*----------------------------------------------------------------------------
61
/*----------------------------------------------------------------------------
59
 * Functions
62
 * Functions
60
 * -------------------------------------------------------------------------*/
63
 * -------------------------------------------------------------------------*/
61
uint8_t relayOff();
64
uint8_t relayOff();
62
uint8_t relayOn();
65
uint8_t relayOn();
63
void relayFailsafe();
66
void relayFailsafe();
64
void sendStatus();
67
void sendStatus();
65
 
68
 
Line 68... Line 71...
68
    if (!rxMsgFull) {
71
    if (!rxMsgFull) {
69
        memcpy((void*)&rxMsg, msg, sizeof(rxMsg));
72
        memcpy((void*)&rxMsg, msg, sizeof(rxMsg));
70
        rxMsgFull = 1;
73
        rxMsgFull = 1;
71
    }
74
    }
72
}
75
}
73
 
76
 
74
/*----------------------------------------------------------------------------
77
/*----------------------------------------------------------------------------
75
 * Interrupt routines // FIXME ordna och testa tryckknappar/rotary encoder
78
 * Interrupt routines // FIXME ordna och testa tryckknappar/rotary encoder
76
 * -------------------------------------------------------------------------*/
79
 * -------------------------------------------------------------------------*/
77
#if TWO_BUTTON_MODE
80
#if TWO_BUTTON_MODE
78
ISR( PCINT2_vect )
81
ISR( PCINT2_vect )
Line 87... Line 90...
87
int main(void) {
90
int main(void) {
88
 
91
 
89
    uint32_t timeStamp = Timebase_CurrentTime(), temp = timeStamp;
92
    uint32_t timeStamp = Timebase_CurrentTime(), temp = timeStamp;
90
 
93
 
91
    adcTemperatureInit();
94
    adcTemperatureInit();
92
 
95
 
93
    // Set up callback for CAN messages
96
    // Set up callback for CAN messages
94
    BIOS_CanCallback = &can_receive;
97
    BIOS_CanCallback = &can_receive;
95
 
98
 
96
    sei();
99
    sei();
97
   
100
   
98
    Timebase_Init();
101
    Timebase_Init();
-
 
102
 
-
 
103
    Can_Message_t txMsg;
-
 
104
    txMsg.Id = (CAN_NMT_APP_START << CAN_SHIFT_NMT_TYPE) | (NODE_ID << CAN_SHIFT_NMT_SID);
-
 
105
    txMsg.DataLength = 4;
-
 
106
    txMsg.RemoteFlag = 0;
-
 
107
    txMsg.ExtendedFlag = 1;
-
 
108
    txMsg.Data.words[0] = APP_TYPE;
-
 
109
    txMsg.Data.words[1] = APP_VERSION;
-
 
110
    BIOS_CanSend(&txMsg);
99
 
111
 
100
    // Turn relay off
112
    // Turn relay off
101
    relayStatus = relayOff();
113
    relayStatus = relayOff();
102
 
114
 
103
    // Main loop
115
    // Main loop