Ich möchte mich bei euch für die Hilfe bedanken. Der Fehler wurde gefunden.
Hier ist nun der funktionierende Code. Der Tiny13 wird nun mit 128kHz getaktet um Strom zu sparen und um wenig Funktörungen hervorzurufen (meine Sorge). Mehr Einsparpotential bei der Energie kann ich nicht mehr finden. Der Verbrauch liegt bei <1mA.
Der Tip mit dem fehlenden "Enable Aci" hat den Durchbruch gebracht. Zur Sicherheit habe ich auch noch den Stack vergrößert.
Grüße Jörn
Code:
'Pin1-PB5= Reset mit 100nF gegen Masse und 10k nach 5V
'Pin2-PB3= Relais
'Pin3-PB4= Relais
'Pin4= GND
'Pin5-PB0= (MOSI)
'Pin6-PB1= (MISO)
'Pin7-PB2= SCK und Analogeingang für XFIL (AnalogKomparator)
'Pin8= VCC 5V
'
$regfile = "ATtiny13.dat"
'$crystal = 9600000
$crystal = 128000
$hwstack = 32
$swstack = 8
$framesize = 16
Stop Timer0
Stop Watchdog
Stop Adc
Dim Test As Byte
Config Aci = On , Compare = Off , Trigger = Toggle
Adcsrb.acme = 1 'Analoge Comparator Multiplexer Enable
Acsr.acbg = 1 'Referenzspannung eingeschaltet
Admux = 1
Start Ac
On Aci On_aci
Stop Adc
If Acsr.aco = 1 And Test = 1 Then
Test = 0
Ddrb = &B00011000
Portb.4 = 0
Portb.3 = 1 'Relais als Test wackeln
Waitms 100
Ddrb = &B00000000
End If
If Acsr.aco = 0 And Test = 0 Then
Test = 1
Ddrb = &B00011000
Portb.4 = 1
Portb.3 = 0 'Relais als Test wackeln
Waitms 100
Ddrb = &B00000000
End If
Enable Aci
Enable Interrupts
Do
Power Idle
'Idle
Loop
On_aci:
If Acsr.aco = 1 And Test = 1 Then
Test = 0
Ddrb = &B00011000
Portb.4 = 0
Portb.3 = 1 'Relais als Test wackeln
Waitms 100
Ddrb = &B00000000
End If
If Acsr.aco = 0 And Test = 0 Then
Test = 1
Ddrb = &B00011000
Portb.4 = 1
Portb.3 = 0 'Relais als Test wackeln
Waitms 100
Ddrb = &B00000000
End If
Return
Lesezeichen