compilation pic16F877
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

compilation pic16F877



  1. #1
    invite83d28800

    compilation pic16F877


    ------

    Bonjour à tous,

    j'ai réalisé un programme qui doit envoyer après l'appui sur un bouton poussoir une impulsion de 100 µs puis de 50 µs .

    Mais après avoir mis mon programme dans mon pic16F877 avec mikrobasic,

    je ne visualise rien à l'oscilloscope alors que je pense qu'il n'y a pas d'erreur dans mon programme.


    Voici mon programme :

    program testa

    symbol sortie = PORTB.5
    symbol sortie2 = PORTB.3
    symbol bp = PortA.2

    main:

    trisa = $FF
    trisb = 0
    'cmcon =07

    portb = 0
    while true
    While bp = 1
    Wend



    Delay_us(100)
    sortie = 1
    delay_us(30)
    sortie2 = 1
    delay_us(50)
    sortie2 = 0
    delay_us(20)
    sortie = 0

    wend
    end.

    Est ce que quelqu'un aurait une idée ???

    -----

  2. #2
    invite6ceed97c

    Re : compilation pic16F877

    Bonjour,
    ajoute cette ligne sous les TRISx
    Code:
    ADCON1=7 ' desactiver les convertisseurs analogues

  3. #3
    invite83d28800

    Re : compilation pic16F877

    Salut,

    Même avec ce que tu m'as dit de rajouter cela ne fonctionne pas!!

    As tu une autre idée ???

    En faite, j'ai l'impression que le pic ne prend pas en compte le bouton poussoir et il ne met aucune sortie à un, tout reste à 0.

    Merci

  4. #4
    mictour

    Re : compilation pic16F877

    Bonjour lactel,
    Es-tu sur que ce wend :
    " While bp = 1
    Wend "

    soit au bon endroit ? Certe mon compilo (cc5x) n'a pas la même syntaxe ... mais je le verrais plus tôt ici :
    ....
    " Wend
    Wend
    end. "

    qu'en pense-tu?
    Bonne prog, mictour.

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

    Re : compilation pic16F877

    Le programme fonctionne, j'ai même téléchargé la version demo de MikroBasic pour en être certain

    Je suspecte un probleme de configuration des fusibles ou un probleme de circuiterie.
    Code:
        program Test16f877
    
        symbol sortie = PORTB.5
        symbol sortie2 = PORTB.3
        symbol bp = PortA.2
    
    main:
        trisa = $FF
        trisb = 0
        portb = 0
        adcon1=7
        while true
            While bp = 1
            Wend
    
            Delay_us(100)
            sortie = 1
            delay_us(30)
            sortie2 = 1
            delay_us(50)
            sortie2 = 0
            delay_us(20)
            sortie = 0
    
            wend
    end.

  7. #6
    invite83d28800

    Re : compilation pic16F877

    Salut tout le monde,

    Merci de votre aide, c'est steve qui avait raison, c'était un problème de configuration de l'horloge du PIC.

    Tout fonctionne maintenant, alors en route pour de nouvelle aventure.

    Tchao

  8. #7
    invite83d28800

    Re : compilation pic16F877

    resalut,

    Bon cette fois-ci je m'attaque à plus fort que moi je crois, mais j'aimerais bien comprendre pourquoi.

    Je vous explique, en fait je veux gérer des temps variables à l'aide des différents switchs présent sur ma plaque test .

    Par exemple si je prend 3 entrées j'ai 8 possibilités et je les codes en basic dans mon programme mais lorsque je lance le programme ( il n'y a pas d'erreur ) mais il ne prend pas en compte lorsque j'active un switch ou quoi que ce soit.

    Voici mon programme :

    merci

  9. #8
    invite83d28800

    Re : compilation pic16F877

    program pulsations



    symbol BP = PORTA.1


    main:

    CMCON = 7

    TRISA = 1
    ADCON1=7
    TRISB = 1
    ADCON1=7
    TRISD = 1
    ADCON1=7

    TRISC.0 = 0 ' output
    ADCON1=7
    PORTC.0 = 0
    PORTB.3 = 0
    PORTB.1 = 0
    PORTB.2 = 0
    debut:

    while BP = 0 ' détection d'un front descendant du bouton poussoir D.0
    wend

    if PORTA.0 = 0 then 'choix pour la première tempo si S0 = 1 -> possibilité de choisir entre 100µs et 840ms avec un pas de 120ms
    ' si S0 = 0 -> possibilité de choisir entre 1 s et 30 s avec un pas de 3.7s


    '***** Sur 3 bits donc 8 possibilités avec 3 switch******
    if (PORTB.0 = 0) and (PORTB.1 = 0) and (PORTA.2 = 0) then

    delay_us(100) 'tempo de 100µs
    end if
    if (PORTB.4 = 0) and (PORTB.5 = 0) and (PORTA.3 = 1) then
    delay_ms(120) 'tempo de 120ms
    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 0) then
    delay_ms(240) 'tempo de 240ms
    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 1) then
    delay_ms(360) 'tempo de 360ms
    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 0) then
    pause = 480
    Vdelay_ms(pause) 'tempo de 480ms
    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 1) then
    pause = 600
    Vdelay_ms(pause) 'tempo de 600ms
    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 0) then
    pause = 720
    Vdelay_ms(pause) 'tempo de 720ms
    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 1) then
    pause = 840 'tempo de 840ms
    Vdelay_ms(pause)
    end if
    else
    '****** 4 bits donc 16 possibilités avec 4 switch ************
    if (PORTB.4 = 0) and (PORTB.5 = 0) and (PORTA.3 = 0) and (PORTA.4 = 0) then
    delay_ms(1000) 'tempo de 1s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 0) and (PORTA.3 = 0) and (PORTA.4 = 1) then
    delay_ms(2000) 'tempo de 2s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 0) and (PORTA.3 = 1) and (PORTA.4 = 0) then
    delay_ms(4000) 'tempo de 4s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 0) and (PORTA.3 = 1) and (PORTA.4 = 1) then
    delay_ms(6000) 'tempo de 6s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 0) and (PORTA.4 = 0) then
    delay_ms(8000) 'tempo de 8s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 0) and (PORTA.4 = 1) then
    delay_ms(10000) 'tempo de 10s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 1) and (PORTA.4 = 0) then
    delay_ms(12000) 'tempo de 12s

    end if
    if (PORTB.4 = 0) and (PORTB.5 = 1) and (PORTA.3 = 1) and (PORTA.4 = 1) then
    delay_ms(14000) 'tempo de 14s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 0) and (PORTA.4 = 0) then
    delay_ms(16000) 'tempo de 16s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 0) and (PORTA.4 = 1) then
    delay_ms(18000) 'tempo de 18s
    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 1) and (PORTA.4 = 0) then
    delay_ms(20000) 'tempo de 20s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 0) and (PORTA.3 = 1) and (PORTA.4 = 1) then
    delay_ms(22000) 'tempo de 22s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 0) and (PORTA.4 = 0) then
    delay_ms(24000) 'tempo de 24s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 0) and (PORTA.4 = 1) then
    delay_ms(2600) 'tempo de 26s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 1) and (PORTA.4 = 0) then
    delay_ms(2800) 'tempo de 28s

    end if
    if (PORTB.4 = 1) and (PORTB.5 = 1) and (PORTA.3 = 1) and (PORTA.4 = 1) then
    delay_ms(3000) 'tempo de 30s
    end if

    end if
    GOTO debut

    end.

Discussions similaires

  1. [c++]compilation fichier
    Par invite9b88e44f dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 20/07/2007, 12h20
  2. vb: Compilation d'un module
    Par invite232ca604 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 21/02/2007, 09h23
  3. Erreur compilation Fortran
    Par invite10295c30 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 01/06/2006, 09h38
  4. compilation MPLAB (pic)
    Par nanard dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 15/11/2005, 17h13
  5. Compilation CD XP + SP2
    Par Sushi dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 18/01/2005, 12h30
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...