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 ).
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;
Durch Schreiben ins OCRxA Register kann die Impulslänge eingestellt werden.
Lesezeichen