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

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


-=FISHER=-

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

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

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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 пользователей онлайн

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

  • Сообщения

    • Привет.  Хочу попробовать поработать с фоторезистом. Есть пару десятков ультрафиолетовых светодиодов, общей мощностью 4 вата. Хватит ли этой мощности для обработки платок размером 10 на 10 см или надо искать что-то дополнительно? 
    • Чтобы меньше было излучения, нужно мотать тороидальную. Возможно для повышения добротности по омическому сопротивлению лучше этот ТОР мотать в пару слоев. Если ее намотать на шило, то она вряд ли будет вообще работать как катушка.   Индуктивность прямо пропорциональна площади сечения, которая в свою очередь прямо пропорциональна квадрату диаметра. К тому же индуктивность в обратной пропорции с длиной намотки.
    • Я в ходе отладки выяснил, что сбоит в функции:  void w25qWritingByUSB(uint32_t dpagenum, uint8_t *bufByUSB) При чем поведение очень странное. Отладочные сообщения даже не выводятся в начале функции. В ходе экспериментов понял что связано это с объявлением массивов и решил объявить большие буферы которые на 4КБ и 0.25КБ: uint8_t current_sector_buf[4096]; uint8_t buf[256]; глобально. В оригинале, буферы объявлялись локально в функции. После изменения буквально двух строчек кода, все заработало. Также, в оригинальном проекте было сильно напутано из функциями. Я решил функции выкинуть из main.c и вставить в w25q.c Эти функции: void w25qEraseSector(uint16_t sector) void w25qWritingByUSB(uint32_t dpagenum, uint8_t *bufByUSB) Поиск данной проблемы реально отобрало кучу времени. На будущее буду знать что и такое бывает...
    • есть готовый  драйвер BTS7960 до 43А (долговременно до 10) с шим и все, что нужно и стоит недорого. И не надо изобретать  велосипед. Даже с учетом завышения параметров  уж 5А свободно.
    • А есть внятное описание этого M18? По моему он не очень "интегирируется" с микроконтроллером, да и нужно ли? По схеме выше - подключить его к U1C, выход U1C кинуть на +С12, U1D вообще выкинуть вместе с D1,D2 и R13.
    • Прежде чем сломя голову что-либо менять, следует задуматься о причинах выхода этого "чего-либо" из строя. В противном случае замененное отправится протоптанной тропой своих предшественников. Защитной лампой пользоваться умеете? Вот на нее и заменяйте для начала.
    • Это обрывные резисторы в роли предохранителей. Номинал на последнем фото похож на 470 Ом (желтый-фиолетовый-коричневый-золотой, если цвета правильно разглядел), но это многовато, вот 47 Ом - похоже на правду. Можно ставить в достаточно широком диапазоне, другое дело, что горят они не просто так. Скорее всего дальше где-то косяк. А мультиметром измеряли сопротивление? Что показывает?
×
×
  • Создать...