Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.02.2006, 21:52
|
|
Святослав
Гость
|
Передача данных по RS232
Здравствуйте. Небольшой вопрос. Контроллер ATmega128. Нужно передать в компьютер структуру
short b[4];
unsigned сhar* cb = (unsigned char*) b;
Я инициализирую асинхронную приемо передачу
UCSR0A=0x08;
UCSR0B=0x08;
UCSR0C=0x86;
UBRR0L = 0x2F;
UBRR0H = 0x00;
Далее в ДШ написана функция для отправки данных
void USART_Transmit( unsigned char data )
{
/* Ожидание освобождения буфера передатчика */
while ( !( UCSRA & (1‹‹UDRE)) );
/* Помещение данных в буфер, отправка данных */
UDR = data;
}
Для того чтобы отправить эту структуру мне нужно написать так???
USART_Transmit(cb);
А прием выглядит приблизительно так же
unsigned char USART_Receive( void )
{
/* Ожидание окончания приема данных */
while ( !(UCSRA & (1‹‹RXC)) );
/* Загрузка принятых данных из буфера */
return UDR;
}
Мне тоже достаточно написать
cb=USART_Receive; ????
Заранее спасибо
|
|
|
|
11.02.2006, 08:47
|
|
Святослав
Гость
|
Никто не знает как пользоваться USART?????
|
|
|
|
11.02.2006, 17:01
|
|
Гость
|
Обьясни что значит запись !( UCSRA & (1‹‹UDRE)), ведь ‹‹ вроде сдвиг влево, то непонятно как он действует.
а здесь вроде так
unsigned char USART_Receive(unsigned char date)
{
while ( !(UCSRA & (1‹‹RXC)) );
UDR=date;
}
|
|
|
|
11.02.2006, 23:04
|
|
Святослав
Гость
|
Понятия не имею. Это все было в ДШ )))
|
|
|
|
12.02.2006, 05:27
|
|
Частый гость
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
извини ощиься наоборот надо
unsigned char USART_Receive(unsigned char date)
{
while ( !(UCSRA & (1‹‹RXC)) );
date=UDR;
}
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:21.
|
|