-
        

Ergebnis 1 bis 2 von 2

Thema: ADXL202

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.07.2006
    Beiträge
    143

    ADXL202

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.07.2006
    Beiträge
    143
    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);

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •