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

 
 
 
Reply to this topicStart new topic
> mega8 ...USART...люди добжи поможите))
vesel
сообщение Apr 21 2008, 02:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



начал с нее родимой (мега8) знакомится с атмегой ....
суть проблемы:
инитил порт и как в апах написано и из чужих примеров... не хочет принимать ничего и все туть ((
передавать передает а принимать не хочет ....
USART0_Init();
for(;;)
{

if (USART0_Receive()==0) PORTC &=~_BV(PD5); // это я для проверки ...
delay_ms(300);
if (USART0_Receive()!=0) PORTC |=_BV(PD5);
delay_ms(300);
USART0_Transmit(USART0_Receive()); ///ето из примера ...хотел попробовать ...
}
инициализацию пробовал и из примеров и CodeVisionвскую из мастера ...нифига...
тупо заставлял слать в ББ(большого брата - комп) символы ...все ок...
а принимать ничего не хочет...хотя осциллом смотрю что на RX вход сигналы сыплются ((
где грабли ? может лыжи не едуть ?

пробовал и так : if UDR == 0 ....дрыгнуть лапкой\диодом....дрыгает гат...нет там ничего ...(((
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Apr 21 2008, 03:29
Сообщение #2


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



UCSRC = _BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0); //выбор регистра и количества битов в посылке
UBRRL = 51; //выбор скорости 9600 при 8МГц

на прием


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
vesel
сообщение Apr 21 2008, 04:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



у меня кварчик на 12 многогерц стоит... попробовал счас так ..не прошло ((

хмм.... поймать сигнал он поймал ....диодик моргнул ...но вот обратно на сенд не идет (( эхо не работает ...
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Apr 21 2008, 04:28
Сообщение #4


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
у меня кварчик на 12 многогерц стоит... попробовал счас так ..не прошло ((

конечно, у меня на 8. И скорость 9600, у вас какая скорость?
на странице 159 даташита есть таблица, там выберете UBRR в зависимости от кварца.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 21 2008, 06:39
Сообщение #5


Гуру
******

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



Цитата(vesel @ Apr 21 2008, 05:38) *
...тупо заставлял слать в ББ(большого брата - комп) символы ...все ок...а принимать ничего не хочет...хотя осциллом смотрю что на RX вход сигналы сыплются
Вы бы привели текст инициализации USART. Наверное, ошибка в нём: например, забыли бит RXEN...
Go to the top of the page
 
+Quote Post
vesel
сообщение Apr 21 2008, 21:24
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



сейчас стоит как мастер прописал
UBRRL=0x4D;
UBRRH=0x00;
UCSRB=((1<<RXEN)|(1<<TXEN)); //enable rx and tx
UCSRC=0x86;

я для проверки на передачу так
if(USART0_Receive() != 10) UDR=0;
USART0_Transmit(kaka);
сыплет честно в порт ...при попытке изменить RL данные искажаются

если для проверки пишу так //if (USART0_Receive()==0) PORTC &=~_BV(PD5);
//delay_ms(300);
//if (USART0_Receive()!=0) PORTC |=_BV(PD5);
//delay_ms(300);

то диодик моргает ....
куды крестьянину подацца?((
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 21 2008, 21:31
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vesel @ Apr 21 2008, 23:24) *
то диодик моргает ....
куды крестьянину подацца?((

Дык, а в чем проблема то? Раз моргает значит принимается что-то?
Отправьте то, что принимается назад, посмотрите в чем дело...

Вы бы код USART0_Receive() привели.

А в чем смысл этой проверки?
Цитата
if UDR == 0

Ведь если читать нечего, из UDR будут читаться нули..
Go to the top of the page
 
+Quote Post
vesel
сообщение Apr 21 2008, 21:43
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



unsigned char USART0_Receive(void) //read func
{
while(!(UCSRA & (1<<RXC))) //wait for incoming data
return UDR; //return data
}

вот функц чтения
я уже и вот так сделал

kaka=USART0_Receive();
USART0_Transmit(kaka);

ничего обратно не шлет ... хотя чтото там есть ...раз не ноль..
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 21 2008, 21:56
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vesel @ Apr 21 2008, 23:43) *
ничего обратно не шлет ... хотя чтото там есть ...раз не ноль..

Если отключить UART, закоротить RX/TX пины и слать что-то с компа, эхо видно?
Go to the top of the page
 
+Quote Post
dENIM
сообщение Apr 21 2008, 22:01
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



прошу прощения, но вот эта фраза

"начал с нее родимой (мега8) знакомится с атмегой ...."

навевает мысли о фьюзах под кварц.
Go to the top of the page
 
+Quote Post
vesel
сообщение Apr 21 2008, 22:15
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



эхо есть при отключеном УАРТе и соединенными RX\TX....МАХ живой ....


по поводу фьюзов все в порядке ...я к этой атмелине уже нокиевскую LСDшку прикрутил ....рисую и показываю на ней ....
вот захотел по ком порту на экранчик отправлять всяко разно ...а тут облом такой (((
Go to the top of the page
 
+Quote Post
vesel
сообщение Apr 22 2008, 22:27
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



плюнул на это дело ....решился на управление через прерывания ...и все поехало\запырялось ))
правда пока разобрался с вижином ..упарился ....от примеров в "тупую" пора отказыватся ..
пока не запустил для ознакомления мастера не разобратся было с прерываниями ...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:04
Рейтинг@Mail.ru


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