avr-gcc, pony, 7.373mhz
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bp 12 июля 2004 г. 13:38
В ответ на: каким компилятором пользуешься? что делаешь с кристаллом и если ничего не помжет - исходники в студию :). отправлено Max_Fly 12 июля 2004 г. 13:33

#include

typedef unsigned char BYTE;

#define AT_baud_divider 3

#define AT_uart_transmit_enable() sbi(UCSR1B, TXEN)
#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 init_ports(void); // ports initialization
void uart_init(void); // UART initialization
void AT_uart_transmit(BYTE data);

int main(void)
{
// 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

//uart_init();
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();

// loop test
BYTE temp=0;
outp(0xFF, DDRA); for(;;)
{
temp++;
outp(temp, PORTA);
}

return 1;
}


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
}

void uart_init(void)
{
// setting baud rate
outp((BYTE)(AT_baud_divider>>8), UBRR1H);
outp((BYTE)(AT_baud_divider), UBRR1L);

// Enable receiver and transmitter
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);
}



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru