[ВХОД]

Главная | Содержание | Форум | Файлы | Поиск | Контакт
NAVIG
О форуме
Резонансные генераторы
Магнитные генераторы
Механические центробежные (вихревые) генераторы
Торсионные генераторы
Электростатические генераторы
Водородные генераторы
Ветро- и гидро- и солнечные генераторы
Струйные технологии
Торнадо и смерчи
Экономия топлива
Транспорт
Гравитация и антигравитация
Оружие
Нейтронная физика
Научные идеи, теории, предположения...
Прочие идеи (разные)
Новые технологии
Коммерческие вопросы
Барахолка
Патентный отдел
Сделай сам. Советы.
Конструкторское бюро
немобильная версия
Печатать страницу
Форум - Сделай сам. Советы. - Домашнему мастеру - Литровый контроллер - Стр.31
<][ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 ][>
Post:#297467 Date:26.03.2011 (19:09) ...
andy8mm Пост: 297408 От 26.Mar.2011 (15:33)
ДедИван, да, пора наступить на мк-грабли.
Надеюсь подключатся спецы по контроллерам, живее будет и всем интереснее.


Давайте отделим котлеты от мух.
По контроллеру все сюда.
dedivan | Post: 306458 - Date: 09.05.11(06:34)
JohnZ Пост: 306384 От 08.May.2011 (17:29)
только сигнал переключающий 1-3 или 2-4 цил. Где его взять ?


Здесь много разных вариантов. Даже в серийных машинах разные подходы. Особенно на Волгах- то один способ
используют, то другой.
Все варианты сводятся к определению фазы- нужно знать какая пара цилиндров находится в ВМТ , на ту пару и подавать зажигание.
Обычно используют датчик фазы- его ставят на распредвал, поэтому иногда называют ДПРВ - датчик положения РВ.
Иногда вычисляют из сигнала датчика коленвала.
Но если у нас нет ни того ни другого, а есть только сигнал от трамблера, - тут тоже варианты.
Либо ставить датчик на коленвал- чтобы он давал сигнал когда пара 1-4 вверху, либо переделывать шторки трамблера
чтобы сигналы на разные пары цилиндров отличались.
Но это все механические работы.
Для программиста- это западло.
Что тут можно придумать? Есть такой факт при сжатии в цилиндре искра должна иметь порядка 15 кв напряжения,
а если цилиндры внизу- давления нет, то искра имеет напряжение пробоя 2-3 кв.
При этом в первичке трансформатора мы получим импульсы либо 600 в либо 100-200 в.
То есть запуская на пробу искру во все цилиндры сразу- мы можем определить где у нас сжатие,
и от этого цилиндра плясать как от печки.


_________________
я плохого не посоветую
dedivan | Post: 306489 - Date: 09.05.11(13:00)
JohnZ Пост: 306455 От 09.May.2011 (02:25)
Пробуйте, заливайте, критикуйте, ...


Хорошо, когда кто то работает, можно отдохнуть и покритиковать.

Во первых- возвраты у тебя идут не туда. Они опять запускают счетчик.

Выделяем главный модуль программы- своего рода диспетчер.
В это время ЦП отдыхает и следит за прерываниями.
Его надо пометить. И все возвраты из прерываний делать именно сюда.

Во вторых- если уж хочешь использовать память- то гораздо лучше записать туда константы,
например зеро= 0 , тогда не нужна будет команда записи нулей в промежуточный регистр,
а можно просто сразу пересылать его в цель.
У нас есть 15 первых ронов, которые как раз и подходят под это дело.
Вот их надо обозвать- зеро, 5 мс, 30 мс, пуск таймера,
разрешение слипа и т.д. и проинициализировать- записать зараннее константы.
Программа сразу короче будет и нагляднее.




Размер : 19.77 KB
_________________
я плохого не посоветую
- Правка 09.05.11(13:01) - dedivan
andy8mm | Post: 306511 - Date: 09.05.11(19:14)
dedivan, как обратную связь в таракана вернуть "либо 600 в либо 100-200 в".
За усы таракана кто дергать будет?

andy8mm | Post: 306512 - Date: 09.05.11(19:16)
JohnZ, разжуй дедову критику на картинке поподробнее.
Я залью в "Т25", а чего дальше, может макетку-моргалку какую для опытов?
Если надо прикуплю тебе 25-ых, а ты мне 13-ых, потом поменяемся мах-на-мах.
Предложение: присваивать версию прошивке согласно номера поста в котором выложена,
тогда не заплутаем, мабуть(наверное).
Номер дедова факса по секрету написал, а ты раструбил...китайцы телефон оборвут

JohnZ | Post: 306543 - Date: 09.05.11(21:39)
dedivan Пост: 306458 От 09.May.2011 (07:34)
JohnZ Пост: 306384 От 08.May.2011 (17:29)
только сигнал переключающий 1-3 или 2-4 цил. Где его взять ?

Что тут можно придумать? Есть такой факт при сжатии в цилиндре искра должна иметь порядка 15 кв напряжения,
а если цилиндры внизу- давления нет, то искра имеет напряжение пробоя 2-3 кв.
При этом в первичке трансформатора мы получим импульсы либо 600 в либо 100-200 в.
То есть запуская на пробу искру во все цилиндры сразу- мы можем определить где у нас сжатие, и от этого цилиндра плясать как от печки.

dedivan есть анекдот, про филина и мышей, который заканчивается - "... отстаньте от меня, я занимаюсь стратегией"
Где (или как ?) в таракане УВИДЕТЬ эти "600 в либо 100-200 в.", тем-более этот импульс ДОЛЖЕН ВИСЕТЬ пока МК не увидит его. На что заведён (откуда и как ?) этот сигнал ? На АЦП ? Так там всего-то ДО 5 в. входной сигнал - опять схемка нужна, для сопряжения

dedivan Пост: 306489 От 09.May.2011 (14:00)
JohnZ Пост: 306455 От 09.May.2011 (02:25)
Пробуйте, заливайте, критикуйте, ...

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

НеА... sleep - это ВНУТРЕННИЙ беЗконечный цикл, ... туда и возвращаемся. dedivan, что тогда будет твориться в стэке ? Вызовы прерываний то идут ! А куда пишется адрес возврата и когда ?
Что-бы счётчик НЕ запускался, ему перекрывает кислород out tccr0b, r18 !!! ... а в r18 в это время, как правильно подметил, - ноль !
Выделяем главный модуль программы- своего рода диспетчер.
В это время ЦП отдыхает и следит за прерываниями.
Его надо пометить. И все возвраты из прерываний делать именно сюда.

Дык они туда и БУДУТ идти ... Куды-ж ещё ? Где прерывание застанет, туда и вернёмся, по адресу в стэке ... т.е. опять в sleep.
Во вторых- если уж хочешь использовать память- то гораздо лучше записать туда константы, например зеро= 0 , тогда не нужна будет команда записи нулей в промежуточный регистр,
а можно просто сразу пересылать его в цель.

А где у мну запись нуля и использование ОЗУ ? Нету-ти ...
А то что _образуется_ в рез-те выполнения алгоритма - не в счёт !
И про диспетчер - правильно заметил, вот только при нОнешнем подходе управления (прерывания) МК по питанию, это не подходит. Вот если-бы по класике, через входА прерываний, и без дёрганья по питалову, тогда возможно ...
У нас есть 15 первых ронов, которые как раз и подходят под это дело. Вот их надо обозвать- зеро, 5 мс, 30 мс, пуск таймера, разрешение слипа и т.д. и проинициализировать- записать зараннее константы. Программа сразу короче будет и нагляднее.

НеА дедИван, не так. Пробовали, - знаем В попугаях длиннее ...
Их ведь грузить надо, а потом из них в другой РОН. А так - напрямую, и скорость выполнения не пострадает. Ведь так ?
Да, и ещё - после reti, sei не обязателен. Смотрите в ДШ и егойный АСМ !

Удачи !

- Правка 09.05.11(21:53) - JohnZ
Maximusua | Post: 306551 - Date: 09.05.11(21:55)
JohnZ Пост: 306543 От 09.May.2011 (22:39)
Где (или как ?) в таракане УВИДЕТЬ эти "600 в либо 100-200 в.", тем-более этот импульс ДОЛЖЕН ВИСЕТЬ пока МК не увидит его. На что заведён (откуда и как ?) этот сигнал ? На АЦП ? Так там всего-то ДО 5 в. входной сигнал - опять схемка нужна, для сопряжения

Анекдот хороший !
Делитель. И соотношение 600 и 200 хорошее. Аккурат в уровень 0 и 1
получится и без АЦП, и висеть будет постоянно.

dedivan | Post: 306552 - Date: 09.05.11(21:55)
JohnZ Пост: 306543 От 09.May.2011 (22:39)
Ведь так ?

Не так.

Из прерывания по reti МК возвращается на СЛЕДУЮЩУЮ команду из которой был вызван.
Вызов был из слипа. Какая следующая команда? декремент? С какой стати
еще раз вычитать?
Прогони программу в студии. Там все видно.

И по константам - посмотри внимательнее. С ними короче-
их не нужно загружать- они уже загружены при инициализации.

И писать удобнее- винарные коды один раз занес-
и потом пишешь - в рег. управления переслать "пуск таймера".

все понятно и наглядно.

_________________
я плохого не посоветую
- Правка 09.05.11(22:02) - dedivan
andy8mm | Post: 306556 - Date: 09.05.11(22:02)
Ранний пробой в "пустых"(ложных) цилиндрах, как фиксировать?


dedivan | Post: 306557 - Date: 09.05.11(22:05)
Эта штука называется импульсный вольтметр.
диод- кондер- делитель на сопротивлениях. дальше АЦП или компаратор.

_________________
я плохого не посоветую
andy8mm | Post: 306565 - Date: 09.05.11(22:27)
dedivan , это задачка с "АЦП или компаратор" для второй тиньки?

dedivan | Post: 306566 - Date: 09.05.11(22:32)
andy8mm Пост: 306565 От 09.May.2011 (23:27)
для второй тиньки?

Как тут сказать- если у нас два канала зажигания- то две тиньки уже есть.
Так что скорее всего для третьей.
Она уже этими двумя будет управлять.
А может четырехканальный будешь делать- тогда это для пятой.


_________________
я плохого не посоветую
andy8mm | Post: 306567 - Date: 09.05.11(22:38)
Такая?
[ссылка] Это вариант корректора опережения зажигания, вместо грузиков и вакуумного корректора . Для обычного зажигания

- Правка 09.05.11(22:45) - dedivan
dedivan | Post: 306570 - Date: 09.05.11(22:42)
JohnZ Пост: 306543 От 09.May.2011 (22:39)
и ещё - после reti, sei не обязателен.


Тут все не просто.
Ты понял, что после слипа надо вставить jump -переход на майн.
Тогда если вдруг возникнет прерывание во время выполнения jump,
из этого прерывания МК вернется на команду после джампа- опять
на декремент.
Поэтому нельзя сразу разрешать прерывание , то есть пользуем ret,
а не reti и исполняем всегда джамп
а разрешение даем отдельно, когда уже вошли в нашу майну.

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

_________________
я плохого не посоветую
JohnZ | Post: 306574 - Date: 09.05.11(22:52)
dedivan Пост: 306552 От 09.May.2011 (22:55)
JohnZ Пост: 306543 От 09.May.2011 (22:39)
Ведь так ?

Не так.
Из прерывания по reti МК возвращается на СЛЕДУЮЩУЮ команду из которой был вызван.
Вызов был из слипа. Какая следующая команда? декремент? С какой стати
еще раз вычитать?
Прогони программу в студии. Там все видно.

dedivan - помнишь к/ф "Напарник" ?
- Руки ... мыли ?
- Ах да да да ...

Дык вот - "Ах да да да ..."
Исправил, прицепил ... Обошлось "малой" ... кхм. Добавил ещё один rjmp и исправил 2 константы, - обшибся малость
И по константам - посмотри внимательнее. С ними короче-
их не нужно загружать- они уже загружены при инициализации.
И писать удобнее- бинарные коды один раз занес-
и потом пишешь - в рег. управления переслать "пуск таймера".
все понятно и наглядно.

Тут действительно задвоена всего ОДНА константа, счётчик циклов, т.к. есть его _инициализация_ и _пере-инициализация_. Разве в этом проблема ? Оставим эту доработку на следующую версию

Удачи !

Исправлено. Версия 1.1 Размер : 8.53 KB
JohnZ | Post: 306584 - Date: 09.05.11(23:12)
dedivan Пост: 306570 От 09.May.2011 (23:42)
JohnZ Пост: 306543 От 09.May.2011 (22:39)
и ещё - после reti, sei не обязателен.

Тут все не просто.
Ты понял, что после слипа надо вставить jump -переход на майн.
Тогда если вдруг возникнет прерывание во время выполнения jump,
из этого прерывания МК вернется на команду после джампа- опять
на декремент.

Почему ? А разве не на ту метку КУДА указывает jump ?
Получается что jump НЕ ВЫПОЛНИТСЯ СОВСЕМ ?
Поэтому нельзя сразу разрешать прерывание , то есть пользуем ret, а не reti и исполняем всегда джамп а разрешение даем отдельно, когда уже вошли в нашу майну.

reti можно и не пользовать. Инкремент стека и sei, - но ведь ОДНА команда короче двух ? А на майн (т.е. reset) оно само заползёт при СЛЕДУЮЩЕМ дёргании проца по питанию. Ведь у нас так МК работает ? Или я ошибаюсь ?
reti нужно использовать когда прерывание возникает по ходу в обычной программе, а не в диспетчере.
ДедИван - Диспетчер применим в класической схеме с прерываниями, а не дёрганьем по питанию... Тут он сам туда попадёт при следующей подаче питания.

Удачи !

- Правка 09.05.11(23:13) - JohnZ
<][ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 ][>
У Вас нет прав отвечать в этой теме.
Форум - Сделай сам. Советы. - Домашнему мастеру - Литровый контроллер - Стр 31

Главная | Содержание | Форум | Файлы | Поиск | Контакт