Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Menu principal

Tableau interactif d'affichage d'informations d'environnement

Démarré par Arckont, Février 21, 2018, 02:21:27 PM

« précédent - suivant »

Curiosus

#30
Bonjour Arckont, et tout le forum,

Bon, comme tu as le datasheet du PIC16F887 on va s'en servir, la première chose à  faire et de déclarer 10 variables de 1 octet en bank0

Tu leurs donne le non de ton choix, donc à  regarder les exercices fait ensemble

Tu fais une sauvegarde du fichier debut.asm en debut.old

Tu vas utiliser le fichier debut.asm pour faire tes déclaration, regarde bien le travaille est presque fait
ta juste à  poser tes variables au bon endroit.

Tu peux voir que j'ai mis un goto debut, donc on démarre à  debut

On va configurer notre Pic pour le faire tourner à  4 mégahertz, donc tu vas à  la page 62 de ton datasheet
Comme tu comprends l'anglais, moi pas, ça devrait être plus facile pour toi.

Comment s’appelle le registre sur la page 62 ?

En quelle bank est t'il ?

Qu'elle sont les bits qu'il faut activé pour que ton Pic tourne à  4 mégahertz ?


Si tu as un problème, tu peux revoir les explications du post 18, sur les bank, et la façon d'écrire les valeurs.

Une partie de mes plantation son terminer, j'espère que ta peinture sera sec, et pour commencer mieux vos
avoir un endroit ou l'on se plait.

     A+

Arckont

Bonjour !

alors, voici ce que j'ai modifié dans le script:


    CBLOCK 0x20
      var0 1
      var1 1
      var2 1
      var3 1
          var4 1
      var5 1
      var6 1
      var7 1
      var8 1
      var9 1
    ENDC               


    CBLOCK 0x70       
    ENDC               

    ORG H'00'
      goto debut


dans la page 63(?) du datasheet je vois qu'on parle d'oscillateur interne et externe, c'est cette page je suppose?
je vois donc qu'on parle du registre OSCCON qui se trouverait en bank1
et pour le configurer à  1Mhz il faudrait le configurer sur 110 (binaire je présume vu la configuration des chiffres)
du coup... j'ai trouvé cette ligne qui me semble cohérente en terme de format:

OSCCONVAL EQU B'01100000'

ça se passe bien ? :)
Merci, et à  bientôt!

Curiosus

#32
Bonjour Arckont, et tout le forum,

Ok, mais ne pas oublier de mettre : car le compilateur va t'indiquer une erreur si tu le fais pas.

   
    CBLOCK 0x20
      var0   :1
      var1   :1
      var2   :1
      var3   :1
      var4   :1
      var5   :1
      var6   :1
      var7   :1
      var8   :1
      var9   :1
    ENDC               


    CBLOCK 0x70       
    ENDC               


C'est la page 62, à  moins qu'il y un décalage horaire avec le canada, bravo pour avoir trouver le registre qui va te servir
pour mettre en fonction ton microcontrôleur, grâce a ce registre tu n'as pas besoin de mettre un quartz.   

Effectivement c'est bien le registre OSCON qui se trouve bien en bank1, comme tu peux le voir, chaque bit à  une conséquence sur ton microcontrôleur, d’où l'utilité de cette exercice.

C'est 4 Mégahertz, mais c'est la bonne valeur OSCCONVAL EQU B'01100000' 

Bon je veux bien que tu recherches sur internet les réponses, mais OSCCONVAL n'exsite pas, ça existe
quand langage C++
       
Tu télécharges le cours de monsieur Bigonoff ici : https://drive.google.com/open?id=1GjRz8jZJwtwWfrP1LwhHdwX3F_zxkIz3

Tu vas à  la page 65, et tu essai avec les explication du Monsieur Bigonoff, de copier la valeur que tu as
trouvé dans le registre OSCCON

C'est ta dire B'01100000', à  faire tous seule, sans recherche.

A+     

Curiosus

#33
Bonjour Arckont, et tout le forum,

Regarde le post juste au dessus, je te laisse trouver la solution, mais si tu n'y arrive pas, je te donnerai la solution.

Je sais tu voudrais pratiquer, mais on est tout près de le faire

As tu ton PICKit3 ?

As tu ton microcontrôleur ?


A+

Arckont

Bonjour Curiosus,

désolé pour cette absence, une vilaine fracture m'a rendu indisponible un moment...

j'ai bien reçu tout le matériel nécessaire , mes breadboards, les PIC, les alimentaitons, le picKit3, et même pas mal de matériel en rab pour expérimenter ! :)

je viens d'ouvrir le document et lire attentivement la page 65.

je crois comprendre qu'il faut utiliser un MOVLW pour passer une valeur dans un champ...
en gros à  l'image d'un système linux ou le "couper-coller" est un move, je présume.

du coup si je ne me trompe pas...

OSCON movlw B'01100000'

j'ai bien peur de faire n'importe quoi là ...

dans ma tête les choses ne sont pas encore claires.
a moins qu'il faille choisir l'emplacement comme dans les CBLOCK précédemment faits et y injecter la valeur?

une fois que j'aurai intégré ça je pense que j'aurai fait un grand pas en avant (enfin)

Merci pour ton temps et ta patience...

Curiosus

#35
Bonjour Arckont, et tout le forum,

J'espère que tu vas te remettre au plus vite de cette fracture, et reprendre tes occupation favorite. ::)

Ok, si tu as tous reçu, on va pouvoir continuer

Citation
je viens d'ouvrir le document et lire attentivement la page 65.

Je te conseille même de télécharger toute la documentation et de la lire, car c'est un des premier cours que j'ai eu.

Et oui, j'ai appris sur le tas, mais j'avais déjà  de l’expérience dans le domaine de l'électronique.

