Example #1
0
void print_packet(uint8_t* rx_buffer) {
  uint8_t length = rx_buffer[0] - 3;
  uart_newline();
  uart_sendstr_p(PSTR("Data Length: "));
  utoa(length, (char *)msg_buf, 10);
  uart_sendstr((char *)msg_buf);
  uart_newline();

  uart_sendstr_p(PSTR("Dec\tHex\tChr"));
  uart_newline();

  uint8_t i;
  for (i = 1; i <= length; i++) {
    utoa(rx_buffer[i], (char *)msg_buf, 10);
    uart_sendstr((char *)msg_buf);
    uart_sendchar('\t');

    utoa(rx_buffer[i], (char *)msg_buf, 16);
    uart_sendstr((char *)msg_buf);
    uart_sendchar('\t');

    uart_sendchar(rx_buffer[i]);
    uart_newline();
  }
  uart_newline();
}
Example #2
0
void bios(void) {
  uart_start();
  pwm_setup(2);
  adc_start(1);
  twi_start();

  //button code
  init_buttons();

  //set the CPU_POW led pin to high to show we have power
  DDRD |= (1<<CPU_POW);
  PORTD |= (1<<CPU_POW);

  //set the status leds as outputs
  DDRD |= (1<<stat_led1);
  DDRD |= (1<<stat_led2);

  //if this is my dev board, pull them low because the leds are cathode
  #if DEV
    PORTD &= ~(1<<stat_led1)
          & ~(1<<stat_led2);
  #endif

  #if DEBUG
    uart_sendstr("0x01 - Hardware setup successful...");
    uart_sendstr("Bios complete...");
    uart_sendstr("Starting main code...");
  #endif
  return;
}
Example #3
0
void print_bits(uint16_t* bits) {
  utoa(((*bits) & 0x3f) << 4, (char *)msg_buf, 2);
  uart_sendstr((char *)msg_buf);
  uart_sendchar(' ');
  utoa((*bits) >> 6, (char *)msg_buf, 2);
  uart_sendstr((char *)msg_buf);
  uart_newline();
}
int main(void) { //Main loop, runs once but can have an infinit loop in it
    cli();
    /*
    First we need to set the hardaware up, this is a macro in global.h which takes care of calling the various funtions that
    setup the registers to the proper seting, and also pulls the CPU_POW pin high
    if debug in GLOBAL.h is set, then debug keys will be sent out through the serial port
    when this function is called
    */
    bios();
    //if we're in debug mode, make sure you send stuff saying we got to the main code
    #if DEBUG
        uart_sendint(MAIN_KEY);
        #if DEBUG_BEG
            uart_sendstr("0x6 - Main code checkpoint...");
        #endif
    #endif

    sei();

    init_out('D', 5);
    //infinit loop that doesn't stop running. (always true since 1 is always 1 )
    while(1) {
        pwm1A(led);
    };
    return 0; //never reached since 1 is always true
}
Example #5
0
File: main.c Project: bgbock/rdmp
 int main (void)
  {
  init_hw();
  LCD_init();
  SR_DAT_IN;
  while (1)
  	{
	uart_sendchar('A');
	uart_sendstr("0123456789abcdef");
 // 	dly_ms(40);
  	if (rcvd_flag)
  		{
  		rcvd_flag=0;
  		uart_sendstr("R:");
  		if (f_gsm_ok)
  			{
  			f_gsm_ok=0;
  			uart_sendstr("G_OK");
  			}
  		if (f_gsm_nc)
  			{
  			f_gsm_nc=0;
  			uart_sendstr("G_NC");
  			}
  		if (f_gsm_cr)
  			{
  			f_gsm_cr=0;
  			uart_sendstr("G_CR");
  			}
  		if (f_gsm_ring)
  			{
  			f_gsm_ring=0;
  			uart_sendstr("G_RI");
  			}
  		uart_sendstr("\r\n");
  		}


  	keys = read_keys();

  	if (keys==0x01) 		update_lcd("K1");
  	else if (keys==0x02) 	update_lcd("K2");
  	else if (keys==0x04) 	update_lcd("K3");
  	else if (keys==0x08) 	update_lcd("K4");
  	else if (keys==0x10) 	update_lcd("K5");
  	else if (keys==0x20) 	update_lcd("K6");
  	else if (keys==0x40) 	update_lcd("K7");
  	else if (keys==0x00) 	update_lcd("0123456789ABCDEF");
  	else update_lcd("Kx");
/*
	if (keys_handling(&key))
		{
		keys = key;
		}
*/
  	}
  }
