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

 
 
> Как передать по USART?, Вместо числа приходит точка
Xenom0rph
сообщение Nov 23 2008, 18:29
Сообщение #1


Частый гость
**

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



В устройстве требуются простенькие часы.
Я задал структуру:
Код
typedef struct{
unsigned char sec;   //Cекунды
unsigned char min;   //Минуты
unsigned char hour;  //Часы
}time;

time t;


Прерывание по переполнению таймера.

Код
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
if (++t.sec==60)
{
  t.sec=0;
  if (++t.min==60)
  {
   t.min=0;
   if (++t.hour == 24)
   {
    t.hour =0;
   }
  }
}    

}


Допустим, отправляю UDR = t.sec. (t.sec к примеру = 7)
И на выходе я получаю символ “.” C хекс кодом 07, и так с любым числом, всегда точки.

Вот вопрос как передать это по USART?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Okada
сообщение Feb 6 2010, 18:38
Сообщение #2





Группа: Участник
Сообщений: 3
Регистрация: 6-02-10
Пользователь №: 55 333



В продолжение темы.

Начал изучать AVR.
Есть ATmega8 на макетке, программатор, IAR Assembler for AVR 5.30.0 (5.30.0.50166), AVR студия 4.16

Кавыряюсь над задачей, как с МК передавать на ПК значения.
Прочел документацию, написал прогу. Эроров нет.
Но не работает.

При дэбаге показывает зависание на попытке отослать третий байт, останавливаясь на условии
while(!(UCSRA&(1<<5)));

Если поставить бит руками, то итерация в дэбаге проходит.

На ситуацию не влияют:
- степень оптимизации кода
- вид функции (передача за вызов одного байта или разбитие и передача нескольких байт за один вызов)


UDRE не устанавливается...


Подскажите, что не так.
Go to the top of the page
 
+Quote Post
smac
сообщение Feb 6 2010, 21:24
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(Okada @ Feb 6 2010, 21:38) *
UDRE не устанавливается...
Подскажите, что не так.


Вы наверное в студийном симуляторе прогу прогоняете? Если да, то ждете наверное мало, AVR студия 4.16 не в реальном времени считает, ждать долго надо. А вообще, прогу в железо и посмотрите, ну и код что-ли выложите весь, может что подскажут.
Go to the top of the page
 
+Quote Post
Okada
сообщение Feb 9 2010, 05:42
Сообщение #4





Группа: Участник
Сообщений: 3
Регистрация: 6-02-10
Пользователь №: 55 333



Цитата(smac @ Feb 7 2010, 00:24) *
Вы наверное в студийном симуляторе прогу прогоняете? Если да, то ждете наверное мало, AVR студия 4.16 не в реальном времени считает, ждать долго надо. А вообще, прогу в железо и посмотрите, ну и код что-ли выложите весь, может что подскажут.


Железка выдаёт два байта и виснет.
Трасировал пошагово.

проджект прилагаю.
Прикрепленные файлы
Прикрепленный файл  UART_AVR_in_r1.zip ( 189.22 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
Okada
сообщение Feb 10 2010, 06:49
Сообщение #5





Группа: Участник
Сообщений: 3
Регистрация: 6-02-10
Пользователь №: 55 333



Цитата(Okada @ Feb 9 2010, 08:42) *
Железка выдаёт два байта и виснет.
Трасировал пошагово.

проджект прилагаю.


разобрался.

Ошибка в структуре программы.

Всё заработало.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Xenom0rph   Как передать по USART?   Nov 23 2008, 18:29
- - rezident   Если вы хотите получить в терминале символьное зна...   Nov 23 2008, 18:40
|- - Xenom0rph   Цитата(rezident @ Nov 23 2008, 21:40) Есл...   Nov 23 2008, 22:45
- - Aesthete Animus   ...а для этого изучите например функции *printf. К...   Nov 23 2008, 20:58
- - SysRq   В лоб:Кодvoid send_value(unsigned char value...   Nov 23 2008, 23:17
|- - Xenom0rph   Цитата(SysRq @ Nov 24 2008, 02:17) В лоб:...   Nov 24 2008, 09:17
|- - shasik   Цитата(SysRq @ Nov 24 2008, 01:17) В лоб:...   Nov 24 2008, 11:19
- - SysRq   МК у вас какой? Смысл этой строки - проверить своб...   Nov 24 2008, 10:14
|- - Xenom0rph   Цитата(SysRq @ Nov 24 2008, 13:14) МК у в...   Nov 24 2008, 13:00
|- - Paulina   или так (без деления): Кодvoid uchartostr(unsi...   Nov 24 2008, 14:55
|- - SysRq   Цитата(Paulina @ Nov 24 2008, 17:55) или ...   Nov 24 2008, 15:44
|- - Paulina   Цитата(SysRq @ Nov 24 2008, 18:44) GCC им...   Nov 24 2008, 15:48


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

 


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


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