Вт окт 23, 2018 21:12:22
Вт окт 23, 2018 21:21:18
Вт окт 23, 2018 21:25:40
Вт окт 23, 2018 21:28:47
Ср окт 24, 2018 01:58:59
Ср окт 24, 2018 04:34:22
Ср окт 24, 2018 04:54:53
Если устраивают дополнительные ~50мкА собственного потребления компаратора, то да, можно не отключать.Ivanoff-iv писал(а):систему отключать не обязательно
Чт окт 25, 2018 09:42:35
Чт окт 25, 2018 10:55:40
Novice user писал(а):...мк,пара конденсаторов и питание-все!!!для верности подтянуть reset к плюсу резистором,питание измерять при помощи ADC14
Пт ноя 02, 2018 07:44:19
Вс ноя 04, 2018 22:41:40
на готовых ардуинах
Чт ноя 08, 2018 09:40:13
void counter_init()
{
TCCR2 = (1<<WGM21)|(1<<CS22)|(1<<CS20);
OCR2 = F_CPU/128/1000;
TIMSK |= 1<<OCIE2;
ASSR = 1<<AS0; // Включаем асинхронный режим таймера 0
TCCR0 = (1<<CS02)|(1<<CS00);
TIMSK |= (1<<TOIE0);// enable Timer0 overflow interrupt
}
ISR(ANALOG_COMP_vect)
{
if ((ACSR&0x20)==0x20) {gl_pwrOFF=1;}
//else { gl_pwrOFF=0;}
// PORTC |= (1<<PC0);PORTC &= ~(1<<PC0);
}
int main()
{
... инит портов
uart_init ();
stdout = &mystdout;
printf("Hello, world!\n");
lan_led_init();
ACSR |= (0<<ACD)|(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0);// Init Comparator
counter_init();
sei(); //printf("Int. init!\n");
set_sleep_mode(SLEEP_MODE_PWR_SAVE);
sleep_enable();//Разрешение входа в режим сна:
old_sec=0;
while(1)
{
if (old_sec!=second_count)
{ PORTC^=(1<<0);
old_sec=second_count;
}
if (gl_pwrOFF)
{
ACSR |= (0<<ACIE);
ACSR |= (1<<ACD);
PORTC &= ~(1<<PC0);
while(gl_pwrOFF)
{
sleep_mode(); //Enter sleep mode. (Will wake up from timer overflow interrupt)
TCCR0=(1<<CS00)|(1<<CS02); //Write dummy value to control register
while(ASSR&((1<<TCN0UB)|(1<<OCR0UB)|(1<<TCR0UB)));
if((PINE & 0b00001000)) {gl_pwrOFF=0;PORTC |= (1<<PC0);}
}
_delay_ms(200);
ACSR |= (0<<ACD)|(0<<ACBG)|(1<<ACI)|(0<<ACIE)|(0<<ACIC)|(1<<ACIS1)|(1<<ACIS0);
ACSR |= (1<<ACIE);
// _delay_ms(10000);
}
}
return 0;
}
Чт ноя 08, 2018 21:39:46
Пт ноя 09, 2018 16:15:09
Baltazar66 писал(а):В программном плане, вроде бы проблем нет, отправляем дивайсину спать, пока её не трогают, и вроде бы всё понятно, но на готовых ардуинах приляпан понижающиё стабилизатор, который жрёт гораздо больше самого микроконтроллера, поэтому логично было бы построить свою плату.
АСУ писал(а):Замер напряжения питания для такого случая удобно организовать без использования выводов МК, а так же без каких либо делителей. Делается это следующим образом – опорным напряжением выбирается напряжение питания, а на вход мультиплексора подаём внутреннее опорное напряжение 1,1 В. (MUX = 14).
Пт ноя 09, 2018 16:41:11
Пт ноя 09, 2018 16:56:13
Пт ноя 09, 2018 19:35:43
Пт ноя 09, 2018 22:28:13
Novice user писал(а):все кнопки на прерывания PCINT
Пт апр 12, 2019 12:33:32
Пт апр 12, 2019 14:41:43