-
ADXL202
Hallo Zusammen!
Ich habe ein Problem mit dem PWM Ausgang des ADXL's.
Code:
#define F_CPU 8000000 /* 8Mhz */
ISR(SIG_INTERRUPT1){
if(x1==1){
x1=0;
MCUCR = (1<<ISC11 | 1<<ISC10); //Int1 rising edge
t1 = count;
}
else{
x1=1;
MCUCR = (1<<ISC11 | 0<<ISC10); //Int1 falling edge
t2=count;
count = 0;
}
}
SIGNAL (SIG_OUTPUT_COMPARE1A){
count++;
}
void Timer_Inits(void){
TIMSK |= (1<<OCIE1A) ;
TCCR1B = (1<<CS10 | 0<<CS11 | 0<<CS12);
MCUCR |= (1 << ISC11) | (1 << ISC10);
GIFR = (1 << INTF1);
GICR |= (1 << INT1);
}
Die Variblen t1 und t2 werden aber nie grösser als 1.
entweder ist der Timer zu langsam oder es stimmt sonst noch was nicht :)
kann mir jemand helfen?
Atmega8
-
Hat sich erledigt..
es lag am Timer ;) der wahr zu langsam..
so funktionierts:
TCCR1A = 0;
TCCR1B = (1 << WGM12) | (1 << CS10);
OCR1A = (uint16_t) ((uint32_t) F_CPU / 100000 -1);
TIMSK |= (1 << OCIE1A);