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

 
 
> mega128+VMLAB+TTY
Rattlesnake
сообщение Apr 19 2007, 12:49
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 19-04-07
Пользователь №: 27 169



ПЛЗ, ткните что я не так делаю.. Начинаю разбираться с МП, а тут затык..
Хочу вывести на TTY "Hello, world", но ни чего не получается..
prnt.c:
#include <mega128.h>
#include <stdio.h>
void main(void)
{
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: Off
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 38400
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x86;
UBRR0H=0x00;
UBRR0L=0x0C;
UCSR0B=0x08;
//#asm("sei")

while (1)
{
printf("hello");
};
}

VMLAB:
prnt_vm.prj:
.MICRO "ATmega128"
.TARGET "prnt.hex"
.TOOLCHAIN "GENERIC"
.COFF "prnt.cof" ; " "
.SOURCE "prnt__.c"

.TRACE ; Activate micro trace

; Following lines are optional; if not included
; exactly these values are taken by default
; ------------------------------------------------------------
.POWER VDD=5 VSS=0 ; Power nodes
.CLOCK 1meg ; Micro clock
.STORE 250m ; Trace (micro+signals) storage time


X1 TTY(38400 8) PD0 PD1


Где я что неправильно делаю?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Pyku_He_oTTyda
сообщение Apr 19 2007, 14:18
Сообщение #2


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

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



осмотрелся, потру за ненадобностью


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 19 2007, 15:03
Сообщение #3


Гуру
******

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



Цитата(Rattlesnake @ Apr 19 2007, 13:49) *
X1 TTY(38400 8) PD0 PD1
Где я что неправильно делаю?


В m128 UART0 имеет выводы на РЕ0-РЕ1
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 19 2007, 16:20
Сообщение #4


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Rattlesnake @ Apr 19 2007, 08:49) *
ПЛЗ, ткните что я не так делаю.. Начинаю разбираться с МП, а тут затык..
Хочу вывести на TTY "Hello, world", но ни чего не получается..

// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: Off
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 38400
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x86;
UBRR0H=0x00;
UBRR0L=0x0C;
UCSR0B=0x08;
//#asm("sei")

while (1)
{
printf("hello");
};
}


X1 TTY(38400 8) PD0 PD1
Где я что неправильно делаю?

Если у вас клок 1 Мгц, то вы передаёте на скорости 4800 бод. Ну а принимать хотите на 38400? Так не пойдёт, скорости на передающей и приёмной стороне должны сооответствовать друг другу.

Ну и 7-ой бит в регистре UCSR0C не рекомендуется задействовать для атмеги128.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
slog
сообщение Apr 19 2007, 16:41
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



А putchar() то существует?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 19 2007, 20:18
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Я так понимаю,это Кодвижн?
Тогда можно просто взять пример из хэлпа по выводу в UART,используя putchar()
#include <stdio.h>
flash char string_Hello "Hello";
unsigned char index_uart_tx;
while(string_Hello[index_uart_tx]) putchar(string_Hello[index_uart_tx++]);


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Rattlesnake
сообщение Apr 23 2007, 10:39
Сообщение #7





Группа: Новичок
Сообщений: 2
Регистрация: 19-04-07
Пользователь №: 27 169



Всем спасибо.
Были подозрения, что нужно юзать PE0 PE1 (даташит был прав smile.gif , но примеры только под мегу8 нашел sad.gif - доверился им ), даже пробывал - шли данные, но мусор (те я ожидал несколько другие данные, вернул на PD0 PD1 - а вдруг... не прошло )..

Что касается частоты, то менял ее (только в ВМЛАБ"е), а в КОДвижн нет (изначально 1 МГЦ стоял, но сразу не нашел где установки).

Результаты:
1. Частоту нужно проверять дважды
2. Доверять Даташиту

Еще раз СПС
Go to the top of the page
 
+Quote Post

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

 


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


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