Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
05.05.2010, 15:16
|
|
Прохожий
Регистрация: 26.04.2010
Сообщений: 3
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
UART в AVR
Хочется понять как в авр контролерах (в общем) реализовать прием-передачу даных по UART.
и конкретно:
Нужно из программы контроллера выводить, например, сервисные сообщения в "virtual terminal" протеуса.
желательно код на си....
подскажите пожалуйста..все перерыл но толком мало что понял..мне бы на простейшем примере...
|
|
|
|
05.05.2010, 15:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: UART в AVR
UART AVR для начинающих с нуля - proavr.narod.ru/z5.htm
и proavr.narod.ru/z4.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
05.05.2010, 17:33
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: UART в AVR
Например так :
Код:
|
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#if !defined (__AVR_ATmega16__)
#error __AVR_ATmega16__ not defined !
#endif
#if !defined (F_CPU)
#define F_CPU 11059200
#endif
#define RAMSTART 0x0060
#define RAMSIZE (RAMEND-RAMSTART)
#define sleep()
// --------------
// --- USART0 ---
// --------------
void USART0_Transmit(unsigned char data)
{
while (!(UCSRA & (1‹‹UDRE))) sleep();
UDR = data;
}
void USART0_TransmitString(char *data)
{
while (*data) USART0_Transmit(*data++);
}
void USART0_Init(void)
{
// USART0 settings: 57600 baud 8-n-1
UBRRH = 0;
UBRRL = 11;
UCSRB = (1‹‹TXEN);
UCSRC = (1‹‹URSEL) | (1‹‹UCSZ1) | (1‹‹UCSZ0);
}
// --------------
// --- main() ---
// --------------
int main()
{
USART0_Init();
sei(); // enable interrupts
// sample code for USART0
for (;;)
{
USART0_TransmitString("Hello word!\r\n");
}
for (;;) sleep();
return 0;
} |
Для протеуса смотри в файле :
UART Atmega16 11.0592MHz.rar
|
|
|
Сказали "Спасибо" CodeNameHawk
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:30.
|
|