avatar
Рейтинг
+27.22
Сила
57.15

Сергей

Публикации

avatar
Скорее всего, пробивается из-за защелкивания выходного каскада. В таком случае супрессор не поможет (точнее, похоже, но его нужно уж очень точно подбирать), зато помогут вилки из диодов Шоттки с выходов на землю и питание.
avatar
Хотел замечаний, получи:
Объявляем библиотеки и данные:
Ты в каждой статье их объявляешь. Пора уже вынести куда-нибудь.

//общее количество разрядов индикатора
#define LEDDIGITS 4

Если ты уже испольуешь класс, то он не должен имет таких вот явных внешних зависимостей, особенно, дефайнов. Намного лучше при создании класса указать, сколько у индикатора будет сегментов. Правильнее всего это сделать шаблонами:

template <uint8 SegmentCount> class SegmentDisplay
// а потом сделать тайпдеф для своего индикатора:
typedef SegmentDisplay<4> RlnSegmentDisplay


Это хоть и правильно, но сложно и не нужно. Ведь в текущей реализации нельзя использовать несколько индикаторов. В итоге, у тебя два варианта — вынести весь код, который специфичен для твоего индикатора в отдельные методы и в своей реализации переопределять их:

class SegmentIndicatorBase
{
    protected:
        virtual int segmentCount() = 0 const;
        ....
};

class RlnSegmentIndicator : protected SegmentIndicatorBase
{
    protected:
        virtual int segmentCount() { return 4; };
        ....
};


Либо просто забить и прописать 4 константой в классе.

void Init(uint8_t _Base);//функция инициализации
Всегда радовали такие комментарии :)

мне не удалось передать указатель на эту функцию ни изнутри класса, ни снаружи
Указатель на метод класса называется «делегат». Фишка в том, что чтобы вызвать метод класса нужно не просто его вызвать, но еще и передать ему указатель на данные класса. Поэтому твой хак — вполне нормальная штука.

BUTTONSSETUP;

Такого вообще лучше не делать. Совсем не понятно, что это.

uint16_t UIntPow(uint16_t _data, uint8_t _pow){//Возведение целого числа в степень

Ты извини, но функция гениальна. Напиши лучше просто таблицу

Ну, это — для начала :)
avatar
Мне кажется, что функции типа «вывод информации на индикатор» неплохо бы оформить в качестве библиотеки. Потому, что когда читаешь статью про энкодер, кусок кода для вывода на индикатор как-то не в тему смотрится.

По идее, должно быть что-то типа такого:

#include "RlnElectro.h"

void main()
{
    RlnInit();
    RlnSegmentDisplay_Show(1234);
}
avatar
Таких реле — тьма: начиная от мелочи и кончая контакторами на тыщи ампер. Вот, для примера, даташит на релюшку от OMRON.
avatar
Это — для всех компиляторов, просто потому, что по другому не сделаешь.
avatar
Вчера я его не смог приладить к энкодеру, догадайтесь почему.
Телепаты, ау?

Вопрос знатокам — почему код правильно отрабатывает свое предназначение при вращении энкодера в одну сторону и взрывает мозг в другую?
Какой код? Что за предназначение?
avatar
А что тогда?
avatar
Дак никто не будет бегать и заглядывать в щиток — появилось ли напряжение. Лучше уж чтобы пищало.
avatar
Если запустить генератор ночью, то и ночью пищать будет — не вижу в этом проблемы.
avatar
Блин, не подумал, что там Холл. У тех механических энкодеров, которыми мне доводилось пользоваться на фронтах дребезг был ядреный.
avatar
Генератор автоматически включаться/выключаться не умеет потому, что нет автоматического ввода резерва и микроконтроллер тут не поможет. А покупать контакторы и лепить еще один щиток я морально не готов.

И у меня второй ответ вытекает из первого :) Звонок зазвонил — а выключать или нет генератор решает уже человек. Такой себе биологический таймер.
avatar
Ухты, очень чистый сигнал, без дребезга. Там фильтр внутри стоит?
avatar
То, что энкодер дорогой не значит, что его не используют. да и метод работает с любым энкодером.
avatar
Это — один из классических вариантов реализации диспетчера. Беда такого подхода в том, что если функция не отдаст управления в течении 10мс, вся система умрет.

Есть намного более простая и легкая реализация подобного диспетчера, называется она "протопотоки".

Но диспетчер в качестве счетчика — это все равно, круто :)
avatar
\\.\ — это именованные пайпы. Фактически, \\.\COM17 — это виртуальный файл, с которым можно работать обычными функциями WinApi, но при записи данных туда, они будут переданы в com-порт.
avatar
Насчет git согласен, но вот SVN, хоть и старый, очень широко используется в корпоративной среде (по факту, 90% компаний, которые я знаю, используют SVN). Это связано с тем, что SVN уже внедрен, а что-то новое внедрять компаниям — довольно проблематично. Так и живут.
avatar
Я еще не видел, чтобы тебе что-то нравилось. Так что, все в порядке :)
avatar
Сделал.
avatar
С почином!

Крутая штуковина. Только, боюсь, шаговик рычать будет не в тему. Я вот тоже хочу что-то на новый год соорудить. Но, думаю, просто времени не хватит.

Насчет стабилизатора тока — ты попробуй не замедлять выход стабилизатора, а ускорять обратную связь. Это можно сделать, поставив в разрыв провода Vfb параллельную RC цепочку. И да, идейно правильнее было бы подмешивать выход контроллера в напряжение ОС, а не дергать Enable. Тогда отсутствовал бы ШИМ-эффект.

Кроме того, восприятие яркости у человека логарифмическое, поэтому и ШИМить нужно экспоненциально. К примеру, ШИМ=16 всего в два (а не в 4) раза ярче, чем ШИМ=4.
avatar
То что ЖКшник не планируется выносить, не значит, что до него не достанут помехи. Ты ведь делаешь платку для боевого применения в электро-делах (насколько я понял). А в поле разные контакторы, двигатели да частотники водятся. Помех столько, что хорошо, если дисплей выгорать не будет, не говоря уже о том, чтобы что-то дернуло ножку.

Протокол 4х проводной шины крайне дурной — невозможно определить какой части байта ждет сейчас дисплей. Таким образом, одна иголка на шине и все, индикация потеряна. Та-же иголка, к примеру, на ethernet вызовет просто несовпадение CRC и повторную передачу пакета.

Блог проекта создал, ждем развития :)

Насколько я понимаю (я не мега-SEO-спец), копипастой считается любой текст, который раньше был в интеренете. Проблема в том, что поисковики видят это и, понижают рейтинг сайта который копипастит (в данном случае, этого). Но, думаю, можно не заморачиваться. В конечном итоге, сайт не для поисковиков, а для людей :)