Esempio n. 1
0
INT main (void)
{
	vInitPipe();
	
	USART_Init ( 9600 );
	vSetPendingTask(vServoL);

	sei();
	USART_Transmit_string((unsigned char*)"*:SERVO_READY:#");

  while(TRUE){
	  vDispathTask();
  }

}
Esempio n. 2
0
INT main (void)
{
	LED_1_ON
	LED_2_ON
	LED_3_ON

	USART_Init ( 9600 );
	sei();

	USART_Transmit_string((unsigned char*)"Probna transmisja\n");

//	USART_Transmit(USART_Receive());

//	USART_Transmit_string((unsigned char*)"TEST\n");
	while(1);
}
Esempio n. 3
0
int main(void)
{
    /* insert your hardware initialization here */
    InitPeripherals();
    
#ifdef MASTER
    USART USART_CHANNEL;
    USART_CHANNEL.USART_BAUDRATE = 9600;
    USART_CHANNEL.USART_RECEIVER_STATUS = RECEIVER_ENABLE;
    USART_CHANNEL.USART_TRANSMITTER_STATUS = TRANSMITTER_ENABLE;
    USART_CHANNEL.USART_STOP_BIT = 1;
    USART_CHANNEL.USART_PARITY = PARITY_EVEN;
    
    USART_Init(USART_CHANNEL);
    
    clear(TCCR1B, CS12);
    clear(TCCR1B, CS11);
    set(TCCR1B, CS10);  // prescalar is 1
    
    set(TCCR1B, WGM13);
    set(TCCR1B, WGM12);
    set(TCCR1A, WGM11);
    clear(TCCR1A, WGM10);
    
    set(TCCR1A, COM1A1);
    set(TCCR1A, COM1A0);
    
    set(DDRB, 1);
    
    ICR1 = (int)(8000000/500000) - 1;
    
    OCR1A = (int)((float)ICR1 * 0.5);   // common minus output 500KHz signals
    
    set(DDRD, 5);
    set(PORTD, 5);    // COIL3 PLUS on
    
//    unsigned long frequency = 500000;
//    float duty_cycle = 0.5;
//    unsigned int pulse_number = 3;
//    init_coil(frequency, duty_cycle, pulse_number);
//    
//    COIL3_PLUS_ON;
//    
//    drive_coil_communication();

    sei();
    
#endif
    
#ifdef SLAVE
//    unsigned long frequency = 500000;
//    float duty_cycle = 0.5;
//    unsigned int pulse_number = 3;
//    init_coil(frequency, duty_cycle, pulse_number);
//    COIL1_MINUS_ON;
    set(DDRD, 4);
    set(PORTD, 4);  // COIL2_MINUS on

    set(DDRD, 1);
    set(PORTD, 1);  // USART TX is high


    set(DDRB, 3);
    set(PORTB, 3);    // turn on receiver
#endif
    
    m_green(ON);m_yellow(ON);m_blue(ON);
    m_wait(1000);
    m_green(OFF);m_yellow(OFF);m_blue(OFF);
    m_wait(2000);
    for(;;){
        /* insert your main loop code here */
#ifdef MASTER
        set(PORTD, 5);
        USART_Transmit_string("MODLAB!\n\r");
        clear(PORTD, 5);
        m_wait(1000);
#endif
#ifdef SLAVE
        m_blue(TOGGLE);
#endif
    }
    return 0;   /* never reached */
}
Esempio n. 4
0
int main(void)
{
    BL_OUTPUT;
//    DS_OUTPUT;
    BL_ON;

    GLCD_Initalize(); // Initalize LCD
    GLCD_ClearText(); // Clear text area
    GLCD_ClearCG(); // Clear character generator area
    GLCD_ClearGraphic(); // Clear graphic area

    GLCD_TextGoTo(0,0);// set text coordinates
    GLCD_WriteString("Hello"); // write text
    GLCD_Circle(32,32,20); // draw circle
    GLCD_Rectangle(8,8,24, 48); // draw rectangle
//    GLCD_FillRectangle(0, 0, 96, 8);

    USART_Init(MYUBRR);
    USART_Transmit_string("Hi\n");

    LED_OUTPUT;
    BLINK3;
    GLCD_ClearText();
    GLCD_TextGoTo(0,0);// set text coordinates

    ADCSRA = 0b10000111;

    data_flag=0;


    sei();
    uint16_t T = 0;
    uint8_t i;
    while(1)
    {
      if (data_flag == 1)
      {
          //BLINK00; // Heh nasty error when it is here, if 'g' followed by newline comes, because it rewrites data here :D
          if (data == 't')
          {
              T = DS_get(6);
              GLCD_TextGoTo(0,0);

              i = (uint8_t)(T>>8);
              USART_Transmit_num(i);
              GLCD_WriteChar(i/10 + '0');
              GLCD_WriteChar(i%10 + '0');

              USART_Transmit('.');
              GLCD_WriteChar('.');

              i = (uint8_t)(T);
              USART_Transmit_num(i);
              GLCD_WriteChar(i/10 + '0');
              GLCD_WriteChar(i%10 + '0');

              USART_Transmit('C');
              GLCD_WriteChar('C');

              USART_Transmit('\n');
          }

          if (data == 'g')
          {
              ADMUX = 0x00;
              sbi(ADCSRA, ADSC);
              while (qbi(ADCSRA, ADSC))
                  ;
              uint16_t val = ADC;
              GLCD_TextGoTo(0,0);

          }
          data_flag=0;
      }
    }