Ich habe nun den Quelltext entsprechend angepasst:
Code:
#define SYSTEMCLOCK 3686400
#define F_CPU 3686400UL
#define LCD_PORT PORTC
#include <avr/io.h>
#include <avr/interrupt.h>
#include "display.inc"
volatile unsigned long freq = 0;
volatile unsigned int tim0_cnt = 0;
int main(void){
DDRC=0xff;
DDRB=0xff;
lcd_init();
PORTB=0xff;
lcd_setcursor(0,0);
lcd_putstring("Freq: ");
OCR0=180; // 1/20
TCNT0=0;
TCCR0=(1<<WGM01)|(1<<CS12)|(1<<CS00)|(1<<COM00); // CTC, pr=1024, bei Match OC0 toggle
// Timer 1
TCNT1=0;
TCCR1B=(1<<CS12)|(1<<CS11)|(1<<CS10)|(1<<ICNC1)|(1<<ICES1);
TIMSK=(1<<OCIE0);
TIFR=(1<<ICF1);
while(1){
if((TIFR&_BV(ICF1))!=0){
TIFR=(1<<ICF1);
lcd_setcursor(6,0);
lcd_putdez_uint(ICR1);
TCNT1=0;
}
}
return 0;
}
Irgnedwie scheint das mit Clock-Source = extern nicht zu klappen.
Im Display erhalte ich nämlich nur die ausgabe: Freq: 0000
Gibt es noch etwas bei der externen Clock-Source zu beachten?
Laut Manual müsste es ja reichen wenn ich die Bits im TCCR1B entsprechend setze.
Lesezeichen