Example #6
0
void terminalmode(unsigned char chr_nl)
{
	signed char i;
	// Init terminal
	uart_sendstr_p(terminal_init);
	//
	uart_sendstr_P("AvrUsb500-1.4 terminal mode\r\n");
	uart_sendstr_P("Enter SW Version Major [");
	utoa(CONFIG_PARAM_SW_MAJOR,(char *)msg_buf, 10);
	uart_sendstr((char *)msg_buf);
	uart_sendstr_P("]: ");
	i=terminalmode_readnum(chr_nl);
	if (i >=0){
		CONFIG_PARAM_SW_MAJOR=(unsigned char)i;
	}
	terminalmode_next_line();
	uart_sendstr_P("Enter SW Version Minor [");
	utoa(CONFIG_PARAM_SW_MINOR,(char *)msg_buf, 10);
	uart_sendstr((char *)msg_buf);
	uart_sendstr_P("]: ");
	i=terminalmode_readnum(chr_nl);
	if (i >=0){
		CONFIG_PARAM_SW_MINOR=(unsigned char)i;
	}
	terminalmode_next_line();
	eeprom_write_byte(EEPROM_MINOR, CONFIG_PARAM_SW_MINOR);
	eeprom_write_byte(EEPROM_MAJOR, CONFIG_PARAM_SW_MAJOR);
	eeprom_write_byte(EEPROM_MAGIC, 20);// magic number=data is valid
	uart_sendstr_P("\r\nOK, my SW version is now: ");
	utoa(CONFIG_PARAM_SW_MAJOR,(char *)msg_buf, 10);
	uart_sendstr((char *)msg_buf);
	uart_sendchar('.');
	if (CONFIG_PARAM_SW_MINOR < 10){
		uart_sendchar('0');
	}
	utoa(CONFIG_PARAM_SW_MINOR,(char *)msg_buf, 10);
	uart_sendstr((char *)msg_buf);
	uart_sendstr_P("\r\n");
	uart_sendstr_P("Ready. Just close the terminal. No reset needed.\r\n");
}
Example #7
0
File: main.c Project: bgbock/rdmp
  int main (void)
  {
  init_hw();
  LCD_init();
  keys_init();
  number_pointer = 0;
  number[number_pointer] = 0;
  main_substate = 0;
  //main_state = STATE_IDLE;
  main_state = STATE_INIT;
  //main_substate = 2;
  while (1)
  	{
//  	dly_ms(NORMAL_CYCLE_MS);
  	if (main_state==STATE_INIT)
  		{
  		f_gsm_ok = 0;
  		if (main_substate==0)
  			{
  	  		update_lcd("Init...");
  			uart_sendstr("AT\r\nAT\r\n");
  			main_state=STATE_INIT_W;
  			}
  		if (main_substate==1)
  			{
  	  		if (number_pointer>0)
  	  			update_lcd(number);
  	  		else
  	  			update_lcd("PIN?");
			if (keys_handling(&key))
				{
				if (key<10)
					{
					number[number_pointer++] = key + '0';
					number[number_pointer]=0;
					}
				if (key==KEY_YES)
					{
					f_gsm_ok = 0;
					main_state=STATE_WFCALL;
					uart_sendstr("AT+CPIN=");
					uart_sendstr(number);
					uart_sendstr("\r\n");
					main_state=STATE_INIT_W;
					update_lcd("PIN...");
					number_pointer = 0;
					number[number_pointer] = 0;
					}
				if (key==KEY_NO)
					{
					number_pointer = 0;
					number[number_pointer] = 0;
					}
				}
  			}
  		if (main_substate==2)
  			{
  			update_lcd("PIN OK");
  			uart_sendstr("AT+CLVL=100\r\n");
  			main_state=STATE_INIT_W;
  			}
  		if (main_substate==3)
  			{
  			update_lcd("S1 OK");
  			uart_sendstr("AT+CALM=0\r\n");
  			main_state=STATE_INIT_W;
  			}
  		if (main_substate==4)
  			{
  			update_lcd("S2 OK");
  			uart_sendstr("AT+IPR=38400\r\n");
  			main_state=STATE_INIT_W;
  			}
  		if (main_substate==5)
  			{
  			update_lcd("Network...");
  			if (f_gsm_cr)
  				main_state = STATE_IDLE;
  			}
  		}

  	if (main_state==STATE_INIT_W)
  		{
  		if (f_gsm_ok==1)
  			{
  			f_gsm_ok = 0;
  			main_state=STATE_INIT;
  			main_substate++;
  			}
  		}

  	if (main_state==STATE_IDLE)
  		{
  		if (f_gsm_ring)
  			{
  			f_gsm_ring=0;
  			main_state=STATE_WFINCALL;
  			}
  		if (number_pointer>0)
  			update_lcd(number);
  		else
  			update_lcd("Ready");
  		if (keys_handling(&key))
  			{
  			if (key<10)
  				{
  				number[number_pointer++] = key + '0';
  				number[number_pointer]=0;
  				}
  			if (key==KEY_YES)
  				{
  				f_gsm_ok = 0;
  				main_state=STATE_WFCALL;
  				uart_sendstr("ATD");
  				uart_sendstr(number);
  				uart_sendstr(";\r\n");
  				}
  			if (key==KEY_NO)
  				{
  				number_pointer = 0;
  				number[number_pointer] = 0;
  				}
  			}
  		}

  	if (main_state==STATE_WFCALL)
  		{
  		update_lcd("Wait");
		if (f_gsm_ok==1)
  			{
  			f_gsm_ok = 0;
  			main_state=STATE_CALLING;
  			}
  		}

  	if (main_state==STATE_CALLING)
  		{
  		update_lcd("Calling");
  		if (f_gsm_nc)
  			{
  			f_gsm_nc = 0;
  			main_state=STATE_IDLE;
  			}
  		if (keys_handling(&key))
  			{
  			if (key==KEY_YES)
  				{
  				}
  			if (key==KEY_NO)
  				{
  				f_gsm_ok = 0;
  				uart_sendstr("ATH\r\n");
  				main_state=STATE_WFECALL;
  				}
  			}
  		}
  	if (main_state==STATE_WFECALL)
  		{
  		update_lcd("Ending");
  		if (f_gsm_ok==1)
  			{
  			f_gsm_ok = 0;
  			main_state=STATE_IDLE;
  			}
  		}

  	if (main_state==STATE_WFINCALL)
  		{
  		update_lcd("RING");
  		if (f_gsm_nc)
  			{
  			f_gsm_nc = 0;
                          f_gsm_ring = 0;
  			main_state=STATE_IDLE;
  			}
  		if (keys_handling(&key))
  			{
  			if (key==KEY_YES)
  				{
  				f_gsm_ok = 0;
  				uart_sendstr("ATA\r\n");
  				main_state=STATE_WFAINCALL;
  				}
  			if (key==KEY_NO)
  				{
  				f_gsm_ok = 0;
  				uart_sendstr("ATH\r\n");
  				main_state=STATE_WFEINCALL;
  				}
  			}
  		}

  	if (main_state==STATE_WFEINCALL)
  		{
  		update_lcd("Ending");
  		if (f_gsm_ok==1)
  			{
  			f_gsm_ok = 0;
  			main_state=STATE_IDLE;
  			}
  		}

  	if (main_state==STATE_WFAINCALL)
  		{
  		update_lcd("Wait");
  		if (f_gsm_ok==1)
  			{
  			f_gsm_ok = 0;
  			main_state=STATE_INCALL;
  			}
  		}

  	if (main_state==STATE_INCALL)
  		{
  		update_lcd("Incall");
  		if (f_gsm_nc)
  			{
  			f_gsm_nc = 0;
  			main_state=STATE_IDLE;
  			}
  		if (keys_handling(&key))
  			{
  			if (key==KEY_NO)
  				{
  				f_gsm_ok = 0;
                                  f_gsm_ring = 0;
  				uart_sendstr("ATH\r\n");
  				main_state=STATE_WFEINCALL;
  				}
  			}
  		}
  	}
  }