[ create a new paste ] login | about

Link: http://codepad.org/UnBTdTYE    [ raw code | fork ]

krokodandi - C++, pasted on Nov 13:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>


#define F_CPU 7372800UL
#include <util/delay.h>
#define BAUDRATE 9600
#define BAUD_PRESCALLER (((F_CPU/(BAUDRATE * 16UL)))-1) //47
#define buffer_MAX 8

volatile uint8_t data;
volatile uint8_t  index_pointer = 0;
volatile uint8_t Massive_buff[] = {"ABCD"};
	
uint8_t init_uart()
{
	/*Init Usart */
	
	UCSR0A=(0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);             
	UCSR0B=(0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (1<<RXEN0) | (0<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80);  //(0<<UDRIE0) = off
	UCSR0C=(0<<UMSEL0) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) /*| (0<<UCSZ01)*/ | (3<<UCSZ00) | (0<<UCPOL0);              
    UBRR0H = (uint8_t)(BAUD_PRESCALLER>>8);
    UBRR0L = (uint8_t)(BAUD_PRESCALLER);
	DDRE &=~(1<<0); //Rx
	DDRE |=(1<<1);  //Tx
	return 0;
}

	void Transmit(uint8_t) 
	{
	while(!(UCSR0A & (1<<UDRE0)));
	UDR0 = (data);
	if (!(0 == UDRE0))
	   {
		_delay_ms(150);
	   }
	else
	    {
		++index_pointer;
		}
	DDRE |=(1<<3);
	PORTE &=(1<<3);
	}

	
int main(void)
{
	init_uart();
   	UCSR0B |= (1<<TXEN0);
	while(1)
	{
		Transmit(Massive_buff[index_pointer]);
		DDRE |=(1<<4);
		PORTE ^=(1<<4);
	}
	return 0;
}


Create a new paste based on this one


Comments: