PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADXL202



ChRiZ
09.07.2006, 20: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

ChRiZ
09.07.2006, 22:21
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);