'12VPulser_Ubatt_2.0.bas '02.05.2019 'Batteriepulser für Bleiakkus 'Strombedarf stark gesenkt, von 7,3mA auf 1,6mA (ohne Pulse) 'Nach 5ms Betriebszeit legt sich der Controller schlafen 'Unterprogramm "Schlafen" $regfile = "attiny85.dat" $crystal = 8000000 $hwstack = 20 $swstack = 20 $framesize = 20 Dim Spannung As Word Dim Uokflag As Byte Dim Onoff As Byte Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Start Adc Portb.0 = 0 Portb.1 = 0 '################### Do Gosub Messen Gosub Pulsen Gosub Schlafen Loop '################### 'Unterprogramme '++++++++++++++++++++++++++++++ Pulsen: 'Pulser. Pulslänge 150µs. 'Unter 11Volt nicht mehr pulsen (Portb.0 immer 0) Portb.0 = Onoff 'Strom an/aus Portb.1 = Onoff 'LED grün an/aus Waitus 150 Portb.0 = 0 'Strom aus Portb.1 = 0 'LED grün aus Return '+++++++++++++++++++++++++++++ Messen: 'Misst die Akkuspannung und meldet.. '..rot bei <=12V (Lader anschließen) '..rot und Pulse aus <=11V (Tiefentladeschutz) ' '2 x messen wegen Resetneustart (genauer). Spannung = Getadc(3) Spannung = Getadc(3) 'Standardwerte vorbelegen Uokflag = 0 Onoff = 1 'Prüfen ob U<12V (12V/15V*1024=819) If Spannung <= 819 Then Uokflag = 1 End If 'Prüfen ob U<=11V (11V/15V*1024=750) If Spannung <= 750 Then 'Pulsen abschalten Onoff = 0 End If 'Bei U<12V rot blinken Portb.2 = Uokflag Waitms 5 Portb.2 = 0 Return '++++++++++++++++++++++++++++++ Schlafen: 'Schlafdauer schlafen, danach erfolgt ein Reset. '256, 512,1024, 2048, 4096, 8192 eintragen: 'Prüfen ob Ladegerät angeschlossen (> ca.13,2V), dann '..schnelle Pulse sonst langsame. '..(13,2V/15V*1024=900) Config Watchdog = 8192 If Spannung >= 890 Then Config Watchdog = 512 End If Start Watchdog Powerdown Return '++++++++++++++++++++++++++++++ End