|
#include typedef unsigned char BYTE; #define AT_baud_divider 3 #define AT_uart_transmit_enable() sbi(UCSR1B, TXEN) void init_ports(void); // ports initialization int main(void) //uart_init(); // loop test return 1; void uart_init(void) // Enable receiver and transmitter
E-mail:
info@telesys.ru
#define AT_uart_transmit_disable() cbi(UCSR1B, TXEN)
#define AT_uart_receive_enable() sbi(UCSR1B, RXEN)
#define AT_uart_receive_disable() cbi(UCSR1B, RXEN)
void uart_init(void); // UART initialization
void AT_uart_transmit(BYTE data);
{
// init_ports();
sbi(DDRC, 0); // start/stop-relay control pin, setting as output
sbi(DDRC, 1); // analog signal-relay control pin, setting as output
sbi(DDRA, 0); // DAC ~sync pin, setting as output
outp((BYTE)(PC_baud_divider>>8), UBRR0H);
outp((BYTE)(PC_baud_divider), UBRR0L);
outp((BYTE)(AT_baud_divider>>8), UBRR1H);
outp((BYTE)(AT_baud_divider), UBRR1L);
AT_uart_receive_enable();
AT_uart_transmit_enable();
BYTE temp=0;
outp(0xFF, DDRA); for(;;)
{
temp++;
outp(temp, PORTA);
}
}
void init_ports(void)
{
sbi(DDRC, 0); // start/stop-relay control pin, setting as output
sbi(DDRC, 1); // analog signal-relay control pin, setting as output
sbi(DDRA, 0); // DAC ~sync pin, setting as output
}
{
// setting baud rate
outp((BYTE)(AT_baud_divider>>8), UBRR1H);
outp((BYTE)(AT_baud_divider), UBRR1L);
AT_uart_receive_enable();
AT_uart_transmit_enable();
}
void AT_uart_transmit(BYTE data)
{
// Wait for empty transmit buffer
while bit_is_clear(UCSR1A, UDRE) {};
cbi(UCSR1A, TXC1);
// put byte into buffer
outp(data, UDR1);
}
Ответы