• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Opóźnienie działania arduino oraz 3 serwo.
#2
W jaką stronę zmierzać?
Ano w taką, która najbardziej odpowiada Twoim oczekiwaniom.
Chcesz wybudzać procesor przerwaniem z timera, więc masz do wyboru cztery tryby pracy.
IDLE, ADC Noise Reduction, Power-save, Extended Standby.
Najlepszym wyborem, według mnie, jest tryb Power-save.

Ja bym napisał tak:
Kod:
#include <avr/sleep.h>
#include <avr/power.h>
volatile int licznik=0;

ISR(TIMER1_OVF_VECT)
{
  licznik++;
}

void dobranoc()
{
 set_sleep_mode(SLEEP_MODE_PWR_SAVE);
 
 sleep_enable();
 power_adc_disable();
 power_spi_disable();
 power_timer0_disable();
 power_timer2_disable();
 power_twi_disable();  

 sleep_mode();
 
 sleep_disable();

 power_all_enable();
}

void setup()
{
 TCCR1A=0x00;
 TCNT1=0x0000;
 TCCR1B=0x05;
 TIMSK1=0x01;
}

void loop()
{
 
 dobranoc();
 if(licznik==21600)
 {
   funkcja_obslugi_serwaomechanizmu();
   dobranoc();
 }
 if(licznik==43200)
 {
   funkcja_obslugi_serwaomechanizmu();
   dobranoc();
 }
 if(licznik==64800)
 {
     licznik = 0;// po 72 godzinach resetujemy licznik
   funkcja_obslugi_serwaomechanizmu();
   dobranoc();
 }
}
void funkcja_obslugi_serwaomechanizmu(){
   // tutaj napisz co ma robic serwo
}


Tryb zegara jest tak ustawiony, żeby resetował się co miej więcej 4 sekundy.
Po tym czasie daje nam przerwanie TIMER1_OVF_VECT i inkrementuje się zmienna licznik.
Gdy procesor wyjdzie z uśpienia 21600 razy, to oznacza, że minęło 24 godziny i wykonujemy funkcję obsługi serwa i idziemy spać.
ITD...
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Opóźnienie działania arduino oraz 3 serwo. - przez Robson Kerman - 25-04-2018, 08:44

Skocz do:


Przeglądający: 1 gości