CodeVision AVR в вопросах и ответах
Добрый день! Подскажите пожалуйста вечем может быть проблема, не как не могу переда на компьютер информацию?
Вместо цифр контроллер мне присылает (ЂЂЂЂЂЂЂЂЂЂЂЂ), в чём может быть проблема?
Код: Выделить всё
#include <mega8>
#include <delay>
#include <stdio>
void main(void)
{
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
PORTD=0x00;
DDRD=0xFF;
while (1)
{
printf("15975:");
PORTD.2=1;
delay_ms(50);
PORTD.2=0;
delay_ms(50);
};
Вместо цифр контроллер мне присылает (ЂЂЂЂЂЂЂЂЂЂЂЂ), в чём может быть проблема?
Sounds писал(а):Добрый день!
...
Вместо цифр контроллер мне присылает (ЂЂЂЂЂЂЂЂЂЂЂЂ), в чём может быть проблема?
Скорее всего в несоотвествии настроек формата кадра (байт, старт стоп. биты четность) и/или скорости передачи. В частности вы настроили передачу восьмого бита (см. описание регистра UCSRB), с учетом того, что нумерация бит начинается с 0 у вас передается старт бит, девять информационных бит, четность, стоп бит.
Также хотелось бы знать от чего тактируется контроллер - если от внутр. RC генератора, то может быть имеет место рассогласование битовых скоростей передачи/приема.
Совет: на первое время откажитесь от проверки четности и настройте передатчик контроллера так, чтобы он передавал 2 стоп-бита.
Sounds писал(а):To smac
Спасибо за ответ!
Тактируется от внутреннего RC генератора.
Посмотри правильно ли я понимаю, должны быть?
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x8E;
UBRRH=0x00;
UBRRL=0x33
Вроде так, но форма записи меня просто накаляет, приучайтесь писать таким образом
UCSRB=(1<<TXEN)|(1<<RXEN) и
UCSRC=(1<<USBS)|(1<< UCSZ1)|(1<< UCSZ0) а не числовые значения.
Во вторых если у вас внутренний РС генератор, частота которого неточна, то есть шанс, что при одинаково настроенных скоростях реальная битовая скорость у вас будет отличаться достаточно, для неправильного приема символа.
След. совет: попробуйте обмен на низкой скорости (4,8 кбит/с или 1,2 кбит/с). Если не поможет, выкладывайте код, может кто-нибудь что подскажет.
И еще для использования УАРТА готовтесь переходить на кварцевый резонатор или подстраивать каким-либо образом частоту внутреннего генератора.
Sounds писал(а):У меня есть кварц на 8 Mгц, только я не как не могу понять как прошить фьюзы для него?
Если можно покажите на картинки, а то я эти фьюзы не как понять не могу.
В заранее спасибо за помощь!
Тут я вам не помошник, я CV не пользуюсь, соотвественно скриншов сделать не могу. Могу посоветовать обратиться к даташиту. Установка фьюзов, особенно связанных с тактированием требует внимательного отношения.
Вот я и боюсь похерить МК=(
Сейчас Мк у меня запрограммирован на 8Мгц внутреннего RC генератора.
Вот поседел поэкспериментировал, и вот какая интересная штука получается.
Прошивка МК настроена:
19200, 8 Data, 1 Stop, No Parity
Программа HyperTerminal настроена:
19200, 8 Data, 1 Stop, No Parity
Результат:
Данные приходят, но не пойми в каком виде.
----------
Прошивка МК настроена:
19200, 8 Data, 1 Stop, No Parity
Программа HyperTerminal настроена:
2400, 8 Data, 1 Stop, No Parity
Результат:
Данные приходят в нормальном виде
Это так и должно быть, или это какой-то глюк?
Может это быть из-за встроенного RC генератора?
Помогите пожалуйста выставить фьюзы на внешний кварцевый резонатор на 8Мгц.
В заранее спасибо!!!
Сейчас Мк у меня запрограммирован на 8Мгц внутреннего RC генератора.
Вот поседел поэкспериментировал, и вот какая интересная штука получается.
Прошивка МК настроена:
19200, 8 Data, 1 Stop, No Parity
Программа HyperTerminal настроена:
19200, 8 Data, 1 Stop, No Parity
Результат:
Данные приходят, но не пойми в каком виде.
----------
Прошивка МК настроена:
19200, 8 Data, 1 Stop, No Parity
Программа HyperTerminal настроена:
2400, 8 Data, 1 Stop, No Parity
Результат:
Данные приходят в нормальном виде
Это так и должно быть, или это какой-то глюк?
Может это быть из-за встроенного RC генератора?
Помогите пожалуйста выставить фьюзы на внешний кварцевый резонатор на 8Мгц.
В заранее спасибо!!!
Sounds писал(а):...
Это так и должно быть, или это какой-то глюк?
Может это быть из-за встроенного RC генератора?
Помогите пожалуйста выставить фьюзы на внешний кварцевый резонатор на 8Мгц.
В заранее спасибо!!!
скорее всего тактовая частота у вас не 8 МГц а 1, в результате контроллер работает в 8 раз меделенне чем вы ожидаете. Либо вы указали др. тактовую частоту в свойствах проекта, и у вас неправильно рассчитано значение UBRR.
Подскажите на внешний кварц на 8Мгц фьюзы я правильно выставил?
CKSEL 1
CKSEL 1
CKSEL 1
CKSEL 1
SUT 0
SUT 1
CKOPT 1

CKSEL 1
CKSEL 1
CKSEL 1
CKSEL 1
SUT 0
SUT 1
CKOPT 1

- Вложения
-
- 1.jpg
- (55.85 КБ) 524 скачивания
Sounds писал(а):Подскажите на внешний кварц на 8Мгц фьюзы я правильно выставил?
Не знаю как интерпретирует ваш программатор 1 (запрограммировано или нет) но в вашем случае фьюз биты лучше настроить так:
CKSEL3..1 -можно оставить незапрограммированными или выставить 101, 110, где 0 значит - запрограммирован, 1- незапрограммирован
CKSEL0 - оставить незапрограммированными
CKOPT - запрограммировать
SUT1 - не запрограммирован
SUT0 - запрограммирован
Остальные фьюзы пока не трогайте
-
сахар
- Встал на лапы
- Сообщения: 142
- Зарегистрирован: Пт дек 05, 2008 18:19:27
- Откуда: Кривой Рог Украина
Всем доброй ночки,помогите советом,у меня проблема с CVAVR-AVR910-ATINY2313,проблема в следуещем,пдключаю тиньку к программатору,зашиваю нех,фьюзы не трогаю(заводские),после заливки пытаюсь прочитать-не может войти в режим программирования,и так с 3 мя тиньками из разных источников,а с 4й вооще шок,вставляю,читаю фьюзы-нормально,опять читаю-не может войти в режим программирования,с 5ти шт удалось прошить только одну,а вставляю мегу8- проблем нет,читаеться,шьется,стирается.Кто знает че это может быть,у когото было подобное?