Перейти к содержанию

Преобразование массива в код (Си)


-=FISHER=-

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

@Alex  Я бы ещё и схему свою удалил как вредную. Типа, одумался и ужаснулся представленной картинки с ребёнком. Только, вот, уже поздно, схема засохла на форуме ...

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, Yurkin2015 сказал:

Давайте, уж, так. С "преобразованием массива в код (Си)" разобрались, и - хорош на этом. Только в учебных целях. А Фишера отговорим от этого проекта. Лучше, вон, пусть новогоднюю гирлянду сделает ...

Ну зачем Вы так... Это штатная функция всех приличных автомобилей.

4 часа назад, Zhuk72 сказал:

Мне кажется, что пока вы не изолируете исполнительную часть (реле поворотников) от переключателя, таким образом включив МК с обвязкой в разрыв, ничего толкового у вас не выйдет.

Выйдет, вот пример: https://avto-fishki.com/avtofishki/udliniteli_povorotov/LC14H кстати все удлинители поворотов этих ребят подключаются параллельно, то есть проводку кромсать не нужно. Просто вставил клеммы и поехал.

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Ради интереса погуглил - http://shtrafyinfo.ru/gibdd/shtraf-za-vnesenie-izmenenij-v-konstrukciyu-avtomobilya-v-2016-godu.html

2017-12-14_21-03-43.png.a781759aaf5b2b9f11fb7ef61a2aa30e.png

5 минут назад, -=FISHER=- сказал:

Это штатная функция всех приличных автомобилей.

Одно дело - штатная, другое - внесение изменений. Скорее всего, это разные вещи.

Ссылка на комментарий
Поделиться на другие сайты

23 часа назад, Yurkin2015 сказал:

В общем, этот сигнал СОМ и даром не нужно учитывать в таблице, это просто питание на лампочки.

Сейчас я объясню, почему без сигнала COM это устройство корректно работать никогда не будет. А дело в том, что очень интересным свойством данного устройства является и то, что количество вспышек на удлинение поворотов и на количество морганий "спасибо", можно будет настраивать (я говорю это утвердительно, потому что это уже давно реализовано на подобных устройствах), причём без доступа к устройству, а с помощью спец. комбинации морганий, в первые 10 секунд работы устройства:

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

(три налево, три направо, будет вход в режим программирования, затем включаем правый поворот, сколько нащёлкает столько будет удлинение поворотов, потом включаем левый, сколько нащелкает столько будет морганий спасибо)

И чтобы эта функция работала правильно, МК нужно отличать два состояния когда лампочки погашены. В одном из них лампочки будут погашены потому что поворотник ещё просто не включили 010 (+ только на COM), а в другом состоянии когда лампочки будут погашены и на COM тоже будет 0, то есть 000, это будет означать что только что было мигание и сейчас идёт момент паузы между вспышками, т.е. реле поворотов прервало импульс. И после этой паузы может наступить либо следующее моргание, либо установиться режим ожидания.

16 минут назад, Alex сказал:

Ради интереса погуглил. Одно дело - штатная, другое - внесение изменений. Скорее всего, это разные вещи.

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

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Бог с Вами... Я и не собирался пугать. Просто реально не знал, что нельзя вносить изменения :)
Ежу понятно, что делать или не делать - Ваше дело. Мы только можем чем-нибудь помочь, но никак не решать за Вас, ставить ли "это" Вам в авто, или не ставить.

На счёт "интересна"/"неинтересна". Тема интересна, и даже хочется помочь. Но я не автомобилист - не знаю что там, как и где включается. И понять алгоритма тоже никак не могу...

Ссылка на комментарий
Поделиться на другие сайты

18 минут назад, -=FISHER=- сказал:

Сейчас я объясню, почему

Да-да, Вы всё правильно говорите.

У меня стоит такая примочка штатная в машине. Дык, на ходу иной раз махнёшь рукой в ухе почесать, случайно зацепишь рукой за рычаг по пути к уху, рычаг просто дёрнулся без защёлкивания, - и усё, машина начинает отрабатывать короткое нажатие и моргать направо 3 раза - хрен отменишь. По-первости пытался тут же отменить ложное моргание, дёргал рычаг в другую сторону, дык, она начинала моргать налево. Так и ездил как новогодняя, кстати, ёлка по дороге, моргая туда-сюда ...:lol:

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Alex сказал:

На счёт "интересна"/"неинтересна". Тема интересна, и даже хочется помочь. Но я не автомобилист - не знаю что там, как и где включается. И понять алгоритма тоже никак не могу...

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

Давайте немного отвлечемся от поставленной задачи и обсудим конкретно граф состояний, если позволите. Как я понял, это как бы рассмотрение всех возможных вариантов поведения устройства? 

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

12 минуты назад, Yurkin2015 сказал:

По-первости пытался тут же отменить ложное моргание, дёргал рычаг в другую сторону, дык, она начинала моргать налево. Так и ездил как новогодняя, кстати, ёлка по дороге, моргая туда-сюда ...:lol:

К слову если, как в Вашем случае человек случайно нажимает коротко и начинается цикл удлинения, то такое же короткое нажатие в обратную сторону должно выключать удлинение (по крайней мере я хочу реализовать эту функцию в своём устройстве, так как на других самодельных удлинителях оно именно так и работает).

С точки зрения понимания этой задачи, всё очень легко, дернул - удлинилось и т д. А вот с точки зрения алгоритмизации всего этого процесса, по-моему это очень сложно. Ну то есть "кажется просто, а попробуй повтори!". Поэтому меня так зацепила эта работа.

В 13.12.2017 в 22:05, ARV сказал:

разберетесь?

Я бы может и разобрался но не могу прочитать половину слов :(

В 13.12.2017 в 22:14, Alex сказал:

Чтобы было понятно, какое было состояние, какое произошло событие и что делаем по этому событию.

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

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

В 13.12.2017 в 22:05, ARV сказал:

Ну нету у меня под руками ничего получше, чем вебка ноутбука... разберетесь?

Добрый день! Читаю про графы состояний, не могу понять что имеется ввиду под "интенсивностью потоков переводящих устройство из состояния..". Не подскажете?

5a336f23943e3_.PNG.60d7bf20f6d8cb649d8102f055c3318d.PNG

И ещё вроде всё разобрал кроме того что выделено красным, подскажите пожалуйста, что там написано?

5a315da58ba00_Untitled8.jpg.b2823218e797c539c71b3b51a298199a.jpg.baf8e20a71501150b76bc7ea6511b9b1.jpg

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

Я ж самоучка, я уравнений Колмогорова не решал, и в такие глубины, где живут "интенсивности потоков", никогда не погружался... Для меня граф - это способ изобразить поведение устройства понятным образом. Так что извините...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, -=FISHER=- сказал:

Читаю про графы состояний, не могу понять что имеется ввиду под

В какие то вы дебри полезли, это примерно так рисуется (для начала!):

image.png.ea08c107ebc54abc9414592d5d119010.png

Вот это поведение сигналов правильно нарисовано?

последовательно в двух состояниях:

1.не нажато ничего

2. включили R поворотник

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

15 часов назад, -=FISHER=- сказал:

С точки зрения понимания этой задачи, всё очень легко

Что то до меня сразу не дошло: между линиями С and R и C and L стоят ключи которые и замыкают формирующую линию С на ту и на другую или на обе сразу линии с нагрузкой!

Соответственно состояние системы это состояние этих двух ключей (замкнут разомкнут для каждого). соответственно у системы всего 4 (четыре) состояния!!!

Но до сих пор не понятно как вы собираетесь управлять этими ключами с контроллера!!! Если они и так уже управляются с ручки переключения поворотников!!!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ruhi сказал:

Вот это поведение сигналов правильно нарисовано?

Абсолютно верно!

 

1 час назад, ruhi сказал:

В какие то вы дебри полезли

Это очень даже может быть.

6 минут назад, ruhi сказал:

между линиями С and R и C and L стоят ключи которые и замыкают формирующую линию С на ту и на другую или на обе сразу линии с нагрузкой!

Именно!

6 минут назад, ruhi сказал:

Но до сих пор не понятно как вы собираетесь управлять этими ключами с контроллера!!! Если они и так уже управляются с ручки переключения поворотников!!!

А очень просто. Штатные переключатели это просто тумблер грубо говоря с тремя состояниями, 1. COM замкнут на правую сторону, 2. COM замкнут на левую сторону, 3. COM не замкнут ни на одну сторону. (Никаких транзисторов нет в цепи. Идёт чисто механическое замыкание) В моей схеме будет два полевых транзистора подключенных параллельно штатному тумблеру, каждый из которых по команде с МК будет замыкать COM на какую-либо из сторон или делать это одновременно. Уточните что именно не ясно в этой схеме? Я сейчас зарисую для наглядности.

2 часа назад, ARV сказал:

Я ж самоучка, я уравнений Колмогорова не решал, и в такие глубины, где живут "интенсивности потоков", никогда не погружался... 

Ну и отлично, значит теоретически и мне это не грозит)

