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

Programmation en Picbasic Pro



  1. #1
    Mourad.dz

    Programmation en Picbasic Pro

    Bonjour;
    je suis nouveau sur ce forum, je me suis inscrit pour chercher de l'aide et c'échanger les idées dans la Programmation en Pic Basic Pro.
    Voilà, je travail sur un Projet " Journal lumineux à matrice de LEDs "
    Mon programme est un peu lourd sur tout le temps de rafraichissement, pourtant c'est simple: je charge des registres à décalage 74LS164 monter en série, par des données lus dans une EEPROM de type 24c256 et je valide les ligne pour constituer une image fixe puis calcule le décalage des données pour créer un défilement;
    voici le programme:

    Code:
    define OSC 24
    define LOADER_USED 1 
    INCLUDE "modedefs.bas"
    
    TRISA = %00010111 
    TRISB = %00000000
    TRISC = %11111111
    TRISD = %00000000
    TRISE = %00000000
    ADCON1 = 6 
    Addr var word 
    value1 var byte
    value2 var byte
    value var byte 
    DH var byte
    DL var byte
    T var word
    Y var word
    Y1 var byte
    clf var byte
    clf1 var byte
    N var byte
    H var byte
    X var byte
    j var byte
    W var PORtA.3
    D1Reg var PORTb.4
    D2Reg var PORTD.7
    HReg var PORTB.5
    ClkE var PORTA.1
    DEE1 var PORTA.0
    DEE2 var PORTA.2
    Cs var PORTB.3
    
    
    data @0,0,0,0,0,130,254,254,144,144 ,240,96,0,4,46,42,42,60,30,2,0 ,32,124,254,34,36,0,0,34,190,1 90,2,0,28,62,42,42,58,24,0,62, 62,32,32,30,30,0,32,124,254,34 ,36,0,28,62,42,42,58,24,0,50,3 8,46,58,50,38,0,0,0,0,0,0,0,0, 0,100,246,146,146,206,76,0,0,2 48,252,2,4,248,240,0,0,130,254 ,254,144,144,240,96,0,0
    '------------------------------------------------------------------------------- 
    
    
    '***************************** ****************************** ****
    StartFR:
    j = j + 1 
    if j = 2 then j = 0
    clf=0
    for addr = 0 to 4000
    high cs
    n = 0
    for t = addr + 40 to addr + 1 step -1
    I2Cread dee1 , CLke, $a0 , t, [value1]
    value(n) = value1
    if PortA.4 = 1 then goto Image2
    if value1 = 0 then clf = clf + 1
    if value1 <> 0 then clf = 0
    if clf >= 80 then goto StartFR 
    
    n = n +1 
    next t 
    gosub F_image
    next addr 
    goto StartFR
    '***************************** ****************************** *** 
    
    
    '***************************** ****************************** ***** 
    F_Image:
    
    for x = 0 to 7
    high cs
    For n= 40 to 0 step -1
    dh = value(n)
    dh = dh >> x
    if j = 0 then
    d1reg = dh.bit0
    toggle d1reg
    d2reg =1
    endif
    if j = 1 then
    d2reg = dh.bit0
    toggle d2reg
    d1reg =1 
    endif 
    high hreg
    low hreg
    next n
    PortB.0 = x.bit0
    PortB.1 = x.bit1
    PortB.2 = x.bit2
    low cs 
    pause 1
    next x
    return
    
    
    
    Image2:
    if PortA.4 = 0 then StartFR
    for x = 0 to 7
    high cs
    For n= 0 to 40
    read n,dh 
    dh = dh >> x
    d1reg = dh.bit0
    toggle d1reg
    high hreg
    low hreg
    next n
    PortB.0 = x.bit0
    PortB.1 = x.bit1
    PortB.2 = x.bit2
    low cs 
    Pause 1
    next x
    
    goto image2

    -----

    Dernière modification par gienas ; 27/01/2009 à 08h36. Motif: Introduction de la balise code #

  2. Publicité
  3. #2
    Gérard

    Re : Programmation en Picbasic Pro

    Et c'est quoi la question ?

  4. #3
    Mourad.dz

    Re : Programmation en Picbasic Pro

    c'est de trouver pour quoi cette boucle est très lourde

    Code:
    for addr = 0 to 4000
    high cs
    n = 0
    for t = addr + 40 to addr + 1 step -1
    I2Cread dee1 , CLke, $a0 , t, [value1]
    value(n) = value1
    if PortA.4 = 1 then goto Image2
    if value1 = 0 then clf = clf + 1
    if value1 <> 0 then clf = 0
    if clf >= 80 then goto StartFR 
    
    n = n +1 
    next t 
    gosub F_image
    next addr
    avec une horloge de du pic 24 MGHz la vitesse de balayage tombe vers 25HZ; pour quoi ???
    Dernière modification par gienas ; 27/01/2009 à 08h37. Motif: Balise code

  5. #4
    Gérard

    Re : Programmation en Picbasic Pro

    Tu as 2 boucles imbriquées, un Goto et un Gosub.
    C'est beaucoup.
    Ce qui manque : les commentaires et des explications sur le fonctionnement.

  6. #5
    Mourad.dz

    Re : Programmation en Picbasic Pro

    je sais mais j'ais pas le choix, trop de calcule à faire; je m'explique:

    le Projet est un afficheur à Leds (journal lumineux); J'utilise un Pic 16f877A, avec une horloge de 24Mghz, le PIC lit des données stocker dans une mémoire EEPROM 24c256, ces données représentent une matrice de points déjà programmer grâce à un programme que j'ais écrit en Visual BASIC, ce dernier convertis un texte éditer dans une zone de texte en une image puis scan les pixel de cette image et les stock dans un fichier binaire, le transfère s'effectue via la liaison RS232 Port Com1. le rôle du Pic est de gérer une matrice de LEDs de 8 lignes 100 colonnes, les colonnes sont commander par des registres à décalage 74164 monter en série, les lignes sont validés par un démultiplexeur 1/8.
    Dans la procédure principale " StartFR "je lit les données du EEPROM pour les stocker dans une variable tableau : value(96),
    la boucle :
    Code:
    for t = addr + 96 to addr + 1 step -1
    -
    -
    -
    next t    
    charge la variable value(n),  par les données d'une image fixe
    
    la boucle:
    for addr = 0 to 16000
    .
    .
    .
    Next addr
    Incrément les données pour créer le défilement


    la procédure Image charge les register et valide les lignes.

    Je compte sur vos conseils pour augmenter la vitesse de défilement de cet afficheur.


    Code:
    '*****************************
    StartFR:
    clf=0
    for addr = 0 to 16000
    high cs
    n = 0
    for t = addr + 96 to addr + 1 step -1
    I2Cread dee1 , CLke, $a0 , t, [value1]
    value(n) = value1
    if PortA.4 = 1 then goto Image2
    if value1 = 0 then clf = clf + 1
    if value1 <> 0 then clf = 0
    if clf >= 80 then goto StartFR 
    
    n = n +1 
    next t 
    gosub F_image
    next addr 
    goto StartFR
    
    ****************************** *** 
    Image:
    
    
    for x = 0 to 7
    high cs
    For n= 100 to 0 step -1
    dh = value(n)
    dh = dh >> x
    if j = 0 then
    d1reg = dh.bit0
    toggle d1reg
    d2reg =1
    endif
    if j = 1 then
    d2reg = dh.bit0
    toggle d2reg
    d1reg =1 
    endif 
    high hreg
    low hreg
    next n
    PortB.0 = x.bit0
    PortB.1 = x.bit1
    PortB.2 = x.bit2
    low cs 
    pause 1
    next x
    return
    
    '*****************************
    Dernière modification par gienas ; 27/01/2009 à 08h40. Motif: Balises code

  7. A voir en vidéo sur Futura
  8. #6
    Gérard

    Re : Programmation en Picbasic Pro

    Si tu ne changes pas la boucle, il n'y a pas de solution.

  9. Publicité
  10. #7
    Mourad.dz

    Re : Programmation en Picbasic Pro

    dite moi comment ? c'est ce que je cherche.

  11. #8
    Gérard

    Re : Programmation en Picbasic Pro

    Citation Envoyé par Mourad.dz Voir le message
    dite moi comment ? c'est ce que je cherche.
    Prog sans commentaire et pas complet, pas de schéma ....

    Et tu crois que je vais me casser la tête pour essayer de comprendre ton truc ?

  12. #9
    Mourad.dz

    Re : Programmation en Picbasic Pro

    je croyais avoir bien expliquer mon truc, c'est juste que c'est très long à mètre tout le programme, sur tout là ou j'ai pas de Problème; merci comme même.
    J'ai encore une question; mon compilateur me donne des érreurs dans la ligne de configuration des fusibles:
    @ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BODEN_ON & _LVP_OFF & _CP_ALL & _DATA_CP_ON

    j'utilise MICRO CODE STUDIO PLUS avec PBP 2.50

  13. #10
    Mourad.dz

    Re : Programmation en Picbasic Pro

    voici les principaux shémas mais avec un Pic 16f876A


    Bonjour Mourad.dz et tout le groupe

    Pour des schémas monopage, il convient de ne pas utiliser le format pdf.

    Voir l'épinglé

    http://forums.futura-sciences.com/el...ointes-pj.html

    Merci d'en tenir compte à l'avenir.

    .
    Fichiers attachés Fichiers attachés
    Dernière modification par gienas ; 27/01/2009 à 08h34.

  14. #11
    Gérard

    Re : Programmation en Picbasic Pro

    Comment veux-tu qu'on t'aide, tu ne donnes pas les erreurs. Je ne peux pas les deviner !

  15. #12
    Mourad.dz

    Re : Programmation en Picbasic Pro

    voici qu'es que ça donne:
    Images attachées Images attachées

  16. Publicité
  17. #13
    Mourad.dz

    Re : Programmation en Picbasic Pro

    c'est pas claire???

Sur le même thème :

Discussions similaires

  1. PICBASIC PRO: Thermometre + LCD + 16F688
    Par nquere dans le forum Électronique
    Réponses: 7
    Dernier message: 07/11/2008, 18h10
  2. programmation picbasic
    Par TitouanChaverot dans le forum Électronique
    Réponses: 3
    Dernier message: 27/10/2008, 20h04
  3. CAble de programmation picbasic
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 1
    Dernier message: 08/02/2007, 15h38
  4. Affichage valeur décimale [picbasic pro]
    Par Ouar dans le forum Électronique
    Réponses: 0
    Dernier message: 30/10/2006, 20h34
  5. Pour les PRO du PICBASIC PROTON+
    Par BISOUF dans le forum Électronique
    Réponses: 1
    Dernier message: 31/07/2005, 13h20