Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATMEGA8][BASCOM] Instrukcja watchdog

szeri88 16 Maj 2009 01:08 4777 1
  • #1 16 Maj 2009 01:08
    szeri88
    Poziom 14  

    Witam,

    Bardzo proszę o sprawdzenie czy program jest poprawnie napisany. Nie korzystałem do tej pory z instrukcji Watchdog, więc nie mam pewności czy jest ona poprawnie umieszczona. Zadaniem programu jest stały pomiar napięcia i w razie wystąpienia spadku załączany jest przekaźnik na czas 2 minut. Jeżeli spadek będzie występował czały czas to przelaźnik cały czas będzie zwarty i rozłączy się dopiero 2 minuty po przywróceniu prawidłowego napięcia. Dziękuję i Pozdrawiam

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 8000000

    Config Watchdog = 1024

    Config Timer0 = Timer , Prescale = 1024
    On Timer0 Pelny_timer0
    Enable Timer0
    Enable Interrupts
    Stop Timer0

    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Set Portc.3

    Config Portd.3 = Output

    Dim Wart_ac As Word
    Dim Srednia_ac As Word
    Dim Petla_ac As Byte
    Dim Licznik As Word


    Do
       Reset Watchdog
       Start Watchdog
       Start Adc
       Srednia_ac = 0
          For Petla_ac = 1 To 50
              Wart_ac = Getadc(3)
              Srednia_ac = Wart_ac + Srednia_ac
          Next Petla_ac
       Wart_ac = Srednia_ac / 50
          If Wart_ac < 300 Then
             Set Portd.3
             Licznik = 0
             Tcnt0 = 0
             Start Timer0
          End If
       Stop Adc
       Waitms 250
    Loop

    Pelny_timer0:
          Incr Licznik
             If Licznik = 3600 Then
                Reset Portd.3
                Stop Timer0
             End If
       Return

    0 1
  • Pomocny post
    #2 17 Maj 2009 01:06
    Menuet
    Poziom 16  

    Witam,
    Program w zasadzie jest ok, jedyne do czego bym się doczepił to umieszczenie polecenia "Start Watchdog" w głównej pętli programu, zamiast przed, a w pętli tylko polecenie "Reset Watchdog". Po drugie widać, ze za bardzo nie zależy Ci na oszczędności prądu (zegar 8MHz) to ja bym nie wyłączał przetwornika adc, bo po włączeniu pierwszy pomiar jest zazwyczaj błędny...
    Pozdrawiam, Menuet.

    0