Esempio n. 1
0
int main(void) {
	uint8_t buf;

	usart_init(9600);

	sei();

	usart_transmit_char_block('\r');
	usart_transmit_char_block('\n');
	usart_transmit_char_block('B');

	usart_transmit((uint8_t *)"\r\nSTRING\r\n", 10);

	buf = 'K';
	usart_transmit(&buf, 1);
	usart_transmit(&buf, 1);
	usart_transmit(&buf, 1);
	usart_transmit_char('I');
	buf = '\r';
	usart_transmit(&buf, 1);
	usart_transmit_char('\n');
	/*usart_transmit_block('I');*/
	/*usart_transmit_block('L');*/
	/*usart_transmit_block('L');*/

	/* And the rest is handled by interrupts. */
	for (;;);
}
Esempio n. 2
0
void bt_init( void )
{
	uint8_t num_baudrates = sizeof(baudrates)/sizeof(uint32_t);
	uint8_t i = 0;
	int16_t received;

	/* first set BT module AT mode pin */
	io_on( HC05_CMD_PORT, HC05_CMD_PIN);
	/* now wait 100ms */
	delay(100);

	/* iterate through baudrates */
	do
	{
		usart_config_baudrate( baudrates[i]);
		usart_flush();
		/* send AT command */
		usart_transmit( (uint8_t *)BTCMD_AT, BTCMD_AT_LEN);
		/* wait for response */
		received = usart_receive( response_buffer, 4, RESPONSE_TIMEOUT);

		/* we found a valid answer */
		if( received > 0)
		{
			break;
		}
		i++;
	}while(i < num_baudrates);

	if( i > 0)
	{
		/* module seems to be configured for default -> reprogram */
		usart_transmit( (uint8_t *)BTCMD_SET_NAME, BTCMD_SET_NAME_LEN);
		received = usart_receive( response_buffer, RESPONSE_LENGTH, RESPONSE_TIMEOUT);
		/* module seems to be configured for default -> reprogram */
		usart_transmit( (uint8_t *)BTCMD_SET_PW, BTCMD_SET_PW_LEN);
		received = usart_receive( response_buffer, RESPONSE_LENGTH, RESPONSE_TIMEOUT);
		/* module seems to be configured for default -> reprogram */
		usart_transmit( (uint8_t *)BTCMD_SET_BAUD, BTCMD_SET_BAUD_LEN);
		received = usart_receive( response_buffer, RESPONSE_LENGTH, RESPONSE_TIMEOUT);
	}


	/* send reset */
	usart_transmit( (uint8_t *)BTCMD_RESET, BTCMD_RESET_LEN);
	received = usart_receive( response_buffer, RESPONSE_LENGTH, RESPONSE_TIMEOUT);
	/* leave AT mode */
	io_off( HC05_CMD_PORT, HC05_CMD_PIN);
	/* wait a bit */
	delay( 100);
	usart_config_baudrate( baudrates[0]);
	usart_flush();

	bt_ready = 1;

}
Esempio n. 3
0
int _write(int file, char *ptr, int len)
{
	int i;
	char *p = ptr;
	switch (file) {
		case STDOUT_FILENO:
			for (i = 0; i < len; i++) {
				if (*p == '\n')
					usart_transmit(USART1, (uint8_t)'\r');
				usart_transmit(USART1, (uint8_t)*(p++));
			}
			break;
		default:
			break;
	}
	return i;
}
Esempio n. 4
0
/* Function called by printf to send data to created stream */
int stream_printf(unsigned char var, FILE *stream) {
    if (var == '\n') 
    {
        stream_printf('\r', 0);                 // Translate \n to \r for terminal
    }

    usart_transmit(var);                        // Transmit data
    
    return 0;
}
Esempio n. 5
0
void SetupCC1020PD(void)
{
    uint8_t x;
    char bufff[100];

    // Put CC1020 into power-down
    WriteToCC1020Register(CC1020_MAIN,0x1F);

    x = ReadFromCC1020Register(CC1020_MAIN);

    sprintf(bufff,"Wake up complete : %d a\r\n",x);
    usart_transmit(bufff);

    // Turn off PA to minimise current draw
    WriteToCC1020Register(CC1020_PA_POWER,0x00);
}
Esempio n. 6
0
void WriteToCC1020Register(unsigned char addr, unsigned char data)
{
    cbi(PORTB,SS_bar); // Clear SS_bar to enable slave
    char array1[25];
    unsigned char dummy;
    dummy=SPDR;

    SPDR=(addr<<1)|0x01; // Write address to CC1020, left shift,write bit is always 1

    // Wait until data is written
    while (! (SPSR & (1<<SPIF)));
    if(WCOL==1)
    {
        sprintf(array1,"\nCollision detected!!!");
        usart_transmit(array1);
    }

    dummy=SPDR;
    SPDR=data;

    while (! (SPSR & (1<<SPIF)));
    //PORTD |=0x01;
    sbi(PORTB,SS_bar); //PSEL must be made high for atleast 50ns after each read/write operation
}
Esempio n. 7
0
void rs485_transmit(uint8_t data) {
    rs485_switch_transmitter(ON);
    usart_transmit(data);
    rs485_switch_transmitter(OFF);
}
Esempio n. 8
0
void ctrl_send_state(char state)
{
	usart_init();
	usart_transmit(state);
}
Esempio n. 9
0
/* Transmit the given data over the serial port */
void transmit_data(unsigned char *data) {
    while (*data) {                             // Loop through and transmit entire string
        usart_transmit(*data);
        data++;
    }
}