Hier der Code für Counter 4 ist ein 328PB. Sollte nach anpassen der Register auch für Counter 1 passen.
Der Code ist für 20MHz für 16MHz müsstest Du die ICR und OCR Werte anpassen ( 1,5ms und 18,5ms, also 3000 und 37000 ).
Durch Schreiben ins OCRxA Register kann die Impulslänge eingestellt werden.Code:// Timer/Counter 4 initialization // Clock source: System Clock/8 // Clock value: 312,500 kHz // Mode: Fast PWM top=ICR4 // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: OFF // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: OFF // Compare B Match Interrupt: Off TCCR4A=(1<<COM4A1) | (0<<COM4A0) | (0<<COM4B1) | (0<<COM4B0) | (1<<WGM41) | (0<<WGM40); TCCR4B=(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10); TCNT4H=0x00; TCNT4L=0x00; ICR4H=0xC3; ICR4L=0x50; OCR4AH=0x0A; OCR4AL=0xBE; OCR4BH=0x00; OCR4BL=0x00;







Zitieren
Lesezeichen