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

 
 
> Скорость выполнения кода на atmega640
Leonmezon
сообщение Jul 24 2009, 11:12
Сообщение #1


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

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Просьба помочь с функцией отправки байт по RS232 от atmega640 (сама функция полностью работает, но необходимо ускорить ее выполнения (на ассемблер перейти не могу - его не знаю).
// Функция передачи данных на ЭВМ по RS232 (масивы B1, B2 - создаю в ОЗУ, передаю по переменно взависимости от флагов. перед массив идут 5 0хF0 - заголовок.
Код
void RS232(void)
{
unsigned int i, j;
unsigned char data[4];
signed long *p;
p=(signed long*)data;
flag_BUF=0;
if (flag_B2==1)
{
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  // Преобразуем signed long B1 и в ЭВМ
     for(i=0; i<600; i++)
     {
        *p=B1[i];
         for (j=0; j<4; j++)
           {
              UDR0 = data[j];
              while ( !( UCSR0A & (1<<UDRE0)) ) { };
           }
     }
}
else
{
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
  UDR0 = 0xF0;
  while ( !( UCSR0A & (1<<UDRE0)) ) { };
// Преобразуем signed long B2 и в ЭВМ
    for(i=0; i<600; i++)
     {
        *p=B2[i];
         for (j=0; j<4; j++)
           {
              UDR0 = data[j];
              while ( !( UCSR0A & (1<<UDRE0)) ) { };
           }
     }      
}
}
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 25 2009, 18:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(x736C @ Jul 25 2009, 22:43) *
То есть поделить signed long на signed long нельзя? Каким будет результат при отрицательном значении делимого?
Не знал этого, спасибо за замечание.

Можно, конечно. Просто нет смысла делить, условно говоря, 12345 на 123456.

Цитата(Leonmezon @ Jul 25 2009, 22:43) *
long long - длиное целое 8 байтовое?
( Если да, то у меня только до 4 байт).

Уверены? И double тоже 32-х битный?
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение Jul 25 2009, 19:11
Сообщение #3


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

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Цитата(aaarrr @ Jul 25 2009, 22:48) *
Можно, конечно. Просто нет смысла делить, условно говоря, 12345 на 123456.


Уверены? И double тоже 32-х битный?

Да; long, float, double - 4 байтовые. Компилятор ICC AVR 7.22 STD. Я често не знаю, но только вроде в IAR есть long long 8 байт.

По делению как раз понятно (я еще вчера об этом говорил) 12345/123456= 0 в целочисленном вычеслении.

Сообщение отредактировал Leonmezon - Jul 25 2009, 19:13
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Leonmezon   Скорость выполнения кода на atmega640   Jul 24 2009, 11:12
- - Непомнящий Евгений   А зачем вам ускорять скорость ее выполнения? Какая...   Jul 24 2009, 11:24
|- - Leonmezon   Цитата(Непомнящий Евгений @ Jul 24 2009, 15...   Jul 24 2009, 14:17
|- - zltigo   Цитата(Leonmezon @ Jul 24 2009, 17:17) 2....   Jul 24 2009, 14:27
- - aaarrr   Переведите работу на прерывания - все равно, на че...   Jul 24 2009, 11:38
- - Непомнящий Евгений   я что-то не пойму. Вы не успеваете отправлять со с...   Jul 24 2009, 14:30
|- - zltigo   Цитата(Непомнящий Евгений @ Jul 24 2009, 17...   Jul 24 2009, 14:37
- - Палыч   Цитата(Leonmezon @ Jul 24 2009, 14:12) .....   Jul 24 2009, 15:05
- - Leonmezon   Перерыва в передачи байтов нет (данные принимаются...   Jul 24 2009, 15:52
|- - MrYuran   Цитата(Leonmezon @ Jul 24 2009, 19:52) фи...   Jul 24 2009, 16:03
- - aaarrr   Оптимизацию советую начать отсюда: КодU=(...   Jul 24 2009, 15:59
|- - Leonmezon   Цитата(aaarrr @ Jul 24 2009, 19:59) Оптим...   Jul 24 2009, 16:12
|- - aaarrr   Цитата(Leonmezon @ Jul 24 2009, 20:12) А ...   Jul 24 2009, 16:16
|- - MrYuran   Цитата(Leonmezon @ Jul 24 2009, 20:12) А ...   Jul 24 2009, 16:24
|- - Leonmezon   Цитата(MrYuran @ Jul 24 2009, 20:24) U=((...   Jul 24 2009, 17:02
|- - aaarrr   Цитата(Leonmezon @ Jul 24 2009, 21:02) Пр...   Jul 24 2009, 17:22
|- - Leonmezon   Цитата(aaarrr @ Jul 24 2009, 21:22) Вы ог...   Jul 24 2009, 17:44
- - aaarrr   Да не нужно заниматься ерундой и делить на 1677721...   Jul 24 2009, 18:05
|- - Leonmezon   Цитата(aaarrr @ Jul 24 2009, 22:05) Да не...   Jul 24 2009, 18:14
|- - rezident   Цитата(Leonmezon @ Jul 25 2009, 00:14) Ка...   Jul 24 2009, 18:41
- - aaarrr   Деление на 16777215 и умножение на 20000000 эквива...   Jul 24 2009, 18:40
|- - Leonmezon   Цитата(aaarrr @ Jul 24 2009, 22:40) Делен...   Jul 24 2009, 18:58
|- - rezident   Цитата(Leonmezon @ Jul 25 2009, 00:58) 2....   Jul 24 2009, 19:02
|- - Leonmezon   Цитата(rezident @ Jul 24 2009, 23:02) Еру...   Jul 24 2009, 19:10
|- - rezident   Цитата(Leonmezon @ Jul 25 2009, 01:10) По...   Jul 24 2009, 19:25
|- - Leonmezon   Цитата(rezident @ Jul 24 2009, 23:25) 150...   Jul 24 2009, 19:52
- - Kuzmi4   2 Leonmezon - откройте секрет - что вы там такое...   Jul 24 2009, 21:11
- - mdmitry   На семинаре AD по АЦП специалисты компании утвержд...   Jul 24 2009, 21:44
- - x736C   Цена деления 1,2 мкВ при точности ±150 мкВ.. К...   Jul 25 2009, 03:25
- - Leonmezon   Если вот так записать код, насколько будет быстрее...   Jul 25 2009, 16:24
|- - defunct   Цитата(Leonmezon @ Jul 25 2009, 19:24) Ес...   Jul 29 2009, 00:18
- - x736C   Я написал просто деление. Дальше в скобках уточнил...   Jul 25 2009, 16:54
|- - Leonmezon   Цитата(x736C @ Jul 25 2009, 20:48) Я напи...   Jul 25 2009, 17:01
|- - x736C   1. Как оцениваете время выполнения функции? Симуля...   Jul 25 2009, 17:28
|- - Leonmezon   Цитата(x736C @ Jul 25 2009, 21:28) 1. Как...   Jul 25 2009, 18:19
|- - aaarrr   Цитата(x736C @ Jul 25 2009, 21:28) 2. Рез...   Jul 25 2009, 18:23
|- - x736C   Цитата(aaarrr @ Jul 25 2009, 22:23) Не бу...   Jul 25 2009, 18:43
|- - Leonmezon   long long - длиное целое 8 байтовое? ( Если да,...   Jul 25 2009, 18:43
|- - x736C   Цитата(Leonmezon @ Jul 25 2009, 23:11) По...   Jul 25 2009, 19:24
|- - Leonmezon   Цитата(x736C @ Jul 25 2009, 23:24) Понял,...   Jul 25 2009, 19:41
- - x736C   Вы сначала написали, что результат не будет коррек...   Jul 25 2009, 19:02
- - aaarrr   Цитата(x736C @ Jul 25 2009, 23:24) Такая ...   Jul 25 2009, 19:44
|- - Leonmezon   Цитата(aaarrr @ Jul 25 2009, 23:44) Дык м...   Jul 25 2009, 20:21
- - x736C   Понятно. Запутался слегка. Из Kd можно убрать лиш...   Jul 25 2009, 20:02
- - x736C   Понятно. Это как раз то, чего я не мог понять в ди...   Jul 25 2009, 20:45
|- - Leonmezon   Цитата(x736C @ Jul 26 2009, 00:45) Понятн...   Jul 27 2009, 10:45
|- - aaarrr   Цитата(Leonmezon @ Jul 27 2009, 14:45) Вр...   Jul 27 2009, 13:07
|- - Leonmezon   Цитата(aaarrr @ Jul 27 2009, 17:07) А зач...   Jul 27 2009, 16:18
|- - rezident   Цитата(Leonmezon @ Jul 27 2009, 22:18) Во...   Jul 27 2009, 17:11
||- - Leonmezon   Цитата(rezident @ Jul 27 2009, 21:11) А в...   Jul 27 2009, 17:39
||- - rezident   Цитата(Leonmezon @ Jul 27 2009, 23:39) 3....   Jul 28 2009, 16:01
||- - Leonmezon   Цитата(rezident @ Jul 28 2009, 20:01) Есл...   Jul 28 2009, 16:24
||- - aaarrr   Цитата(Leonmezon @ Jul 28 2009, 20:24) Лу...   Jul 28 2009, 16:26
||- - Leonmezon   Цитата(aaarrr @ Jul 28 2009, 20:26) Выбро...   Jul 28 2009, 16:39
|- - aaarrr   Цитата(Leonmezon @ Jul 27 2009, 20:18) вп...   Jul 27 2009, 18:01
|- - Leonmezon   Цитата(aaarrr @ Jul 27 2009, 22:01) Вам д...   Jul 27 2009, 20:12
|- - aaarrr   Цитата(Leonmezon @ Jul 28 2009, 00:12) И ...   Jul 27 2009, 20:15
|- - Leonmezon   Цитата(aaarrr @ Jul 28 2009, 00:15) По ср...   Jul 27 2009, 20:19
|- - aaarrr   Цитата(Leonmezon @ Jul 28 2009, 00:19) т....   Jul 27 2009, 20:26
|- - Leonmezon   Цитата(aaarrr @ Jul 28 2009, 00:26) По ср...   Jul 27 2009, 20:54
|- - aaarrr   Цитата(Leonmezon @ Jul 28 2009, 00:54) Не...   Jul 27 2009, 20:58
- - aaarrr   А может, взять нормальные средства (можно и беспла...   Jul 28 2009, 16:47
|- - Leonmezon   Цитата(aaarrr @ Jul 28 2009, 20:47) А мож...   Jul 28 2009, 16:57
|- - aaarrr   Цитата(Leonmezon @ Jul 28 2009, 20:57) AV...   Jul 28 2009, 17:07
|- - Leonmezon   Цитата(aaarrr @ Jul 28 2009, 21:07) Помен...   Jul 28 2009, 17:35
- - Rst7   ЦитатаНа AVR и ICC свет клином не сошелся, как это...   Jul 28 2009, 17:14
- - aaarrr   Цитата(Rst7 @ Jul 28 2009, 21:14) Кстати,...   Jul 28 2009, 23:47


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

 


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


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