Пример #1
0
/* 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
}
Пример #2
0
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 */
}