Próbuję stworzyć układ, który po wykryciu ciemności przez fototranzystor uruchamia program, który ma wyłączyć się po określonym czasie aktywności.
[syntax]
WDTCR |= (1<<WDCE) | (1<<WDTIE);
WDTCR &= ~(1<<WDE);
WDTCR |= (1<<WDP3 )|(0<<WDP2 )|(0<<WDP1)|(1<<WDP0); // 8s
sei();
if(ACSR & (1<<ACO)) {
if (czas_c < 2) {
PORTB |= (1<<PROG_WYK); //PROG_WYK - TAK
}
else {
PORTB &= ~(1<<PROG_WYK); // PROG_WYK - NIE
{
ISR(WDT_vect) {
czas_c ++;
}
[/syntax]
Problemem jest to, że watchdog timer prawdopodobnie za każdym razem resetuje się po przerwaniu i czas_c nie jest liczony
[syntax]
WDTCR |= (1<<WDCE) | (1<<WDTIE);
WDTCR &= ~(1<<WDE);
WDTCR |= (1<<WDP3 )|(0<<WDP2 )|(0<<WDP1)|(1<<WDP0); // 8s
sei();
if(ACSR & (1<<ACO)) {
if (czas_c < 2) {
PORTB |= (1<<PROG_WYK); //PROG_WYK - TAK
}
else {
PORTB &= ~(1<<PROG_WYK); // PROG_WYK - NIE
{
ISR(WDT_vect) {
czas_c ++;
}
[/syntax]
Problemem jest to, że watchdog timer prawdopodobnie za każdym razem resetuje się po przerwaniu i czas_c nie jest liczony