Изменено пользователем -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

23 минуты назад, -=FISHER=- сказал:

Это очень даже может быть.

в продолжение -

и есть только два варианта:

поставить параллельно существующему ключу еще один ключ который будет задерживать замыкание после короткого нажатия переключателя поворотников!

или изменить штатную схему управления ключом!

Вы какую схему управления ключом собираетесь реализовать???

Бессмысленно рассуждать о программировании не зная способ/физику управления!!!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, ruhi сказал:

или изменить штатную схему управления ключом!

Вы какую схему управления ключом собираетесь реализовать???

Что Вы подразумеваете под словом "ключ"?

Вот упрощенная схема:

 

 

 

22222.jpg

Изменено пользователем -=FISHER=-
Исправил рисунок

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, -=FISHER=- сказал:

Что Вы подразумеваете под словом "ключ"?

Имеется ввиду управляемый ключ, на этой схеме два параллельных набора ключей:

Под реле прерывателя - коммутатор это набор ключей изобрАжен без цепей управления,

И Транзисторы - добавленные параллельно ключи под управлением процессора, теперь все понятно!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ruhi сказал:

последовательно в двух состояниях:

1.не нажато ничего

2. включили R поворотник

Ещё есть третье состояние! Это очень важно понимать. Вот я выделил его:

image.png.ea08c107ebc54abc9414592d5d119010.png.a716f0e4f25fb9a0f8021104ad573b4e.png

Это состояние когда подрулевой переключатель включен в R, НО! фонари правой стороны не горят, так как идёт момент прерывания сигнала от реле, это и есть состояниее 000

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, -=FISHER=- сказал:

Ещё есть третье состояние! Это очень важно понимать. Вот я выделил его:

 

Это состояние когда подрулевой переключатель включен в R, НО! фонари правой стороны не горят, так как идёт момент прерывания сигнала от реле, это и есть состояниее 000

Да! только это не третье состояние, это другой тип состояния, это обычная ошибка объединять принципиально разные типы состояний в одно множество, это как килограммы с метрами складывать!

Секундочку :)! 

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

25 минут назад, -=FISHER=- сказал:

Ждём

Обозначим биты порта 0-R, 1-С, 2-L, и обзовем значение RCL = R|(C<<1)|(L<<2);

Тогда:

startPoint:
While(!(RLC = getRLC()) & 0b101)){};
cntrBitsSet(oldRLC& 1, (oldRLC >> 2) & 1);//замкнуть паралельные ключи 
//в соответствии со значениями R and L!
timerStart();
oldRLC = RLC;
While((RLC = getRLC()) == oldRLC)){};
Period = timerStop();
If(period > ShortTime) goto longTimeBranch;
ShortTimeBranch:
timerStart(3 seconds);
While(timerIsActive()) {};
Goto startPoint;
longTimeBranch:
cntrBitsClearAll();//РАзОмкнуть паралельные ключи 
While((RLC = getRLC()) == oldRLC)){};
Goto startPoint;

про ноль как раз забыл щас добавлю

32 минуты назад, -=FISHER=- сказал:

Ждёмс

как обычно первый вариант содержит лишний код, так лучше:

startPoint:
While(!(RLC = getRLC()) & 0b101)){};
cntrBitsSet(oldRLC& 1, (oldRLC >> 2) & 1);//замкнуть паралельные ключи 
//в соответствии со значениями R and L!
timerStart();
oldRLC = RLC;
RLC = getRLC();
While(RLC == oldRLC || RLC == 0)
{ RLC = getRLC();};//включился поворотник – ждем и считаем время
Period = timerStop();
If(period > ShortTime) goto longTimeBranch;
ShortTimeBranch:
timerStart(3 seconds);
While(timerIsActive()) {};
Goto startPoint;
longTimeBranch:
cntrBitsClearAll();//РАзОмкнуть паралельные ключи 
Goto startPoint;

 

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...