Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 71

Aide : compileur basic PIC 16F8XX

  1. #1
    nainpiain

    Aide : compileur basic PIC 16F8XX

    Bonjour,

    je débute dans la programmation de pic avec un compilateur Basic (Proton+)

    Je cherche un piloter un LCD (HD44780) d'une manière un peu particulière.
    après avoir parcouru la doc de proton+, j'ai testé les différentes fonctions intégrées dans proton qui s'applique à un LCD, mais je n'ai pas trouvé la fonction qui permettrai de faire défiler un texte (scroling). cette fonction est disponible dans tout afficheurs compatibles HD44780.

    donc; ma question est simple et je m'adresse aux utilisateurs de proton ou de tout autres compilateurs basic :
    peut-on faire défiler du texte sur un LCD par une manière détournée (instructions asm) et comment ?

    merci beaucoup pour votre aide.

    -----


  2. Publicité
  3. #2
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    As-tu essayé d'envoyer plus de 16 caractères vers le LCD ? Que se passe-t-il ?
    Gérard.

  4. #3
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    bonjour Gérard

    oui, j'ai déjà essayé de mettre plus de 16 caractères,
    sans succès, le texte reste figé, et ce qu'il y a après n'est pas affiché. au mieux en utilisant "_" le texte en trop est renvoyé à la ligne du dessous.

    y a forcement une solution, mais je sèche un peu.
    qu'en pense-tu ?

    merci

  5. #4
    Jack

    Re : Aide : compileur basic PIC 16F8XX

    regarde plutot la doc du LCD. Il n'y a qu'un bit à changer dans un des registres.

    A force d'utiliser des fonctions toutes faites, on finit par ne plus savoir du tout comment le système commandé.

    A+

  6. #5
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    regarde plutot la doc du LCD. Il n'y a qu'un bit à changer dans un des registres.
    oui je sais bien, mais je ne sais pas comment lui adresser ce changement de bit.
    en fait il y a en a 3 bits à changer
    DB4 => à 1
    DB3 => 1:shifts 0:displays one
    DB2 => 1:right shift 0:left shift

    il faut aussi le passer en "command" car il ne s'agit pas de données.

    par exemple pour afficher un texte il suffit de taper
    l'instruction suivante :
    PRINT AT 1,1, "HELLO"

    et HELLO sera affiché en ligne 1, caractère 1 du LCD

    mon problème c'est que je ne sais pas comment intégrer,
    la commande qui lui dira de passer en défilement.
    peut etre en assembleur...

    A force d'utiliser des fonctions toutes faites, on finit par ne plus savoir du tout comment le système commandé.
    je fais ce que je peux...
    Dernière modification par nainpiain ; 30/05/2006 à 11h20.

  7. #6
    Jack

    Re : Aide : compileur basic PIC 16F8XX

    est-ce la seule fonction de ta bibliothèque de gestion du LCD.

    Il faudrait que tu en trouves une qui permet d'envoyer une commande au LCD.

    A+

  8. #7
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    je ne pense pas qu'il y ai ce genre d'instruction, plutot des complements,
    des codes qui appellent des fonctions par exemple :
    PRINT $fe,$0f
    fera clignoter le curseur.

    j'ai vu sur ce forum qu'en intégrant
    des instructions asm (@ suivant de l'instruction asm)
    on arrive à faire :
    par exemple :
    @ movlw223
    @ F@CALL PRINT
    PRINT "C"

    avec ça, le LCD affichera °C
    en fait le caractère ° qui est à l'adresse 11011111 (223)
    a été chargé. cette astuce vient de Gérard je crois
    (il confirmera peut etre)

    voilà où 'en suis, je suis vraiment motivé et je vraiment vraiment trouver le moyen de réaliser ça, avec l'aide de quelqu'un.

    merci

  9. #8
    Jack

    Re : Aide : compileur basic PIC 16F8XX

    pour accéder aux fonctions du LCD, il faut modifier l'état de son entrée RS.

    Si ta fonction print ne modifie pas ce bit, tu peux le faire toi-même, puis programmer le bon registre avec print, puis remettre RS dans le bon état de manière à envoyer de nouveaux caractères à l'affichage.

    A+

  10. #9
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    http://www.picbasic.org/forum/archiv....php/f-70.html
    Tu trouveras peut-être la solution ci-dessus. (en anglais)

    Pour °C, c'était moi effectivement mais 223 n'est pas l'adresse mais le caractère dans la table ASCII.
    Gérard.

  11. #10
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    Gérard,

    merci pour l'intéret que tu portes à mon problème.
    je n'ai pas trouvé quelque chose qui s'apparente au scrolling (peut etre evoqué par un autre terme) dans ton lien.

    malgré tout, j'ai trouvé ici : http://www.picbasic.org/forum/showth...ghlight=scroll

    la commande print $FE, $1C met l'afficheur en scrolling (gauche) pour la droite ($18)
    problème : les 2 lignes (pour un 2*16) scroll ensemble.
    pas mal de solutions sont évoquées en utilisant des routines de comptage mais ça commence à chercher très loin seulement pour du scrolling. avantage : tout est possible.

    entre nous, pourquoi la commande print $FE, $1C n'est pas présente dans la doc de proton ? à moins que je n'ai
    pas LA vraie doc (405pages)

    a+

  12. #11
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain
    Gérard,

    merci pour l'intéret que tu portes à mon problème.
    Pas de quoi.
    Citation Envoyé par nainpiain

    je n'ai pas trouvé quelque chose qui s'apparente au scrolling (peut etre evoqué par un autre terme) dans ton lien.

    malgré tout, j'ai trouvé ici : http://www.picbasic.org/forum/showth...ghlight=scroll
    As-tu testé le prog donné dans le fichier attaché ?
    http://www.picbasic.org/forum/showth...ht=scroll+text

    Citation Envoyé par nainpiain
    la commande print $FE, $1C met l'afficheur en scrolling (gauche) pour la droite ($18)
    problème : les 2 lignes (pour un 2*16) scroll ensemble.
    pas mal de solutions sont évoquées en utilisant des routines de comptage mais ça commence à chercher très loin seulement pour du scrolling. avantage : tout est possible.
    Je pense que cette commande fait partie des fonctions du LCD.

    Citation Envoyé par nainpiain
    entre nous, pourquoi la commande print $FE, $1C n'est pas présente dans la doc de proton ? à moins que je n'ai
    pas LA vraie doc (405pages)
    a+
    Ma doc est la Revision 1.2 du 18/10/2004 et elle fait 405 pages. Elle m'a été livrée avec la logiciel lors de l'achat.
    Gérard.
    Dernière modification par Gérard ; 31/05/2006 à 16h11.

  13. #12
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    As-tu testé le prog donné dans le fichier attaché ?
    http://www.picbasic.org/forum/showth... t=scroll+text
    oui, j'ai testé les 2 programmes dispo sur ce forum
    "scroll message" et "shifting message" ils marchent tous
    les 2, le dernier est à mon sens le plus évolué.

    d'ailleurs je voudrai stocker tous les messages sur une
    eeprom (24C64 par exemple), et le pic viendrais les "lire" en cas de besoin.
    le problème c'est que ne voudrai pas écrire dans l'eeprom par l'intermédiaire du PIC, si possible la programmer indépendament, oui mais voilà pour par exemple stocker le message "hello" dans la 24C64,
    il faut que convertisse le "h", le "e", etc... en fonction de la table ASCII h=>%01101000, puis convertir le code
    binaire en hexa, au final j'obtiendrai toute une serie de
    code hexa (analogue aux lettres à afficher) qui constituera mon fichier hex destiné à aller
    dans la 24C64. non ?

    à oui et enfin est-ce possible de creer un caractère
    qui n'est pas dans la table ASCII ?

    j'ai la meme doc que toi, je trouve décevant que les fameuses instructions qui commande le scroll n'apparaissent pas dans la doc...

    merci

  14. #13
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Et pourquoi ne pas écrire un prog pour programmer la 24C64 ?
    Ce serait plus simple que se casser la tête avec la table ASCII.
    Après tu reprogrammes le PIC avec ton applic.
    Bonne nuit,
    Gérard.

  15. #14
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    oui, beaucoup plus rapide de cette manière.


    Je suis en train de chercher comment realiser et afficher un caractère perso. est-ce possible ?

    merci

  16. #15
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Oui, çà doit être possible, voir comment écrire dans la RAM du LCD.
    Je ne me suis pas encore posé cette question.
    Gérard.

  17. #16
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    effectivement,

    ici, le lien d'un générateur de caractères perso,
    si ça peut aider quelqu'un :
    http://www.picbasic.co.uk/forum/showthread.php?t=2598

    il faut ensuite ecrire ça dans la CG RAM du LCD
    en remplacant LCDOUT par PRINT ...
    et PRINT at 1,1,0
    pour afficher le caractère perso 0 (8 maxi) en ligne 1, caractère 1.

    sinon une problème en attend pas un autre,

    j'essaye de créer un front montant, pour que lorsque j'appui sur un bp, j'incremete un mot de 1 à chaque fois.
    je ne veux pas utiliser l'instruction "BUTTON"
    une solution ?

    merci

  18. #17
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    LCDOUT n'est pas décrit dans la doc.

    Pour le BP,
    si BP appuyé
    tempo 100ms
    test si PB appuyé
    action si oui
    test si BP relaché
    Gérard.

  19. #18
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    Salut,

    LCDOUT n'est pas décrit dans la doc.
    biensur ! je m'adresse aux utilisateurs de proton avant tout !
    c'est pourquoi je spécifie qu'il faut remplacer "LCDOUT" par PRINT, LCDOUT étant une instruction propre à PICBASIC compiler, proton est incapable de la traiter.

    Pour le BP,
    si BP appuyé
    tempo 100ms
    test si PB appuyé
    action si oui
    test si BP relaché
    j'ai du mal à interpréter ça qu'est ce qu'on fait suivant
    le resultat du dernier test ? (test si bp relaché)

    merci

  20. #19
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain
    Salut,



    biensur ! je m'adresse aux utilisateurs de proton avant tout !
    c'est pourquoi je spécifie qu'il faut remplacer "LCDOUT" par PRINT, LCDOUT étant une instruction propre à PICBASIC compiler, proton est incapable de la traiter.
    C'est ce que je voulais dire, LCDOUT n'existe pas en PROTON +

    Citation Envoyé par nainpiain
    j'ai du mal à interpréter ça qu'est ce qu'on fait suivant
    le resultat du dernier test ? (test si bp relaché)

    merci
    1_test BP
    2_attente ;à cause des parasites
    3_test BP
    4_action si encore appuyé
    5_test si BP relaché, sinon boucler ici

    Tu vois ce que je veux dire ?
    Gérard.

  21. #20
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut Gérard,

    je suis désolé mais je ne comprends pas ton raisonnement, quand tu mets bouler ici ? où ?

    j'ai essayé ça, mais sans succès :

    if bp=1 then delayms 100

    forever:
    if bp=1 then inc mot else : goto forever

    non je ne vois pas vraiment, je dois etre fatigué !!

    a+

  22. #21
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    je pense que c'est plutot:

    if BP=1 then
    delay
    if BP=1 then mot=mot+1
    forever:
    if BP=1 then goto forever
    suite:

  23. #22
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par umfred
    je pense que c'est plutot:

    if BP=1 then
    delay
    if BP=1 then mot=mot+1
    forever:
    if BP=1 then goto forever
    suite:
    C'est ce que je voulais dire.
    En faisant goto forever, on ne va à la suite que quand le BP est relaché.
    Gérard.

  24. #23
    nainpiain

    Wink Re : Aide : compileur basic PIC 16F8XX

    je viens d'essayer, ça filtre plein d'impulsions (d'appui bp)
    même en ajustant la tempo, c pareil.

    merci à vous

    je poursuivrai demain, je vous tiens au courant,
    vous pourriez me faire part d'autres solutions ?

    je pensais pas que de faire un simple front montant me poserai autant de pb.

    bone nuit

  25. #24
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Un truc que j'utilise avec Proton+, les routines d'interruption sont en assembleur pour ne pas faire de misères dans les variables système que gère le compilateur.
    Pour les variables sur 4 octets, les 4 octets doivent se trouver dans la même bank de RAM sinon galère et long à trouver l'erreur.
    Gérard.

  26. #25
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    Un truc que j'utilise avec Proton+, les routines d'interruption sont en assembleur pour ne pas faire de misères dans les variables système que gère le compilateur.
    Pour les variables sur 4 octets, les 4 octets doivent se trouver dans la même bank de RAM sinon galère et long à trouver l'erreur.
    Gérard.

  27. #26
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain

    Et que veux-tu dire par 3 x ?
    Gérard.

  28. #27
    nainpiain

    Post Re : Aide : compileur basic PIC 16F8XX

    salut Gérard

    je veux tout simplement dire que je ne vois pas le rapport
    entre mon problème évoqué et ta réponse.
    pourrais-tu exactement me dire en quoi ça pourrait m'aider ?

    j'ai trouvé une solution pour réaliser un front montant (ou descendant)

    je la propose, dite moi ce que vous en pensez :

    dim variable as byte
    dim image_boutton as bit

    if (porta.0 ^ image_boutton)>0 then
    image_boutton = porta.0
    if porta.0 = 1 then
    inc variable
    end if
    end if


    voilà

  29. #28
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain

    ......
    vous pourriez me faire part d'autres solutions ?

    ......
    En fait, j'ai mal interpété cette phrase.
    Je pensais que tu voulais d'autres astuces de programmation.
    Gérard.

  30. #29
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain
    salut Gérard

    je veux tout simplement dire que je ne vois pas le rapport
    entre mon problème évoqué et ta réponse.
    pourrais-tu exactement me dire en quoi ça pourrait m'aider ?

    j'ai trouvé une solution pour réaliser un front montant (ou descendant)

    je la propose, dite moi ce que vous en pensez :

    dim variable as byte
    dim image_boutton as bit

    if (porta.0 ^ image_boutton)>0 then
    image_boutton = porta.0
    if porta.0 = 1 then
    inc variable
    end if
    end if


    voilà
    Je ne vois pas bien ou tu veux en venir.
    Gérard.

  31. #30
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    si tu relis les précédents post, tu comprendras sans mal que je recherchais une solution technique (qui fonctionne!) me permettant de "compter" par appuis sur bp, pour celà il faut réaliser un front montant pour compter uniquement lors d'un passage logique de 0 à 1. aujourd'hui l'affaire est classée, sauf si biensûr tu remarque un gros problème dans ma solution.

    à bientôt
    Dernière modification par nainpiain ; 11/06/2006 à 20h54.

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Pic Basic Trame RS232
    Par ledinblue dans le forum Électronique
    Réponses: 7
    Dernier message: 10/06/2007, 09h53
  2. Pic 16f877 Pic basic pro conseil
    Par ledinblue dans le forum Électronique
    Réponses: 10
    Dernier message: 04/01/2007, 17h26
  3. PB basic pour pic
    Par joss dans le forum Électronique
    Réponses: 31
    Dernier message: 09/08/2006, 23h48
  4. Pic-Basic en français (ou ?)
    Par f6bes dans le forum Électronique
    Réponses: 3
    Dernier message: 18/09/2005, 21h01
  5. pic en basic ?!
    Par Tix dans le forum Électronique
    Réponses: 4
    Dernier message: 07/11/2004, 18h41