On réalité voici la manoeuvre
 
movlw B'01100000'
movwf OSCON


On ne peut pas transférer directement la valeur dans OSCON , on est obligé de passer par un registre de travail
de 8 bits qui s’appelle W

Si j'écris ce que j'ai fait, ça donne ceci

Copier B'01100000' Dans W
Retransmet cette valeur dans OSCON

Je dois admets que cette méthode est barbare, mais c'est comme ça, faut faire avec.

On pratiquant par la suite sa deviendra claire, faut de la volonté pour apprendre, j'ai pas eu la chance d'avoir quelqu'un
qui m’expliquai tous cela quand j'ai commencé, j'ai juste lu les explications de Monsieur Bigonoff, qui as eu la gentillesse
de partagé sont savoir dans des documents fourni plus haut.

je n'avais même pas internet, les documents je les avais téléchargé chez un copain.
 
Je pourrais te donner le programme tous fait, mais tu n'apprendras rien, c'est pas le but recherché ici.

Je vais te laisser réfléchir encore un peu, comment feras tu pour mettre tous le

PORTA en sortie
PORTB en entrée
PORTC en sortie
PORTE en entrée


A+





Arckont

Bonjour!

j'ai mis du temps pour répondre encore une fois, mais j'ai une existence plutôt mouvementée pour l'instant :)

Bref!

Alors, j'ai lu pas mal de choses, et j'ai essayé de comprendre la syntaxe

et je pense donc que pour faire ce qui est demandé , il faut taper:

init
     bsf PORTA,0
     bsf PORTB,1
     bsf PORTC,0
     bsf PORTE,1


est-ce juste?
Merci et à  très bientôt!
lhu.

Curiosus

#37
Bonjour

Pas grave si tu mets du temps à  répondre, ça m'arrive très souvent, par fatigue, par manque de moral, trop occupé, bref....
on n'est pas des robots hein....

Pour te répondre sur ton dernier post 36, je dirais que tu brules les étapes, et que ça risque pas de fonctionner

Pour fonctionner il faut configurer les registres qui s’appelle TRISA, TRISB, TRISC,TRISD, TRISE

Regarde au post #18 : http://forum.bidouilleur.ca/index.php?topic=320.msg1902#msg1902, tu vas voir
les registres donc je te parle.

C'est registre se trouve en Bank1 et pour passer dans cette bank on utilise la directive BANKSEL

BANKSEL :  Nom de ton registre

Donc dans notre cas il faudra écrire : BANKSEL TRISA ou TRISB ou TRISC ou TRISD, ou TRISE

une fois positionné dans cette bank, on configure les pattes de notre pic,

Soit en entrée = 1 configurer en entrée tu pourras recevoir une tension sur la patte qui sera configuré comme t'elle
mais tu ne devras pas dépasser la tension préconisé dans le datasheet. 

Soit en sortie = 0, configuré en sortie tu pourras envoyer une tension sur la patte qui sera configuré comme t'elle
mais tu ne devras pas dépasser le courant préconisé dans le datasheet. 

Relis le post #18 : http://forum.bidouilleur.ca/index.php?topic=320.msg1902#msg1902

Relis le post #35 : http://forum.bidouilleur.ca/index.php?topic=320.msg2038#msg2038

L’exercice demandé était celui-ci

PORTA en sortie
PORTB en entrée
PORTC en sortie
PORTE en entrée

Pour faire cette manoeuvre tu es obligé d'écrire dans TRISA, TRISB, TRISC, TRISD, TRISE.

Tout est expliqué dans les posts cité ci-dessous.

Post #18 :http://forum.bidouilleur.ca/index.php?topic=320.msg1902#msg1902

Post #35 :http://forum.bidouilleur.ca/index.php?topic=320.msg2038#msg2038

Les registres PORTA, PORTB, PORTC, PORTD, PORTE ne sont pas dans la même bank

Donc exercice à  refaire, car ça il faut que tu le comprenne, sinon on pourras rien faire.

Bien ce petit kit pour apprendre à  souder les CMS, mais je te conseille un petit kit, qui va t'apprendre
à  les souder, mais qui te servira.

https://www.ebay.fr/itm/DSO138-2-4-TFT-Digital-Oscilloscope-Acrylic-Case-DIY-Kit-SMD-Soldered/263180169877?hash=item3d46c2b295:m:mjfzf3FM4ju8XZqGcNXmeAg

Il y en a des moins chère, mais ils ont pas de boitier, comme ici
https://www.ebay.fr/itm/DSO138-2-4-TFT-Digital-Oscilloscope-DIY-Kit-parts-1Msps-probe-Oscilloscopes/263028276338?hash=item3d3db4fc72:g:crgAAOSw~XpZOlLq 

A+

Arckont

Bonjour!

concernant le DSO j'en ai déjà  un justement pour ces raisons :)
il fonctionne bien et est prêt à  servir, mais je n'ai pas encore eu l'occasion d'apprendre à  m'en servir.

concernant l'exercice, je ne comprends pas encore bien mais je crois avoir progressé.

du coup si je comprends mieux l'exercice, pour définir ces ports il faut entrer dans le code:

BANKSEL BANK1
MOVLW B'11111111'
MOVWF TRISB
MOVWF TRISE
MOVLW B'00000000'
MOVWF TRISA
MOVWF TRISC

de cette façon on configure tous les ports de PORTB et PORTE en entrée, et tous les ports de PORTA et PORTC en sortie, est-ce bien correct?
avec le banksel bank1 pour sélectionner la banque 1 au départ...

je chauffe? :)

Curiosus

#39
Bonjour Arckont,

Oui c'est cela, super tu as compris, regarde ta Messagerie nom di dioux !!

  A+