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
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
$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