/* * Electrical Conduction Tester * * Created: 5/30/2022 5:35:20 PM * Author: www.henteko.org */ #include #include #include #include #define cbi(addr, bit) addr &= ~(1< 1200) // auto power off about 5 minute (0.25 * 1200) powerdown(); ad1 = get_adc(1); // sense battery if(ad1 < 620) // under 2.0V poff++; else poff = 0; if(ad1 < 682) // under 2.2V pdown++; else pdown = 0; if(poff > 20) // powerdown powerdown(); if(pdown > 20) { // brink indicator by battery low if(cnt % 2) sbi(PORTB, PB0); else cbi(PORTB, PB0); } else sbi(PORTB, PB0); ad2 = (get_adc(2) + get_adc(2) + get_adc(2)) / 3; // sense conduction if(ad2 < 192) { TCCR0B = _BV(WGM02)|2; // pwm on. highspeed PWM. prescaler 1/8 cnt = 0; } else { TCCR0B = 0; // pwm off. } } }