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

 
 
> Всем привет. С Вами новый "чайник"....
dawas
сообщение Sep 29 2008, 14:01
Сообщение #1





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



Всем привет. С Вами новый "чайник"....
И опять с UARTом smile.gif

Можете носом ткнуть в ошибки и направить на путь истинный?
Требования (на первых парах): вернуть в TX данные пришедшие в RX.
Кристалл: MSP430F149
Частота берётся ACLK (в проге 4MHz ставил), битрейт 9600.
Мой код:

#include <msp430x14x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // остановка WDT
ME1 = UTXE0+URXE0; // Разр передачу/приём UART0
U0CTL = CHAR+SWRST; // Инициализация(ресет) UART0

UCTL0 = CHAR; // 8-bit character
UTCTL0 = SSEL0; // UCLK = ACLK
UBR00 = 0xA0; //
UBR10 = 0x01; //
UMCTL0 = 0xB7; //
ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
P3DIR |= 0x10; // P3.4 output direction

while ((IFG2 & UTXIFG0) == 0) // проверка готовности USART0 TX
TXBUF0 = RXBUF0; // RXBUF0 => TXBUF0

}


Работать не хочет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
MrYuran
сообщение Sep 29 2008, 14:07
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата
while ((IFG2 & UTXIFG0) == 0) // проверка готовности USART0 TX
TXBUF0 = RXBUF0; // RXBUF0 => TXBUF0

Ну и как, по-вашему, это должно работать?
В лучшем случае кинет в TXBUF0 1 байт и выйдет на волю.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
dawas
сообщение Sep 29 2008, 14:28
Сообщение #3





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



Цитата(MrYuran @ Sep 29 2008, 18:07) *
Ну и как, по-вашему, это должно работать?
В лучшем случае кинет в TXBUF0 1 байт и выйдет на волю.

А как правильно организовать этот цикл чтобы постоянно перекидывало?

(просьба за такой вопрос камни не сильно кидать).... все когда-то с чего-то начинали smile.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 29 2008, 14:34
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(dawas @ Sep 29 2008, 17:28) *
А как правильно организовать этот цикл чтобы постоянно перекидывало?
Какой "этот"? Тут вообще цикла "перекидывания" нет. Заключите проверку готовности и пересылку в бесконечный цикл.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 29 2008, 14:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Во-первых, внимательно читайте User's Guide, особенно раздел про использование USART в режиме UART и систему тактирвания Basic Clock Module. Во-вторых, воспользуйтесь примерами, которые производитель предлагает. В-третьих, пользуйтесь поиском по форуму, ваши проблемы обсуждались и разжевывались многократно. В-четвертых, неплохо бы указывать каким компилятором пользуетесь? Ну и самое главное, не следует вклиниваться в чужой топик со своими проблемами. twak.gif Спасибо модераторам, что разделили их.
Go to the top of the page
 
+Quote Post

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

 


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


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