Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 68 из 68 ПерваяПервая ... 185865666768
Показано с 671 по 678 из 678

Тема: Как управлять Si5351

  1. #671
    Цитата Сообщение от veso74 Посмотреть сообщение
    Не знаком со скрытыми хитростями и трюки assembler-a
    Здесь нет никакого assembler-a, чистый классический си, плюс небольшое знание численных методов .


  2. #672

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,474
    Позывной
    LZ2WSG
    А и уровень уже такой: меняешь IDE и МК и "фокусы" кода уже не имеют смысла. Новые IDE/compilers одновременно "мощные" и содержати идеальные оптимизаторы, которые выполняют тысячи минимизаций, при этом большой программный код становится быстрее и меньше чем оптимизированой "вручную". А и у 32-битного МК в 20 раз больше памяти и скорости х не знаю наскольк, а по цене как 8-битного.
    Последний раз редактировалось veso74; Сегодня в 00:53.

  3. #673
    Цитата Сообщение от veso74 Посмотреть сообщение
    А и у 32-битного МК в 20 раз больше памяти и скорости х не знаю наскольк, а по цене как 8-битного.
    Это всё так, но умение и привычка писать оптимальный код могут пригодится на любом контроллере, особенно если нужно отслеживать события близко к реальному времени. В нашем деле, применительно к радио, есть ещё один нюанс - чем мощнее контроллер, тем больше от него помех.

  4. #674

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,474
    Позывной
    LZ2WSG
    Код:
    shift 3 byte
    // address_pointer = phase_accumulator >> 24;
    // address_pointer = ((uint8_t*)&phase_accumulator)[3];
    // address_pointer = make8(phase_accumulator, 3);
    Как вариант оптимизации для другого случая (другой программный код в поздний час) только что получил: в одной среде IDE сравниваю три выражения. Они одинаковые, он (компилятор + оптимизатор) их оптимизировал самым кратчайшим образом, каким бы способом подавал ему входные данные ...
    Код:
    ....................   address_pointer = phase_accumulator >> 24;  // shift 3 byte
    0231:  MOVF   2C,W
    0232:  MOVWF  2D
    
    ....................   address_pointer = ((uint8_t*)&phase_accumulator)[3];
    0231:  MOVF   2C,W
    0232:  MOVWF  2D
    
    ....................   address_pointer = make8(phase_accumulator, 3);
    0231:  MOVF   2C,W
    0232:  MOVWF  2D
    и ассемблерный листинг трёх компиляции.
    Последний раз редактировалось veso74; Сегодня в 01:26.

  5. #675

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,474
    Позывной
    LZ2WSG
    Oleg 9, попробовал метод. Те же цифры получаются как при использовании метода расчета WRP-Labs, так и при использовании метода, которым поделились.

    А ... "медленный" метод с математическим делением (QRP-Labs) при измерении (используя встроенную в Arduino функцию micros()) оказался "быстрее" в два раза .
    Ну об этом я и писал в предыдущих сообщениях: булева математика уже изобретена в мельчайших деталях, а oптимизаторы в новых компиляторах "творят чудеса".

    (Также обратите внимание на размер скомпилированного файла (но использую Serial, и вероятность неточности измерения высока - (быть вне основного расчета)). Поэтому не учитываем это до отдельного теста).
    ---
    Выключил оптимизатор в Arduino IDE. Память в "метод с делением" увеличилась почти в 2 раза. И время выполнения стало медленным: t = 124 us.
    Код:
    Скицата използва 3800 байта (11%) / 261 байта (12%).
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	sketch_apr19a.jpg 
Просмотров:	3 
Размер:	229.1 Кб 
ID:	400475   Нажмите на изображение для увеличения. 

Название:	sketch_apr19b.jpg 
Просмотров:	3 
Размер:	235.2 Кб 
ID:	400474   Нажмите на изображение для увеличения. 

Название:	sketch_apr19b_no_opt.jpg 
Просмотров:	3 
Размер:	256.6 Кб 
ID:	400482  

    Вложения Вложения
    Последний раз редактировалось veso74; Сегодня в 11:54.

  6. #676
    Аватар для cuneum
    Регистрация
    28.12.2015
    Адрес
    Санкт-Петербург
    Сообщений
    1,550
    Записей в дневнике
    1
    Цитата Сообщение от veso74 Посмотреть сообщение
    А ... "медленный" метод с математическим делением
    Это потому, что там используется целочисленное деление с остатком, на операциях сдвига.

  7. #677

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,474
    Позывной
    LZ2WSG
    Многое можем догадываться, что находится внутри компиляторах и под ним. Важно то, что уже сделано хорошо. А методы расчета по булевой математике напр. 20-30 и более летней давности можно легко "отсечь" (напр. не учиться "изобретать велосипед"). Т.е. не будем уделять столько внимания математическим методам работы МК, а "углубимся" в самое интересное: исполнительное устройство.
    Последний раз редактировалось veso74; Сегодня в 12:42.

  8. #678
    Цитата Сообщение от veso74 Посмотреть сообщение
    Oleg 9, попробовал метод. Те же цифры получаются как при использовании метода расчета WRP-Labs, так и при использовании метода, которым поделились.
    Скомпилировал код из вашего файла для PIC контроллера. Размер на выходе 285 байт. Картинка ниже. Откуда в ардуинах накачиваются 2 с лишним килобайта неведомо.
    Нажмите на изображение для увеличения. 

Название:	new-1.JPG 
Просмотров:	0 
Размер:	252.5 Кб 
ID:	400484

Страница 68 из 68 ПерваяПервая ... 185865666768

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 6 (пользователей: 0 , гостей: 6)

Похожие темы

  1. Подскажите, плиз, как управлять таким тюнером :)
    от sonycman в разделе Технический кабинет
    Ответов: 5
    Последнее сообщение: 23.03.2015, 00:23
  2. Как удобнее управлять амплитудой нч сигнала?
    от R3LAI в разделе Технический кабинет
    Ответов: 5
    Последнее сообщение: 07.08.2014, 10:31
  3. Управлять исполнительным устройством при помощи одной кнопки
    от stolyarov-ae в разделе Технический кабинет
    Ответов: 11
    Последнее сообщение: 21.01.2013, 09:23
  4. Помогите! Нужно управлять LPD 430мГц через ррадио телефон!
    от V205 в разделе Технический кабинет
    Ответов: 2
    Последнее сообщение: 17.03.2009, 14:29
  5. Как управлять линией передачи в MIDI портe
    от Юрий(UR5VEB) в разделе Программное обеспечение
    Ответов: 19
    Последнее сообщение: 09.11.2006, 00:22

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •