Hallo zusammen,
ich habe hier einen ganz simplen Code zum einlesen von zwei ADC Werten. Dabei ist der eine der Sollwert und der andere der gemessene Istwert. Die Schaltung ist ähnlich einem Schaltnetzteil mit FET`s als Schalter und einem Optokoppler als Potentialtrennung versehen. Ich verwende hier einen ATmega 8 ohne externen Quarz, also die 3,6864 MHz.
Das Problem ist, dass das Program extrem langsam ist, man kann aslo die Schaltimpulse mitzählen. Woran liegt das?Code:mainloop: wdr ;zum clearen von ADCH und ADCL ;AVcc-left_adjusted-channel 1 => Taster out ADMUX,r16 out ADCSRA,r31 ;adc-enable/start_conversion/clk:32 bis_convertet1: sbic ADCSRA,6 rjmp bis_convertet1 in r17,ADCH nop nop nop out ADMUX,r18 out ADCSRA,r31 bis_convertet2: sbic ADCSRA,6 rjmp bis_convertet2 in r19,ADCH cp r17,r19 ;VERGLEICH-VERGLEICH-VERGLEICH brcc an ldi r21,0b11111111 out PORTB,r21 rjmp mainloop an: ldi r21,0b00000000 out PORTB,r21 ;Hier den Quellcode etztztintragen. rjmp mainloop
Danke,
The Man







Zitieren

Lesezeichen