/* Initialize timer module */ void timer_init(void) { timer_overflow_count = 0; // Reset overflow counter //TOI_ENABLE; // Enable TCNT overflow interrupt SET_TCNT_PRESCALE(TCNT_PRESCALE_8); // Set timer prescaler SET_BITS(TSCR1,TSCR1_INIT); // Set timer operation modes and enable timer }
void main(void) { /* put your own code here */ SET_TCNT_PRESCALE( TCNT_PRESCALE_8); TSCR1 = TSCR1_INIT; seg_init(); CANinit(THE_FLOOR); SET_BITS(LED_DDR, LED1_MASK|LED2_MASK); node_id = PORTB & 3; //get hardware specified node id while (!(CANCTL0&0x10)); CANRFLG = 0xC3; CANRIER = 0x01; InitializeQueue(&rec); // Create the Recieve Queue clear_seg(); EnableInterrupts; for(;;) { if(IsQueueEmpty(rec) != 0) { DeQueue(&rec); Parse_Floor(); } // button 1 press if((PTJ & (SWITCH1_MASK |SWITCH2_MASK) )== SWITCH1_MASK) { if(THE_FLOOR == F1 || THE_FLOOR == F2) { if (last != SWITCH1_MASK) { // check if button already pressed data[0] = THE_FLOOR; data[1] = CALL_SWITCH1; data[2] = UP; (void)CANSend(CONTROLLER, 0x00, 0x00, DATA_LENGTH, data); last = SWITCH1_MASK; } } else if(THE_FLOOR == F3) { if (last != SWITCH1_MASK) { // check if button already pressed data[0] = THE_FLOOR; data[1] = CALL_SWITCH1; data[2] = DOWN; (void)CANSend(CONTROLLER, 0x00, 0x00, DATA_LENGTH, data); last = SWITCH1_MASK; } } } //button 2 press else if((PTJ & (SWITCH1_MASK |SWITCH2_MASK) )== SWITCH2_MASK) { if(THE_FLOOR == F2) { if (last != SWITCH2_MASK) { // check if button already pressed data[0] = THE_FLOOR; data[1] = CALL_SWITCH2; data[2] = DOWN; CANSend(CONTROLLER, 0x00, 0x00, DATA_LENGTH, data); last = SWITCH2_MASK; } } } else last = 0; // Updates the LED FORCE_BITS(PTS,0b00001100 , led) ; } /* loop forever */ /* please make sure that you never leave main */ }