Итак сваял простенький контроллер включения камеры заднего вида.
Пока первый вариант - при включении передачи переключается с VGA на AV1. При выключении преключается AV2->TV->VGA. Т.к. на моем мониторе AV2 нету, камера подключена на AV1.
Контроллер ATTINY2313. Исходник на Си:
Код:
#define R_GEAR D, 3, H // (нога 7) Вход задней передачи
#define AV_BTN D, 4, L // (нога 8) Кнопка AV на мониторе (ее тыкать)
#define LED B, 7, L // (нога 19) индикатор
void delay_s(int s)
{
while(s--){
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
}
}
void AV_click()
{
direct(AV_BTN, O);
on(AV_BTN);
on(LED);
delay_ms(100);
off(AV_BTN);
direct(AV_BTN, I);
off(LED);// тыкаем AV
}
int main (void)
{
int AV_mode=0; // режим монитора 0-VGA, 1-AV1, 2-AV2, 3-TV.
// инициализируем таймер 0 (для функции delay_ms())
timer0_init();
// init ножек
direct(R_GEAR, I);
direct(AV_BTN, I);off(AV_BTN);
direct(LED, O);
off(AV_BTN);
off(LED);
// разрешаем прерывания
sei();
// тест:
while(TRUE)
{
if( (signal(R_GEAR)) && (AV_mode == 0) ) // включили заднюю и мы на VGA
{
delay_s(1);
// ждем секунду чтобы не тыкаться на автомате (рычаг всегда проходит через R)
if(!signal(R_GEAR)) continue;// Уже нет задней - выходим
// изначально думаем что монитор в режиме VGA
AV_click();
AV_mode=1; // мы в режиме AV1 - на камере;
on(LED);
}
if( (!signal(R_GEAR)) && (AV_mode == 1) ) // выключили заднюю и мы на AV1
{
off(LED);
delay_s(1);
// ждем секунду
if(signal(R_GEAR)) continue;// ложная тревога
AV_click();
AV_mode=2; // мы в режиме AV2
delay_ms(150);
AV_click();
AV_mode=3; // мы в режиме TV
delay_ms(250);
delay_ms(250);
delay_ms(250);
// возможно надо будет задержку побольше.
AV_click();
AV_mode=0; // мы снова в режиме VGA
off(LED);
}
}
return 0; // сюда не попадём
}
схемка:
собрано:
упаковано:
Далее планирую сделать контроллер посложнее:
1. с обратной связью по режиму монитора(чтоб он знал в каком режиме монитор сейчас)
2. чтоб сам управлял питанием камеры(чтобы камера выключалась не сразу как выключили заднюю, а через некоторое время - удобно при сложных маневрах)
3. подключение обгонной камеры для праворуких через сам контроллер - т.к. видео вход на мониторе только один.