Aide : compileur basic PIC 16F8XX - Page 2
Répondre à la discussion
Page 2 sur 3 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 71

Aide : compileur basic PIC 16F8XX



  1. #31
    umfred

    Re : Aide : compileur basic PIC 16F8XX


    ------

    il n'y a pas de gros problèmes, mais ton PIC dispose peut-être d'une fonction capture/compare/pwm que tu peux utiliser pour te détecter un front montant ou descendant (au choix). tu peux le gérer facilement soit en polling (un test régulier (dans la boucle principal de ton programme) d'un bit du registre adéquat) soit par interruption générer par ce même bit.

    -----

  2. #32
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    j'ai un prolème, je souhaite me familiariser avec l'i2c et un composant rtc,
    j'ai choisi le ds1302, proton contient un fichier .bas qui exploite
    ce composant, problème, je ne comprends rien à ce programme,
    ils utilisent la commande shin et shout, alors que moi je voudrai
    utiliser la commande busin, busout, je n'arrive pas a faire la relation entre le datasheet
    du ds1302 et leur programme.
    du coup je voudrai tout reprendre à zero et refaire un programme
    avec busin et busout.

    d'abord récuperer les données heures et minutes.

    dans l'octet de command du ds10302, je ne comprends pas à quoi
    servent les bits 1 à 5 (A0 à A5)
    quelle est la procedure classique pour lire les données horaires,(registre à initialiser?)
    dans un premier temps.
    dans un deuxième temps, j'aimerais pouvoir ecrire dans ces données horaires (les changer)
    pour mettre à l'heure avec des bp par exemple ou par le port série d'un pc.
    mais je n'en suis pas encore là...

    j'aimerais comprendre ce que je fais, et non pas ecrire des lignes de commande
    sans rien capter et que ça marche comme par magie.

    merci d'avance à vous de m'aider dans cette démarche de lecture/ecriture
    dans un composant i2c.
    à bientot

  3. #33
    Jack
    Modérateur

    Re : Aide : compileur basic PIC 16F8XX

    le DS1302 n'est pas un bon choix puisqu'il ne communique pas en I2C.

    Prends plutôt un DS1307.

    A+

  4. #34
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    a bon !? il communique en quoi alors ?
    il y a les pin clk, i/o, ce, si ce n'est pas de l'i2c c quoi ?
    a+

  5. #35
    Jack
    Modérateur

    Re : Aide : compileur basic PIC 16F8XX

    c'est une liaison série synchrone mais qui n'a pas grand chose à voir avec l'I2C.

    C'est différent d'un point de vue électrique, du nombre de pattes et du protocole.

    A+

  6. #36
    nainpiain

    Wink Re : Aide : compileur basic PIC 16F8XX

    ah ok, merci.

    je vais revenir sur mon idée de départ le pcf8583.
    j'épluche le datasheet et en cas de pépins (y en aura!!) je vous tiens au courant.
    merci.
    a+

  7. #37
    Jack
    Modérateur

    Re : Aide : compileur basic PIC 16F8XX

    Tu as regardé le DS1307?

    A+

  8. #38
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    oui, j'avais vu le ds1307, j'avais choisi le pcf8583 car il semble offrir des fonctions plus avancées en matière d'alarme (quotidienne, par jour, etc...) il compte en centième de seconde (pour un chronomètre ça peut être sympa), et j'ai le datasheet d'imprimé (les pages principales).
    a+

  9. #39
    Jack
    Modérateur

    Re : Aide : compileur basic PIC 16F8XX

    yapuka (petite entorse à la charte )

    A+

  10. #40
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    la charte ?

  11. #41
    Jack
    Modérateur

    Re : Aide : compileur basic PIC 16F8XX

    la charte ?
    pas de langage sms

    C'était pour mon yapuka.

    A+

  12. #42
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    me revoilà avec mon fameux pcf8583,

    j'essaye dans un premier temps d'afficher les secondes
    sur un lcd.
    d'après le datasheet du rtc,
    l'adresse pour la lecture est A1 ou A3.
    ensuite le registre qui contient les secondes est le 2.

    donc si je suis bien, ma ligne de commande sera :
    BUSIN $A1,2,[second]
    en prenant soin de convertir la variable second
    de BCD vers Binaire et, en faisant afficher cette variable,
    ça devrait le faire ?
    et bien non, ça m'affiche 00, parfois 55, puis de nouveau
    00, je n'ai pas de comptage des secondes 00,01,02,03..

    quelque chose m'echappe, peut être une procedure spécifique, j'ai regarder les autres registres du rtc, leurs
    config par défaut semble convenir.

    pouvez-vous m'aidez ? merci

  13. #43
    Gérard

    Re : Aide : compileur basic PIC 16F8XX

    J'ai une routine d'interruption en asm qui compte l'heure sans RTC et sans conversion BCD/binaire.
    Si tu es preneur...
    Gérard.

  14. #44
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    Je ne sais pas ce fait exactement la commande BUSIN $A1,2,[second], mais en revanche je sais qu'en I2C, il faut envoyer d'abord l'adresse du composant en écriture, puis l'adresse du registre, puis on renvoie l'adresse du composant en lecture, et enfin on lit la valeur du registre dont on a indiqué l'adresse.
    je pense que ça devrait s'écrire
    BUSIN $A0,2
    BUSIN $A1,[second]

    (A0 et A1 si l'entrée A0 du RTC est à 0, A2 et A3 si elle est à 1)

  15. #45
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    merci Gérard pour ta proposition je souhaite en fait prendre en main l'i2c via proton avant tout, et par la suite, en faire un timer programmable.

    umfred,

    le problème de la commande busin, c'est qu'on ne c'est pas exactement ce qu'elle fait, mais j'ai lu les registre système, et il se retrouve à 255, puis rebascule à 0, bref
    c'est le foutoir.
    la syntaxe de busin est la suivante :
    BUSIN adresse de lecture, registre à lire, [octet 1 à lire, octet 2 à lire, ..]
    il y a aussi la même chose pour ecrire (BUSOUT)

    donc si je suis ton raisonnement, il faudrai plutot :
    BUSOUT $A0,2
    BUSIN $A1,2,[second]

    $ pour une valeur hexa.
    je vais essayer je te tiens au courant.
    a+ et merci

  16. #46
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    me revoilà,

    en fait,

    BUSOUT $A0,2 n'est pas accepté par le compilateur
    je alors fais :
    BUSOUT $A0,2,[second]
    BUSIN $A1,2,[second]
    routine de converstion 'BCD=>binaire'
    affichage de 'second'

    j'ai alors 08 d'afficher, et c figé.

    je pense qu'il doit y avoir une procédure d'initialisation
    bien spécifique, mais je la trouve nul part.

    j'ai essayé en faisant,
    BSTART 'commande qui prépare l'i2c
    BUSIN $A1,2,[second]

    et l'a j'ai bien un comptage mais c'est extremment lent pour des seconde.

    bref je sèche

  17. #47
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    essaie de mettre le BSTART avant les commandes BUSOUT/BOUSIN et fini par un BSTOP si ca existe

  18. #48
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    et bien c le même problème, ça compte mais c'est extremement lent, je ne comprends pas, ça ne vient pas des composant, j'ai essayé avec un programme tout fait (sans code source) et ça marche bien.

    pas evident à mettre en oeuvre, ou alors il faut mettre des tempo à des endroits judicieux pour lui laisser le temps de s'initialiser ??

    merci

  19. #49
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    Quand tu dis lentement ca veut dire quoi? combien de temps entre les nombres successifs?
    comment fais tu pour lire les secondes? tu tournes en boucle sur la lecture du registre?

  20. #50
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    entre ce qui devrait être des secondes, il se passe environ 18 secondes

    pour lire les seconde :

    boucle:
    BSTART
    BUSIN $A1,2,[second]

    gosub routine de conversion bcd/bin

    print at 1,1, dec2 second 'afficher les secondes avec 2 decimales

    goto boucle

  21. #51
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    et si tu met directement ta routine de conversionbcd->bin à la place du gosub, ça arrange les choses?

  22. #52
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    non, déjà essayé, il doit y avoir une procédure bien particulière, et le moindre grain de sable n'est pas toléré.
    je cherche de mon coté,
    si t'as une idée, n'hesites pas.
    merci
    a+

  23. #53
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    en fait, je recherche les procedures qui permettent
    de lire et d'ecrire dans le registre d'un PCF8583,
    ça à l'air bien particulier une simple commande BUSIN
    ne suffie pas, je pense que c'est plus subtile que ça.
    avec des tempos pour lui laisser le temps de "souffler" entre chaque commande.

    merci

  24. #54
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    Voila pour la lecture d'un registre en particulier (voir le post#44 de moi-même :

    Citation Envoyé par umfred
    il faut envoyer d'abord l'adresse du composant en écriture, puis l'adresse du registre, puis on renvoie l'adresse du composant en lecture, et enfin on lit la valeur du registre dont on a indiqué l'adresse.
    pour l'écriture, il faut envoyer d'abord l'adresse du composant en écriture, puis l'adresse du registre, puis la donnée à écrire dans le registre, suivi des éventuels données à mettre dans les registres suivants.

    regarde si il n'y a pas de commande genre I2CREAD ou I2CWrite qui existerais.

    J'ai vu sur le forum de proton+ que tu avais posté ton code, et je me demande si ce n'est pas la conversion binaire BCD qui pose problème:
    Code:
    convert_to_binary:
    Temp1=second
    second=((temp1>>4)*10)+(temp1 & $0F)
    remplace la seconde ligne par:
    Code:
    convert_to_binary:
    Temp1=second
    second=((second>>4)*10)+(temp1 & $0F)
    Je pense que le décalage se fait effectivement lorsque tu fais (temp1>>4) et que le temp1 suivant a pris ce décalage en considération.

  25. #55
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    j'ai essayé ça :

    la procedure de lecture tel que je l'ai interprétée :

    busout $a0 'A0 adresse d'ecriture avec pin A0 à 0V
    busout 2
    busin $A1 'A1 adresse de lecture avec pin A0 à 0V
    busin $A1,2,[second]

    j'ai remplacé la le temp1 par second dans la routine
    de conversion bcd_bin,

    cette fois j'ai "08" qui s'affiche, pas de comptage de seconde.

    par ailleurs, j'ai rien trouvé concernant les commande
    i2cread et son homologue pour l'écriture.
    là on peut dire que je galère.

    J'ai vu sur le forum de proton+ que tu avais posté ton code,...
    merci pour ton travail d'investigation.

    je m'y remets demain
    a+

  26. #56
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    j'ai du nouveau, j'ai testé un programme et il fonctonne correctement les secondes durent 1 seconde,
    l'heure s'affiche sous la forme hh : mm : ss sur la ligne 2
    d'un 2*16c.
    à la mise sous tension il est 23h59.
    seul bémol le code source est en c !!!!

    le fichier est en pj, l'ideal serait de transcrire ce fichier en basic proton
    mais moi et le c ça fait 2 !
    je vais essayer, je vous tiens au courant.
    a+
    Fichiers attachés Fichiers attachés
    Dernière modification par nainpiain ; 05/07/2006 à 12h17.

  27. #57
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    J'ai refait un petit tour du coté du forum de proton+, et d'après ce que Tim dit, je tenterai de mettre A0 à la place de A1 dans le busin, c'est à dire:
    busin $a0,2,[second]
    ou
    second=busin($a0,2)

    PS: le code en C ne fait que confirmer ce que je disait précédemment sur la manière d'envoyer les données en I2C, vu qu'il utilise des fonctions i2cstart, i2cstop, i2write et i2cread. Si ma proposition ne fonctionne pas, essai de trouver ses fonctions i2c dans le code (elles ne figurent pas dans les 2 fichiers en pieces jointes).
    Tu peux regarder ce post
    Dernière modification par umfred ; 05/07/2006 à 19h54.

  28. #58
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    salut,

    rien à faire, ça ne veut rien savoir,
    j'ai adapté le code du ds1307, et pareil.

    je ne sais pas quand je dois mettre des bstart, bstop,
    si je m'inspire du code du ds1307, on se dit que c'est bon, et bien non.

    je voudrai savoir si tu es d'accord avec ça :

    pour la lecture:

    busout $A0
    busout 2
    busout $A1
    busin $A1,2,[second]

    pour l'ecriture:

    busout $A0
    busout 2
    x_valeur=second
    busout $A0,2,[second]

    il est quand même tordu ce composant !
    et l'utilisation de proton est censé simplifier les choses !

    merci a+

  29. #59
    umfred

    Re : Aide : compileur basic PIC 16F8XX

    Citation Envoyé par nainpiain
    pour la lecture:

    busout $A0
    busout 2
    je suis pas d'accord , tu as du mal lire l'exemple du ds1307
    voila comment ca serait:
    Code:
    bstart
    busout ($A0)
    busout (2)
    bstop
    bstart
    busout ($A1)
    second=busin
    bstop
    Citation Envoyé par nainpiain
    pour l'ecriture:

    busout $A0
    busout 2
    x_valeur=second
    busout $A0,2,[second]
    là non plus pas d'accord, ça serait plutot:
    Code:
    bstart
    busout ($A0)
    busout (2)
    busout (second)
    bstop
    Citation Envoyé par nainpiain
    l'utilisation de proton est censé simplifier les choses !
    Normalement oui, mais rien ne vaut la maitrise de l'assembleur

  30. #60
    nainpiain

    Re : Aide : compileur basic PIC 16F8XX

    bonjour,

    je cherche à réaliser un projet maintenant que je me suis exercé sur proton,
    je cherche à réaliser un serveur à base d'un PIC,
    j'ai recherché à peu près tout ce qui se fait actuellement
    sur le net sur ce sujet.
    il existe pas mal de module dédié pour communique en ethernet avec un PIC, mais leur exploitation demeure
    un mystère pour moi.
    je me suis tourné vers l'EZL-50, mais je me heurte
    à quelque problème pour débuter.

    pensez vous que l'EZL-50 est un bon choix pour un débutant ?
    moi vaut-il utiliser une puce comme l'ENC28J60 ?

    à bientot

Page 2 sur 3 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. Pic Basic Trame RS232
    Par invite4ff7103d dans le forum Électronique
    Réponses: 7
    Dernier message: 10/06/2007, 09h53
  2. Pic 16f877 Pic basic pro conseil
    Par invite4ff7103d dans le forum Électronique
    Réponses: 10
    Dernier message: 04/01/2007, 17h26
  3. PB basic pour pic
    Par invite3d33f9e2 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 invitee17aeca5 dans le forum Électronique
    Réponses: 4
    Dernier message: 07/11/2004, 18h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.