Питание (+5В) на рации есть всегда, пока включено зажигание, вне зависимости от того, включена она или нет.
Нашёл точку, которую можно мониторить. Там скачут импульсы, но они очень редкие, а в основном при включенной рации там единица.
Программа под спойлером:
Спойлер
Код: Выделить всё
#ifndef F_CPU
# define F_CPU 9600000
#endif
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#define sbi(reg, bit) (reg|=(1<<bit))
#define cbi(reg, bit) (reg&=~(1<<bit))
#define ckbi(reg, bit) reg & (1<<bit)
#define PIN_IN PINB2
#define PIN_OUT PINB4
uint8_t LastState EEMEM = 0; //При первом включении контроллера автоматического включения рации не будет
int main(void)
{
uint8_t NowState;
while(1)
{
LastState = eeprom_read_byte(&LastState);
if (LastState==1)
{
//Включение кнопки
sbi(DDRB,PIN_OUT); //Порт на выход. т.к. порты по дефолту в ноле, то сразу будет ноль на пине
_delay_ms(200);
cbi(DDRB,PIN_OUT);// Переводим на вход в Z-состояние
}
// Мониторим состояние рации (включена/выключена) и сохраняем это в EEPROM. Т.к. Этот цикл бесконечный и работает пока включено
// зажигание, то в EEPROM остаётся последнее состояние
while (1)
{
if ((ckbi(PINB, PIN_IN))==0)
{
NowState=0;
}
else
{
NowState=1;
}
eeprom_update_byte(&LastState, NowState);
}
}
}
Если в картинках, то:
Рация включена:

Выключаем зажигание, включаем снова:

А вот так должно быть:
Это я подсоединил PINB2 на +5В и выключил-включил

Ткните носом, где я туплю?


