МК ATmega8 и поворотники
МК ATmega8 и поворотники
Ребят, хочу поставить в машину дополнительные поворотники с разными эффектами, из линейки светодиодов. Один провод от МК будет подведен к лампочке в штатном поворотнике. И теперь нужно сделать так, что бы МК выполнял световые эффекты, только тогда когда мигает поворотник, а в другое время оставался просто включенным, только с не горящими светодиодами.
Как реализовать схему со включением светодиодов, именно в момент моргания поворотника? Только можно, простым доступным языком. Я только учусь...
Как реализовать схему со включением светодиодов, именно в момент моргания поворотника? Только можно, простым доступным языком. Я только учусь...
Последний раз редактировалось Fess Чт дек 03, 2009 15:49:58, всего редактировалось 1 раз.
- >TEHb<
- Друг Кота
- Сообщения: 5725
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Так реч ведь идёт о дополнительных поворотниках, а не о замене штатных. Только проблему не совсем понял. Интересует определение включен\выключен поворотник, а проблема в том, что когда он работает, то поворотник (непосредственно лимпочка) в некоторые моменты не горит, микруха может подумать, что он выключен? Ели так, но надо подключатся до штатной поворониковской мигалки и все дела. Но мне кажется, многие эффекты будут сильно отвлекать.
-
Saadov
- Нашел транзистор. Понюхал.
- Сообщения: 155
- Зарегистрирован: Вт авг 19, 2008 23:39:59
- Откуда: г.Смоленск
Для начала надо было воспользоваться поиском и посмотреть тут
http://radiokot.ru/circuit/light/run/
http://radiokot.ru/circuit/light/run/
Ребят, бегущие огни это понятно. Я уже давно собрал себе 4 эффекта на 555 и CD4017. Но во первых занимает много места, а во вторых хочется более углубленно разобраться в работе МК.
Нет я хочу сказать, что работа повторителя поворотов должна происходить синхронно с морганием лампочкой в штатном поворотнике. При этом каждый следующий запуск повторителей происходит на том же эффекте, на который его настроили в предыдущий раз.
>TEHb< писал(а): Интересует определение включен\выключен поворотник, а проблема в том, что когда он работает, то поворотник (непосредственно лимпочка) в некоторые моменты не горит, микруха может подумать, что он выключен?
Нет я хочу сказать, что работа повторителя поворотов должна происходить синхронно с морганием лампочкой в штатном поворотнике. При этом каждый следующий запуск повторителей происходит на том же эффекте, на который его настроили в предыдущий раз.
-
TechMike
- Прорезались зубы
- Сообщения: 247
- Зарегистрирован: Сб дек 15, 2007 23:00:54
- Откуда: Moscow
- Контактная информация:
>TEHb< писал(а): Интересует определение включен\выключен поворотник, а проблема в том, что когда он работает, то поворотник (непосредственно лимпочка) в некоторые моменты не горит, микруха может подумать, что он выключен?
Нет я хочу сказать, что работа повторителя поворотов должна происходить синхронно с морганием лампочкой в штатном поворотнике. При этом каждый следующий запуск повторителей происходит на том же эффекте, на который его настроили в предыдущий раз.[/quote]
Чтобы определить работают ли поворотники, нужно настроить таймер в МК на например 3 секунды, и если в течении задержи таймера на ножку МК приходит лог1 от поворотников, то они работают, если не приходят, то не работают. При этом будет погрешность по времени определения работы поворотников, равное задержки тацмера.
- >TEHb<
- Друг Кота
- Сообщения: 5725
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
И всё равно не вижу проблемы. Замыкается выключатель поворотника, что регистрируется МК. Тут он либо включается, либо выходит из спящего, как хотите. Когда лампочка загорается, то запускается новый цикл мигания микроконтроллером и специальный флаг устанавливается в 1, чтобы новый цикл не запускался на каджом такте. Мигаем, а вместе с этим ждём 0 на входе (лампочка не горит). Продолжает мигать, сбросив флаг. Как только загорелась проверяем флаг. Если 0, то перезапускаем цикл и кстанавливаем его в 1. Так и продолжаем до тех пор, пока не выключили поворотник, тогда простовыключам мигалку и засыпаем. Можно проще, например по переднему фронту на ножке INT0.
"Привет!" - соврал он.
- >TEHb<
- Друг Кота
- Сообщения: 5725
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
SeamaNCOS писал(а):По прерыванию int0(int1). Пошол сигнал с поворотника сработала прога на индикацию светадиов(читай датыш). А вообще я тоже противник делать из МШИНЫ "НОВОГОДНЮЮ ЁЛКУ".
>TEHb< писал(а):......Можно проще, например по переднему фронту на ножке INT0.
Тут уж кому что ближе. Хотя иногда дополнительная индикация действительно удобна. Вспомните хотябы те же поворотники на крыле.
"Привет!" - соврал он.
- Neekeetos
- Держит паяльник хвостом
- Сообщения: 993
- Зарегистрирован: Пн сен 18, 2006 11:16:05
- Откуда: Тула
- Контактная информация:
Fess писал(а):Нет я хочу сказать, что работа повторителя поворотов должна происходить синхронно с морганием лампочкой в штатном поворотнике. При этом каждый следующий запуск повторителей происходит на том же эффекте, на который его настроили в предыдущий раз.
Если ничего не изобретать с прерываниями то просто подай питание на свой хитрый стробоскоп с реле поворотников, тогда он будет работать исключительно в моменты когда поворотники горят.
Попробую объяснить:
Есть 5 эффектов. Питание на МК будет подаваться от лампочки штатного поворотника. Я хочу, что бы перед выключением питания МК запоминал, на какой эффект был настроен ранее.
То есть что надо прописать в программе (ассемблер) что бы МК запоминал эффект и в следующее включение начинал с него же!
Вот есть: http://radiokot.ru/circuit/light/run/26/ после первой картинки третий обзац, слова "Контроллер запоминает последний выбранный вручную кнопкой "next"" и далее! Вот что мне нужно!
Как это реализовать программно?
Есть 5 эффектов. Питание на МК будет подаваться от лампочки штатного поворотника. Я хочу, что бы перед выключением питания МК запоминал, на какой эффект был настроен ранее.
То есть что надо прописать в программе (ассемблер) что бы МК запоминал эффект и в следующее включение начинал с него же!
Вот есть: http://radiokot.ru/circuit/light/run/26/ после первой картинки третий обзац, слова "Контроллер запоминает последний выбранный вручную кнопкой "next"" и далее! Вот что мне нужно!
Как это реализовать программно?
Нет ничего невозможного. Просто есть вещи над которыми надо немного дольше подумать...
pyzh_man писал(а)://а здесь сохраняется номер эффекта.
while(EECR&(1<<EEWE)); //Ждать готовность EEPROM
EEAR=0x1FF;
EEDR=numbereffect;
EECR|=(1<<EEMWE);
EECR|=(1<<EEWE); //Сохраним текущий эффект в EEPROM
Так это на С. А как это сделать на ассемблере? Только, желательно, с пояснениями.
Нет ничего невозможного. Просто есть вещи над которыми надо немного дольше подумать...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
;здесь восстанавливается номер эффекта
lab2:
sbic 0x1C,1 ;ожидаем конца записи(если таковая идет)
rjmp lab2
LDI R30,0xFF ;загружаем младший байт адреса EEPROM
LDI R31,0x01 ;загружаем старший байт адреса EEPROM
OUT 0x1F,R31 ;выводим в соответствующие порты
OUT 0x1E,R30
SBI 0x1C,0 ;вэводим флаг чтения
IN numbereffect,29 ;и читаем
;**********************
;а здесь сохраняется номер эффекта.
lab1:
SBIC 0x1C,1 ;ожидаем конца записи(если таковая идет)
RJMP lab1
LDI R30,0xFF ;загружаем младший байт адреса EEPROM
LDI R31,0x01 ;загружаем старший байт адреса EEPROM
OUT 0x1F,R31 ;выводим в соответствующие порты
OUT 0x1E,R30
OUT 0x1D,numbereffect ;выводим данные
SBI 0x1C,2 ;пишем
SBI 0x1C,1
Все это толково описано в datasheet.
lab2:
sbic 0x1C,1 ;ожидаем конца записи(если таковая идет)
rjmp lab2
LDI R30,0xFF ;загружаем младший байт адреса EEPROM
LDI R31,0x01 ;загружаем старший байт адреса EEPROM
OUT 0x1F,R31 ;выводим в соответствующие порты
OUT 0x1E,R30
SBI 0x1C,0 ;вэводим флаг чтения
IN numbereffect,29 ;и читаем
;**********************
;а здесь сохраняется номер эффекта.
lab1:
SBIC 0x1C,1 ;ожидаем конца записи(если таковая идет)
RJMP lab1
LDI R30,0xFF ;загружаем младший байт адреса EEPROM
LDI R31,0x01 ;загружаем старший байт адреса EEPROM
OUT 0x1F,R31 ;выводим в соответствующие порты
OUT 0x1E,R30
OUT 0x1D,numbereffect ;выводим данные
SBI 0x1C,2 ;пишем
SBI 0x1C,1
Все это толково описано в datasheet.
- >TEHb<
- Друг Кота
- Сообщения: 5725
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Fess писал(а):Питание на МК будет подаваться от лампочки штатного поворотника.
Прошу вас, не надо! Есть же различные спящие режимы, есть прерывания, есть куча других способов не выключать его! Вы же комп не включаете каждые 7 минут чтобы посмотреть на ответы на форуме.
Ох, чувствую сейчас война по поводу пользы включений начнётся.
"Привет!" - соврал он.
