Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 137 из 154 ПерваяПервая ... 3787127134135136137138139140147 ... ПоследняяПоследняя
Показано с 1,361 по 1,370 из 1531

Тема: Микроконтроллеры AVR

  1. #1361
    Цитата Сообщение от veso74 Посмотреть сообщение
    В коде полно float. Мир меняется. Минималистский програмной код не требуется уже
    Быстрое решение поставленной задачи, чему Вы удивляетесь? Как только поставленная задача будет решена (либо место для кода закончится), начнется оптимизация кода.
    Блог - r9ofg.ru, Телеграм канал - t.me/r0aek_me


  2. #1362

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,414
    Позывной
    LZ2WSG
    Не удивлен. Все верно. Легко, а и работает и результаты имеют достаточную точность (и ресурс есть) - отлично.
    Старшее поколение видит в этом пробелы ( ). Для меня это тоже не упущение. Оптимизируем, когда нужно (или по какой-то причине). Иначе - как бывает.

  3. #1363
    veso74, чего Вы пытаетесь от читающей публики добиться? Каждый решает свою задачу как может, универсальности тут не может быть. Не усложняйте

    Любая программа начинает писаться от задачи до быстрого достижения поставленной цели, как только результат (цель) будет достигнут, начнется оптимизация, процесс вполне нормальный.
    Блог - r9ofg.ru, Телеграм канал - t.me/r0aek_me

  4. #1364

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    992
    veso74,
    Вот. Если заменить "открывать велосипед", на "учиться ездить на велосипеде", будет взляд на процесс под новым углом, возможно более правильным. Открытый код, это да, бесценный клад, и может даже к лучшему, что с гитхаба редко что-то можно скопипастить не включая мозг.

    Скрытый текст

    "Сторговаться", это значит договориться в цене на базаре (рынке), где торгуют. Используется как "прийти к компромиссу". Это как если сказать "Минималистский код, он в некоторых случаях важен, а в некоторых нет. Вы согласны?", но более живо. Язык у меня формировался на Урале, в простой среде, там за вопрос, - "Здравствуйте, чем занимаетесь?" точно не нальют, нужно делать лицо проще и говорить - "Ко, робите?" А литературный он или разговорный, кто ж его разберет? (:
    На фотке Маргарет Хамильтон, которая "слетала" на Луну на несколько дней раньше астронавтов, просто герои должны выглядеть брутально и произносить в нужный момент по телеку, - "И гигантский шаг для человечества". Ну, а рядом с Маргарет стопка с "прошивкой" Аполлона.


  5. #1365
    ozforester, скопипастить можно, только это не поможет если не разобрать до косточек то, что скопипастили.

    Любой язык написания кода это просто инструмент.... понятно, что на готовых решениях можно учится, но каждый учится по разному - один копирует тупо, другой разбирает, мол почему так, а не иначе.
    Блог - r9ofg.ru, Телеграм канал - t.me/r0aek_me

  6. #1366

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    992

    Скрытый текст

    Копипащенье, это и не обучение, а скорее верховая езда. К гитхабу "на хромой козе" (: У айтишников раньше был термин "эникийщики".


  7. #1367

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,414
    Позывной
    LZ2WSG
    Готовый, проверенный, стабильный код для энкодера (механического)? (в ATtiny13A). Любимый код "Rotary encoder handler for arduino v1.1, 2011 Ben Buxton" (simple state machine) собирается в память вместе с Si5351, но места для индикатора нет .
    Последний раз редактировалось veso74; 30.06.2022 в 21:08.

  8. #1368

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    992
    Спрятал под спойлер, так как до прошивки дело не дошло (:

    Скрытый текст

    Расчет и загрузка по даташиту регистров целочисленной конфигурацией синтезатора и дробной конфигурацией фапч.
    Код:
    $ avr-nm --size-sort math
    00000004 T __divsf3
    00000004 T __mulsf3
    00000006 T __fp_nan
    0000000a T __subsf3
    0000000c T __fp_inf
    0000000e T _Z8twi_initv (инициализация i2c)
    0000000e T __fp_pscA
    0000000e T __fp_pscB
    0000000e T __fp_zero
    00000010 T _Z9twi_starth (i2c старт)
    00000014 T _Z8twi_stopv  (i2c стоп)
    0000001c T _Z8load_reghh (загрузка одного регистра по i2c)
    00000022 T __fp_round
    0000003e T _Z9twi_writeh (i2c отправка байта данных)
    00000044 T __fp_split3
    00000044 T __udivmodsi4
    00000058 T __fixunssfsi
    0000007a T __floatunsisf
    000000ae T _Z10synth_regsm (вычисление регистров для синтезатора)
    000000c0 T __addsf3x
    000000cc T __divsf3x
    000000d2 T __mulsf3x
    00000134 T main (оно и в Африке main)
    0000019e T _Z8pll_regsd (вычисление регистров для фапч)
    Остальные "поглотители памяти" с говорящими названиями были подтянуты gcc из либ при сборке. Можно найти на гитхабе список рутин gcc для программной плавающей точки (sf) и прочих.
    Код:
    $ avr-nm --size-sort math | awk -n '{ sub("0","0x0",$1); sum+=$1;}END{print sum}'
    2100
    mmcu=attiny13, включен -Og, не принципиально, c -Os -flto будет 1732 байта, I2C на фоне математики ничтожен.
    Есть и хорошая новость - мне пока не надо париться с дисплеем и энкодером.


  9. #1369
    Аватар для Ансаган
    Регистрация
    27.06.2015
    Адрес
    Костанай
    Сообщений
    44
    Позывной
    UN9LGJ
    Добрый вечер! Прошу помощи старших Товарищей! Есть два светодиода подключенные к порту микроконтроллера Атмега16, которые должны гореть попеременно один включился другой выключился с заданным интервалом переключения. Для начала сделал на задержке __delay(10000); вроде хорошо работает, но не то. Дальше стал делать функцию которая принимает аргумент и тут затык! Не могу понять как можно в функцию отправить (аргумент) тоетсь временной интервал переключения светодиода. Дайте совет, или пример! Как можно сделать чтобы длительность переключения менять за счет входных параметров в функцию! спасибо! P.S. Вся операция выполняется в прерываний таймера Т1 частота прерывания 1секунда.


  10. #1370

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,414
    Позывной
    LZ2WSG
    Не знаю задача какая: кто-то напишет код для Вас для конкретного задания или Вы сами выясняете, как писать код для действия таймера/функции?

    Вариант:
    Напишите прерывание на таймере (Т1?) и времени, кратный запрошенному, напp. на 100 ms.
    Напишите функция с вх. аргумент -> коэффициент вызванное время, напр. 10 (10 * 100 ms = 1 s) и если счет больше 10, то напр. поднять флаг (и/или действие с LED?).
    Я би добавил действия LED-a с флаг: в основной программе следить за флагом и если да -> делаем действие (со LED), убирая флаг после действия.
    (Действие должно быть быстрее, чем изменение одной единицы времени, иначе потеряете отчет для время).

    В других компиляторах/микроконтроллерах таймер уже построен и считает время (micros(), millis(), get_ticks()...), остается только следить n*t и выполнять задачу.
    Последний раз редактировалось veso74; 31.08.2022 в 21:31.

Страница 137 из 154 ПерваяПервая ... 3787127134135136137138139140147 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Микроконтроллеры PIC
    от R2DAD в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 140
    Последнее сообщение: 29.10.2023, 10:32
  2. СОМ порт и микроконтроллеры
    от alex74 в разделе Технический кабинет
    Ответов: 1
    Последнее сообщение: 31.03.2008, 11:04

Ваши права

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