ChRiZ
09.07.2006, 21:14
Hallo Zusammen!
Ich habe ein Problem mit dem PWM Ausgang des ADXL's.
#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
Ich habe ein Problem mit dem PWM Ausgang des ADXL's.
#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