Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

timers sur AVR




  1. #1
    zanzeoo

    timers sur AVR

    salut a tous
    j'essaye de generer un signal de 40Khz sur la broche PORTB.0 d'un atmega8

    j'utilise l'osc interne de 1Mhz sans prescale

    je charge donc le registre TCCR1B a 0x01 (prescale =1) les fusibles sont configurés pour avoir cksel3=0 cksel2=1 cksel1=0 cksel0=0 (1Mhz)



    Pourtant la freq sur l'oscillo est d'environ 10Khz !!! je pige pas j'ai pourtant reussi avec des freq plus basses


    voici le code:

    /****************************** **********************
    #include <mega8.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x01;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: 8000,000 kHz
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x01;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    while (1)
    {
    if (TCNT1>=25)
    {
    PORTB.0^=1;
    TCNT1=0;
    };

    };
    }

    -----


  2. #2
    zanzeoo

    Re : timers sur AVR

    uppppppppppp

Sur le même thème :

Discussions similaires

  1. Usart Avr
    Par McFly dans le forum Électronique
    Réponses: 13
    Dernier message: 20/05/2006, 23h43
  2. UART avr
    Par McFly dans le forum Électronique
    Réponses: 8
    Dernier message: 18/05/2006, 18h07
  3. Avr Studio
    Par McFly dans le forum Électronique
    Réponses: 9
    Dernier message: 17/05/2006, 17h02
  4. besoin d'aide sur la programmation des TIMERs du PIC svp !!!
    Par lolominator dans le forum Électronique
    Réponses: 6
    Dernier message: 02/04/2006, 23h24
  5. Comparatif AVR/PIC
    Par JP dans le forum Électronique
    Réponses: 25
    Dernier message: 19/02/2005, 22h48