Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.10.2011, 17:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Atmega8+COM-порт
Приветствую всех. Пытаюсь разобраться с атмегой, хочу настроить взаимодействие с ПК через ком-порт. Простенький код прерывается по окончанию приема по USART и отсылает принятое обратно. com0com используется для тестирования. Отправляю терминалом символ - получаю в ответ кучу FF (иногда 80), в протеусе ошибка - [AVR USART] Rx frame error. Перебирал разные скорости, разные тактовые частоты - что-то ничего не выходит =(
В чем проблема и как пофиксить? Код, проект протеуса и прошивки прилагаю.
Код:
|
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹avr/signal.h›
void USART_Transmit( unsigned char data );
ISR(USART_RXC_vect)
{
int b;
b = UDR;
USART_Transmit(b);
}
void USART_Transmit( unsigned char data )
{
while ( !(UCSRA & (1‹‹UDRE)) );
UDR = data;
}
int main(void)
{
// USART initialization
// Communication Parameters: 8 Data, 2 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 4800
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x8E;
UBRRH=0x00;
UBRRL=0x33;
DDRB = 0xFF;
sei();
while(1)
{
}//
} |
Последний раз редактировалось Ara41; 07.10.2011 в 19:16.
|
|
|
|
07.10.2011, 17:40
|
|
Частый гость
Регистрация: 23.08.2007
Сообщений: 27
Сказал спасибо: 1
Сказали Спасибо 28 раз(а) в 13 сообщении(ях)
|
Re: Atmega8+COM-порт
b почему int??? char должен быть
|
|
|
|
07.10.2011, 17:46
|
|
Прописка
Регистрация: 07.03.2009
Адрес: MN
Сообщений: 168
Сказал спасибо: 6
Сказали Спасибо 31 раз(а) в 21 сообщении(ях)
|
Re: Atmega8+COM-порт
Сделайте сначала, чтобы программа после старта сама отправляла 1 байт по USART и посмотрите на графиках в протеусе, что там выходит.
__________________
- Квадрат - это тоже прямоугольник, только более квадратный и не такой вытянутый
- Двуугольник - это треугольник, только поломанный
- Одноугольника не видел
|
|
|
|
07.10.2011, 20:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Atmega8+COM-порт
вот, отправка одного байта от МК
|
|
|
|
08.10.2011, 20:17
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: Atmega8+COM-порт
Virtual terminal пробовали?
|
|
|
|
08.10.2011, 20:22
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: Atmega8+COM-порт
Сообщение от Ara41
|
// Communication Parameters: 8 Data, 2 Stop, No Parity
|
2 Stop по каким соображениям? Как комп настроен?
|
|
|
|
08.10.2011, 20:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Atmega8+COM-порт
2 стоп из соображений, что всё уже перепробывал Видимо, это был последний из вариантов. Виртуал терминал пробовал, кажет аналогично terminal.
А что значит "как комп настроен"?
|
|
|
|
08.10.2011, 23:20
|
|
Частый гость
Регистрация: 07.07.2004
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Atmega8+COM-порт
а зачем включено прерывание передача завершена? попробуй его отключить для начала
|
|
|
|
09.10.2011, 04:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Atmega8+COM-порт
Господа, просьба давать более развернутые ответы, хотя бы на несколько слов. Ведь если бы я был гуру АВР - я бы не задавал этот простенький для вас вопрос?
Если речь идет про обработку ISR(USART_RXC_vect) - то это обработка "прием завершен", а не передача. Программка тестовая, цель - осуществить устойчивое взаимодействие с ПК в обе стороны. Потом прикручу проверку ЦРЦ, будет простенький протокол передачи данных.
Отключил прерывания - ничего не изменилось.
|
|
|
|
09.10.2011, 09:01
|
|
Гражданин KAZUS.RU
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
|
Re: Atmega8+COM-порт
А какой у вас кварц стоит ?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Взаимозаменяемы ли ATmega8 и Attiny2313
|
rusentu |
Микроконтроллеры, АЦП, память и т.д |
17 |
21.08.2010 18:41 |
ATMega8 VS USB
|
SkyProc |
Микроконтроллеры, АЦП, память и т.д |
28 |
28.04.2010 17:01 |
Передача данных с ATmega8 на COM порт ПК
|
sergx1300 |
Микроконтроллеры, АЦП, память и т.д |
32 |
20.04.2010 14:19 |
Порт С в ATmega8
|
VVKart |
Микроконтроллеры, АЦП, память и т.д |
2 |
10.11.2009 14:08 |
Atmega 16 не работает кнопка через порт PC4 ?
|
uriy-ch |
Микроконтроллеры, АЦП, память и т.д |
16 |
14.01.2009 21:42 |
Часовой пояс GMT +4, время: 10:22.
|
|