Hallo,
ich habe Probleme den AnalogKomparator richtig einzusetzen. Mein Programm reagiert nicht auf einen Pegelwechsel.
Ein Pegelwechsel an PB2 (ADC1) soll vom Komparator erkannt werden. Bei jedem Pegelwechsel soll ein Relais wackeln (als Test). Verwendet werden soll die interne Referenz von 1,1V. Mein Pegel muss dann also deutlich größer oder kleiner 1,1V sein.
Wenn dass Programm die Mainloop erreicht hat, reagiert es nicht mehr
Vielleicht könnt ihr den Fehler in meinem Programm entdecken.
Danke 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 den AnalogKomparator ADC1 'Pin8= VCC 5V ' $regfile = "ATtiny13.dat" $crystal = 9600000 $hwstack = 8 $swstack = 2 $framesize = 5 Stop Timer0 Stop Watchdog Stop Adc Dim Test01 As Byte Test01 = 0 Ddrb = &B00011000 Ddrb = &B00011000 Portb.4 = 1 'Relais als Test wackeln Portb.3 = 0 Waitms 500 Portb.4 = 0 Portb.3 = 1 Waitms 500 Portb.4 = 1 Portb.3 = 0 Waitms 500 Ddrb = &B00000000 Config Aci = On , Compare = Off , Trigger = Toggle Adcsrb.acme = 1 'Analoge Comparator Multiplexer Enable Acsr.acbg = 1 'Referenzspannung eingeschaltet 'Adcsra.aden = 0 Admux = 1 'Analogeingang für den AC ist ADC1 d.h. PB2 Start Ac On Aci On_aci Enable Interrupts Do Loop On_aci: Test01 = Adcsr.aco If Test01 = 0 Then Ddrb = &B00011000 Portb.4 = 1 Portb.3 = 0 'Relais als Test wackeln Waitms 500 Portb.4 = 0 Portb.3 = 1 Waitms 500 Portb.4 = 1 Portb.3 = 0 Waitms 500 Ddrb = &B00000000 Else Ddrb = &B00011000 Portb.4 = 0 Portb.3 = 1 'Relais als Test wackeln Waitms 500 Portb.4 = 1 Portb.3 = 0 Waitms 500 Portb.4 = 0 Portb.3 = 1 Waitms 500 Ddrb = &B00000000 End If Return







Zitieren
Hoffentlich liegt das Ziel auch am Weg 

Lesezeichen