реклама на сайте
подробности

 
 
> Atmega32+UART
nvk
сообщение Nov 21 2011, 09:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 22-07-11
Пользователь №: 66 352



Добрый день!

Пытаюсь с контроллера отправить на терминал компьютера фразу "Hello world!", но ничего не получается. Переходник TTL-RS232 проверял перемычкой на TX и RX - символы нормально приходят на терминал. Скорость - 9600, частота кварца - 8МГц.
Вот исходный код программы:

#include <avr/io.h>
#include <util/delay.h>

void USART_Transmit(char *data)
{
/* Wait for empty transmit buffer */
while (!( UCSRA & (1<<UDRE)));
/* Put data into buffer, sends the data */
int i,s;
s = strlen(data);
for(i=0;i<s;i++)
UDR = data[i];
}

void main(void)
{
int i;
/* Set baud rate */
UBRRH = (unsigned char)(51>>8);
UBRRL = (unsigned char)51;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<URSEL)|(3<<UCSZ0);
//Десять раз пытаемся отправить фразу
for(i=1;i<11;i++) {
USART_Transmit("HELLO, WORLD!");
_delay_ms(100); }
}

Заранее спасибо за помощь!

Сообщение отредактировал nvk - Nov 21 2011, 09:36
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 22)
Genadi Zawidowsk...
сообщение Nov 21 2011, 18:58
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



[attachment=62781:ts.zip]
Код
UCSRB = 0x19

Вы решили передавать девятибитные символы? Хотя это на формат не влияет, но если мы ищем проблему среди двух проводов, постарайтесь точнее следовать советам.
Отработайте с той инициализацией, что Вам предложили (0x18).
В аттачменте - терминалка игнорирующая все сигналы готовности.
Вход в настройки (и хелп) - alt+f3

Проверка преобразователя - сажаете RESET процессора на землю и соединив вход с выходом преобразователя накоротко, смотрите эхо символов в терминалке.
Питание 3.3 или 5 вольт? Преобразователь уровней питается в соответствии со своим паспортным напряжением?

Ваша программа рабочая. Добавив include для strlen, получил .hex, который прошил в имеющийся макет - работает.
Проект в аттачменте.
зы: Вас не затруднит привести состояние фюзов (тот экран, что перчатает AVREAL в процессе программирования)?

Сообщение отредактировал Genadi Zawidowski - Nov 21 2011, 19:18
Go to the top of the page
 
+Quote Post
nvk
сообщение Nov 22 2011, 14:28
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 22-07-11
Пользователь №: 66 352



Преобразователь я уже проверял - символы нормально приходят. Питание преобразователя - 5В. Попробовал поставить UCSRB = 0x18, эффекта всё равно нет. Кстати, Algoritm Builder сформировал для 8 бит данных значение UCSRB = 0x19.
В прилагаемом файле скриншот фьюзов.

Сообщение отредактировал IgorKossak - Nov 22 2011, 14:31
Причина редактирования: Бездумное цитирование

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 22 2011, 17:39
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(nvk @ Nov 22 2011, 18:28) *
В прилагаемом файле скриншот фьюзов.

В Пони: "галка" - это ноль (запрограммировано), нет "галки" - единица!
Go to the top of the page
 
+Quote Post
nvk
сообщение Nov 22 2011, 18:25
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 22-07-11
Пользователь №: 66 352



Цитата(Палыч @ Nov 23 2011, 00:39) *
В Пони: "галка" - это ноль (запрограммировано), нет "галки" - единица!


Как правильно поставить галки?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Nov 23 2011, 16:52
Сообщение #20


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Может помочь файл с фюзами для внутреннего генератора 8 МГц.
Для кварца CKSEL=0xf прменить вместо того, что стоит сейчас.
Аналогично для понипрога - все четыре бита CKSELx на предложенной картинке снять галочки.
У Вас на 1 МГц процессор работает.
Выставьте по моей картинке фюзы для начала.

Сообщение отредактировал Genadi Zawidowski - Nov 23 2011, 16:57
Go to the top of the page
 
+Quote Post
nvk
сообщение Nov 23 2011, 19:00
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 22-07-11
Пользователь №: 66 352



С такими настройками работает. Не установил только бит BODEN.

Подключил внешний резонатор на 8МГц - не работает. Опять фьюзы неправильно установлены?

Сообщение отредактировал nvk - Nov 24 2011, 04:37
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
nvk
сообщение Nov 24 2011, 05:12
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 22-07-11
Пользователь №: 66 352



Цитата(nvk @ Nov 24 2011, 02:00) *
Подключил внешний резонатор на 8МГц - не работает. Опять фьюзы неправильно установлены?


Заработало. Установил СКОРТ=0.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Nov 24 2011, 20:31
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(nvk @ Nov 24 2011, 09:12) *
Заработало. Установил СКОРТ=0.

Интересно просто, сутки прошли с момента моего сообщения с фюзами. Сперва сделали не так, чтобы потом продолжать мучаться...
Я рад что всё заработало.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016