Ich versuchs trotzdem mal mit Code!
Das ist nur der Code für den Comparematch Interrupt.
Die Timer Initialisierung und die Initialisierung der Variablen, sowie die Interruptfreigabe müssen natürlich auch gemacht werden.
Die indizierte Variable Pulslengh hat dabei 9 Integer ( 16Bit ) Speicherplätze.Code:Comparematch Interrupt Routine if(pinb.0==0) // Hier werden die Pulslängen erzeugt { portb.0=1; OCR1A=TCNT1+Pulselengh[channel]-200; } else { // Hier werden die Pausen zwischen den Impulsen erzeugt portb.0=0; OCR1A=TCNT1+200; channel++; if(channel>8){channel=0;}; };
Im Speicherplatz 0 ist die Länge der Pause drin, im rest die gewünschten Impulslängen.
Mehr ist das nicht.
Ich hab den Code jetzt mal kurz aus dem Kopf aufgeschrieben und hoffentlich nichts vergessen.







Zitieren

Lesezeichen