Utilisation de PIC en C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Utilisation de PIC en C



  1. #1
    invite6ba1806f

    Utilisation de PIC en C


    ------

    Bonsoir

    Je programme un PIC18F1320 en C ( jutilise le compilateur CSS ) et j'ai un soucis de timer

    Je voudrais utiliser le timer0 en compteur (mode 16bits) ; qu'il compte les cycles d'horloges avec un prescale de 128.

    Ca ne fonctionne pas. Pour mettre hors de cause des pannes de PIC/de quartz et autres, jai essaye une fonction delay_us, ca a marche..


    Voila mon code :

    #include "C:\Documents and Settings\PIC18F1320\main.h"

    void main()
    {

    int ok;

    setup_adc_ports(NO_ANALOGS|VSS _VDD);
    setup_adc(ADC_OFF|ADC_TAD_MUL_ 0);
    setup_wdt(WDT_OFF);
    setup_timer_0(0b10000110);
    set_timer0(0);
    setup_timer_1(T1_DISABLED);
    setup_timer_2(T2_DISABLED,0,1) ;
    setup_timer_3(T3_DISABLED);
    setup_oscillator(OSC_8MHZ|OSC_ INTRC);

    // TODO: USER CODE!!

    while(TRUE)
    {//tout le temps
    if( get_timer0() > 100 ) //Si la valeur du timer est superieure a 100
    {
    if(ok==1) //Si ok est a 1, je mets A3 a VCC et relance le timer
    {
    output_high(PIN_A3);
    set_timer0(0);//on remet la valeur du timer a 0
    ok=0;
    }
    else //Sinon, je mets A3 a 0 et relance le timer
    {
    output_low(PIN_A3);
    set_timer0(0);//on remet la valeur du timer a 0
    ok=1;
    }
    }
    }
    }

    Merci d'avoir jeté un oeil

    PS : la doc du PIC en question : http://ww1.microchip.com/downloads/e...Doc/39605F.pdf

    -----

  2. #2
    invite25df009a

    Re : Utilisation de PIC en C

    Salut !

    Bon je vois pas trop ou peut être l'erreur. Ton initialisation du timer0 à l'air correct (je suppose que setup_timer_0 correspond à initialiser le registre T0CON : je ne connait pas trop CCS )

    Sinon tu pourrai peut être vérifier que le timer fonctionne bien en te servant des interruptions.
    Genre à chaque interruption du timer0 tu changes l'état d'une broche en sortie et tu l'observes à l'oscilloscope. Ou sinon t'affecte la valeur du timer0 (TMR0H ou TMR0L) à un port en sortie que tu peux observer avec des LED.

    Par contre quel est l'intérêt du compteur 16 bits si tu as juste besoin d'aller jusqu'à 100 ? (ou 100 est que pour l'exemple ??)

    Tchao

  3. #3
    invite6ba1806f

    Re : Utilisation de PIC en C

    Oui, 100 est pour lexemple..

    Je vais essayer de changer de PIC, le timer de celui-ci a peut etre un defaut..

    Merci dy avoir prete attention

  4. #4
    mortaurat

    Re : Utilisation de PIC en C

    y'a un petit probléme.
    Parce que si ok=1 tu mets A3 a VCC et relance le timer mais tu met aussi ok à 0.
    Alors que quand tu va relancer la boucle avec le else tu va mettre A3 a 0 et relancer le timer puis mettre ok à 1. Ce qui va t'amener au cas au dessu. Du coup tu avance jammais...

  5. A voir en vidéo sur Futura
  6. #5
    invite6ba1806f

    Re : Utilisation de PIC en C

    Bonjour,

    Cest normal "que ca n'avance jamais", c'est une boucle. Je voudrais que ma sortie A3 passe de 0 a Vcc puis de Vcc a 0 et ainsi de suite...

Discussions similaires

  1. Utilisation du module USB d'un PIC
    Par schneiderj dans le forum Électronique
    Réponses: 9
    Dernier message: 16/09/2008, 10h17
  2. [PIC] Utilisation de l'EEPROM
    Par invite3c35244f dans le forum Électronique
    Réponses: 41
    Dernier message: 30/06/2008, 11h31
  3. Utilisation de l'USART d'un pic 16f876
    Par invite5665230e dans le forum Électronique
    Réponses: 2
    Dernier message: 31/05/2007, 00h11
  4. utilisation de buffer sur PIC
    Par invite820b5138 dans le forum Électronique
    Réponses: 16
    Dernier message: 25/04/2007, 20h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...