Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Василий Ф

Разрабатываю ПО и электронику
  • 2
    вклад
  • 2
    вопроса
  • 25
    ответов
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как запустить скомпилированную программу в Linux ( Ubuntu ) без терминала?

    leahch
    Алексей Черемисин @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    В линуксе, как и в виндовс, как и во всех остальных операционных системах (мне знакомых), есть два типа программ: консольные и с графическим интерфейсом.
    Консольные программы требуют наличия какого-то терминала или консоли, соответсвенно их хоть и можно запустить по двойному щелчку, не всегда результат их работы будет виден, если дополнительно не указать в каком окружении их запускать.

    Про программы с графическим интерфейсом все просто - они сразу пытаются открыть графическое окно. Но сама программа будет немного сложнее.

    Так, Вы сделали и скомпилировали консольную программу. В этом же терминале можно ее и запустить.
    Либо сделать "лаунчер" типа
    xterm ./prog
    Как сделать "лаунчер", зависит от вашего графического окружения, но обычно можно просто сделать desktop-файл, его практически все в линуксе понимают.
    Просто создайте текстовый файл prog.Desktop со следующим содержимым (Exec - полный путь до вашей программы, Icon - путь до иконки, но можно без нее)
    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Type=Application
    Terminal=true
    Exec=/path/to/executable
    Name=Name of Application
    Icon=/path/to/icon


    Вот руководство - https://www.maketecheasier.com/create-desktop-file...

    ЗЫ. Да, забыл напомнить, сделайте в вашей программе выход по ожиданию нажатия на клавишу, иначе можно ничего и не рассмотреть!
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как убрать плавающую точку в значении температуры с датчика в Ардуино?

    vanyamba-electronics @vanyamba-electronics
    float x = 4.567;
    int z = (int) x;            // z == 4
    
    #include <math.h>
    z = (int) roundf(x);        // z == 5
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Где в коде ошибка?

    zagayevskiy
    Денис Загаевский @zagayevskiy
    Android developer at Yandex
    static убирать не следует, смысл этого B подсчитать , сколько экземпляров класса А создано(static значит, что из всех мест программы виден один и тот же объект в этой переменной).
    С этой точки зрения доступ к статистической переменной через указатель на экземпляр класса это не совсем верно( a->storage.counter). Я бы ожидал видеть A::storage.counter.

    delete [] в деструктор к АА, тут ты верно заметил. Нужно использовать именно эту форму delete, т.к. память выделена под массив (new int[10]). В остальных местах выделен 1 объект, поэтому надо delete без [].

    Но, для того, чтобы деструктор АА вызывался при удалении указателя на А(auto a = new A; выведет тип A*), когда по этому указателю лежит объект класса АА, нужно объявить деструктор virtual ~А(а вовсе не virtual ~AA). При этом объявление виртуальным деструктоа АА само по себе ошибкой не будет.

    someValue++ в конструкторе АА достаточно бессмысленно, т.к. это поле класса А, которое просто инициализированно нулём. В результате во всех экземплярах АА там будет 1. Непонятно, чего пытались добиться.

    Вместо printf в С++ следует использовать operator<<, но не думаю, что придурок, составлявший такой тест, особо думал об этом.

    Больше ничего не заметил.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно подавать сигналы на 74hc595 через Raspberry и python 2.7?

    Fox_Alex
    Александр @Fox_Alex
    Инженер электронщик
    С малиной не работал, на питоне тем более, но работает сдвиговый регистр как-то так:

    74HC595-Shift-Register-Working.gif

    На вход данных D подается логический уровень.
    На вход тактов подается импульс и уровень входа D записывается в регистр.
    Так повторяется 8 раз.
    Затем импульс Latch перекидывает все 8 бит из регистра на выходы.

    Но ИМХО малина это машинка высокоуровневая, негоже ей ногодрыганьем заниматься. Лучше такие "железные" задачи переложить на какой-нибудь stm32 и общаться с ним по USB. А у него и ног больше будет и к реальному времени он гораздо ближе, те-же шаговики таймерами крутить одно удовольствие!
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Битовый сдвиг и установка режимов на МК atmega8?

    Ocelot
    Ocelot @Ocelot
    WGM12 равен трём.
    (1 << WGM12) равно 0b00001000 (единица, сдвинутая на три бита влево)
    TCCR1B |= (выражение) это побитовое или, устанавливает в единицу те биты регистра TCCR1B, которые у правого операнда равны единице, а остальные не трогает. Например:
    TCCR1B = 0b10101010;
    TCCR1B |= 0b00001111;
    теперь TCCR1B будет равен 0b10101111;
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как ОС Windows проверяет доступ в интернет?

    DMGarikk
    Игорь @DMGarikk
    Software Developer
    вот например
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как изменить звук с помощью Arduino?

    vanyamba-electronics @vanyamba-electronics
    Детектишь несущую частоту.
    Потом детектишь гармоники, и получаешь спектр.
    Определяешь по спектру, что за фонема звучит.
    Заменяешь фонему сэмплом фонемы другого голоса. Например, голосом робота.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Arduino перезагружается при включении реле?

    vanyamba-electronics @vanyamba-electronics
    Странно, что вообще не сгорел. Подключите через транзистор.
    5a8d3269eac29976936505.png
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Кто может ответить на несколько вопросов по опыту использования Умного дома?

    knxtrade
    knxtrade @knxtrade
    Я бы "интернет вещи" к умному дому не подпускал. Пусть уж чайник мне хакеры включаю/выключают, но не крутят моё отопление ))
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать, чтобы ожидание нажатия клавиши происходило параллельно с обновлением данных?

    Warinator @Warinator Автор вопроса
    Всё, что мне нужно было - это функция kbhit().
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как построить АЧХ на языке "C" в eclipse для микроконтроллера?

    jcmvbkbc
    jcmvbkbc @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    потому что он не может различить функции sin(),sqrt() и т.д даже с подключенной библиотекой math.h

    С математикой, конечно, лучше разобраться. Например попробовать подсунуть ключ -lm линковщику.

    Но, по правде говоря, вам ведь не нужны функции sin и cos, вам нужны только их значения для фиксированных аргументов. Табличку значений вполне можно заполнить и вывести где угодно и использовать как массив в коде выполняемом на контроллере.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
Самые активные сегодня
  • Drno
    • 9 ответов
    • 1 вопрос
  • HardBot
    HardBot
    • 7 ответов
    • 0 вопросов
  • rPman
    • 6 ответов
    • 0 вопросов
  • poly-titova
    Полина Титова
    • 5 ответов
    • 0 вопросов
  • Stoneman
    • 4 ответа
    • 0 вопросов
  • Evgenii
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации