Bonjour bidouilleurs, bidouilleuses,
Est-ce qu'il existe un moyen facile de trier des résistances ?
La première solution consiste à apprendre les couleurs, comme je l'ai fait.
Noir = 0
Marron = 1
Rouge = 2
Orange = 3
Jaune = 4
Vert = 5
Bleu = 6
Violet = 7
Gris = 8
Blanc = 9
Sinon tu regardes sur ce site, ou tous est expliqué, si tu comprends pas dis le moi.
https://translate.google.com/translate?hl=fr&sl=auto&tl=fr&u=https%3A%2F%2Fwww.inventable.eu%2F2015%2F06%2F04%2Fcomo-se-leen-los-colores-de-las-resistencias%2F&sandbox=1 (https://translate.google.com/translate?hl=fr&sl=auto&tl=fr&u=https%3A%2F%2Fwww.inventable.eu%2F2015%2F06%2F04%2Fcomo-se-leen-los-colores-de-las-resistencias%2F&sandbox=1)
Bon pour l'exercice c'est très bien pour la colorisation des pattes par PORT, mais pour le deuxième exercices
c'est pas ce que je te demande, regarde l'exemple, pour cette réponse je te laisse réfléchir, j'ai mes raisons.
Très bien, il y a effectivement 5 PORT Qui sont PORTA, PORTB, PORTC, PORTD, PORTE pour ce Pic là .
Il y a bien d'autre chose à savoir sur ce microcontrôleur mais pour l'instant on va se limiter aux entrées et sorties.
Quand tu sauras parfaitement manipuler les entrées et sorties, on passeras à autre chose.
Bon ça va se corser, tu ouvres le datasheet que tu dois avoir téléchargé suite à notre conversation du poste N°#12
tu vas à la page 25, si tu as une imprimante tu imprimes cette page, qui va nous servir tout le temps.
Maintenant je vais te présenter les registres du Pic16F887 qui sont en 8 bits.
Chaque registre on une fonction, et chaque bit d'un registre permette de configurer ton microcontrôleur.
Les registre sont placés par bank, alors je demande de bien regardé ta page 25, et je te demande que tu me dises
Combien le Pic16F887 comporte t' il de bank ?
Combien le Pic16F887 à t' il de registres ?
Tous et marqué dans la page 25, ne va pas chercher ailleurs
Le meilleur moyen d'apprendre, c'est trouvé pas soit même. ;)
A+
Bonjour bidouilleurs, bidouilleuses,
J'espère que tu as prie des forces pendant tes vacances, et surtout un bon repos. ;)
Bon pour les registres :
Bank1 31 registres -- ok
Bank2 15 registres -- ok
Bank3 13 registres -- ok
Ouais tu avait prie "Accesses" qui n'a rien à voir avec tout cela.
Comme je veux pas t’embrouiller, je t'en reparlerais plus tard, au moment de la programmation.
Voici tous tes registres, comme tu l'auras compris, c'est ceux qui ne son pas colorié
(https://zupimages.net/up/18/14/jsam.png)
En page 2 de ton datasheet tu peux voir ceci :
Taille maxi que peux avoir ton programme 8192 octets
Taille de ta Sdram 368 octets
Taille de ton eeprom 256 octets
Nombre de sorti ou entrée I/O 35
La Sdram c'est comme pour les registres, elle est divisé en 4 bank
Comme tous est écrit en anglais tu es excusable, ne t’inquiète pas je suis comme toi, je comprends pas l'anglais.
J'arrive juste à deviner par habitude, avec mon maigres cerveau.
Aller je te donne la solution pour la Sdram car c'est pas simple,
En Bank0 début de la sdram H'20' fin H'6F' soit 80 octets
En Bank1 début de la sdram H'A0' fin H'EF' soit 80 octets
En Bank2 début de la sdram H'110' fin H'16F' soit 96 octets
En Bank3 début de la sdram H'190' fin H'1EF' soit 96 octets
En Bank0, Bank1, Bank2, Bank4, début de la sdram H'70' fin H'7F' soit 16 octets
Si tu fais le calcul tu vas trouver 368 octets, les 16 octets sont commune à toutes les bank.
Maintenant une chose à retenir :
Le D placé derrière veut dire décimal, exemple : D'125'
Le B placé derrière veut dire binaire, exemple : B'00100100'
Le H placé derrière veut dire héxadécimal, exemple : H'F8'
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Dans l'écriture de ton programme en version ASM, le nombre décimal ne pourras dépasser 255 pour un microcontrôleur 8 bits
Dans l'écriture de ton programme en version ASM, le nombre binaire s'écrire par paquet de 8 pour un microcontrôleur 8 bits
Dans l'écriture de ton programme en version ASM, le nombre hexadécimal ne pourras dépasser FF pour un microcontrôleur 8 bits
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Alors pour voir si tu as compris, tu vas me dire dans quelle bank se trouve les registres cité ci-dessous.
PORTA
OPTION_REG
ANSEL
CMCON
TRISB
ADCON1
ADCON0
PR2
T2CON
CCP1CON
INTCON
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Cite moi au hasard 2 registres en bank0
Cite moi au hasard 2 registres en bank1
Cite moi au hasard 2 registres en bank2
Cite moi au hasard 2 registres en bank3
Cite moi au hasard 2 registres en bank commune
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Je sais bien que c'est lourd, mais après tu vas voir, tout seras plus facile.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Je comprends ton inquiétude sur le choix de ce Pic16F887, pour apprendre faut commencer petit.
car tu vas voir qu'il y à pas que la compréhension du microcontrôleur, car l'électronique c'est de la science avant
toute chose.
Et je peux te dire qu'il mets arrivé de réécrire un programme qui était fait pour un microcontrôleur 16 bits
en microcontrôleur 8 bits.
La plupart des personnes disent qu'un 18F est mieux qu'un 16F c'est du n'importe quoi, tous dépends de l'utilisation.
C'est comme ci tu me dirais, je vais au marché qui se trouve à 500 mètres de chez moi, je prends ma Ferraris,
ça iras plus vite.
Entre la 2Cv et la Ferraris rien ne changeras, les deux arriverons en même temps vu la distance
et l'encombrement.
En ce qui concerne la qualité des composants, ça iras très bien ce que tu as, crois en mon expérience.
A+
Bonjour bidouilleurs, bidouilleuses,
Si tes fichier sont installés correctement tu dois avoir dans le dossier Debut le fichier Debut.asm et P16F887.inc
Le fichier P16F887.inc et l'endroit ou son marqué l'emplacement mémoire des registres, il sert au compilateur.
Chaque Pic à un fichier d’extension *.inc, il se trouve dans le répertoire de MPLAB IDE\MPASM Suite\
Dans ce répertoire se trouve le compilateur qui s'appelle MPASMWIN.exe.
Le fichier Debut.asm et celui que tu vas utiliser pour écrire ce que tu veux faire avec ton Pic.
Bon maintenant tu dois avoir un icône sur ton bureau marqué en dessous MPLAB IDE v8.92
(https://zupimages.net/up/18/15/r6qk.jpg)
Tu clips dessus et tu suis les photos joint :
Ouvrir
(https://zupimages.net/up/18/15/7riz.jpg)
Aller chercher le fichier
(https://zupimages.net/up/18/15/a24g.jpg)
Voilà tu viens de chargé le fichier dans l'éditeur de MPLAB IDE v8.92 si la couleur de mon éditeur et différente c'est normal, je l'ai paramétré comme cela.
(https://zupimages.net/up/18/15/fh5k.jpg)
Sélection du Microcontrôleur
(https://zupimages.net/up/18/15/w2hl.jpg)
Sélection du microcontrôleur Pic16F887
(https://zupimages.net/up/18/15/7hur.jpg)
Compilation du Fichier d'extension ASM
(https://zupimages.net/up/18/15/ifrw.jpg)
Un message doit apparaître, qui t'indique un Sucées
(https://zupimages.net/up/18/15/79d8.jpg)
Voilà tu viens de compiler ton premier fichier, tu dois avoir dans le dossier Debut un fichier qui s'appelle Debut.hex, c'est celui-ci que tu mettras dans ton Pic.
Comme tu n'as pas encore le programmeur, n'y le microcontrôleur, on peu pas le faire.
D'autre par il existe un autre fichier qui s'appelle Debut.err dans le dossier Debut c'est celui ou son marqué les erreurs que tu as pu faire.
Si tu n'as pas fait d'erreur il doit faire zéro octet, toujours vérifier si celui-ci et à zéro octet.
Maintenant on va travailler sur chaque registre, on réalité on utilise généralement ceux qu'on a besoin.
Mais certain registre même si on les utilises pas on besoin d'être configuré pour divers raison.
Comme tu peux le voir en haut du fichier *.asm il y a ceci
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
list p=16F887 ; processeur utilisé
#include <p16F887.inc> ; Définitions des constantes
__CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
Pour l'instant je vais pas t'expliquer à quoi ça sert, tu le laisse comme telle, car bien d'autre chose à voir avant.
La prochaine fois on regarderas les déclarations des variables.
D'après toi c'est quoi une variable ? ;)
Je te propose de faire un premier programme pour faire clignoter une LED, pour commencer.
A+
Bonjour bidouilleurs, bidouilleuses,
Maintenant on va déclarer nos variables
Microchip utilise des directives qui seront traduit par le compilateur, les directives serve à nous simplifier la vie.
Pour les déclarations de nos variables ont utilisera la directive qui se nome CBLOCK
Toute zone définie par l’utilisateur comme « déclarant » des variables commence avec la directive CBLOCK,
suivie par l’adresse du début de la zone.
Pour placer nos variables, qui sont des emplacements mémoires auxquels on a donné un nom, nous consultons
de nouveau la page 25.(celle que tu as étudié.)
Nous voyons que la zone SRAM est librement utilisable à l'adresse H'20', pour la bank0
Notre zone de variable contiendra donc la directive
CBLOCK H'20' ; début de la zone variables
Ensuite, tu peux utiliser 80 emplacements mémoire, qui répondront à la syntaxe Suivante :
Nom de la variable suivi du signe « : » (les espaces sont ignorés) suivi de la taille utilisée.
Par exemple :
loop1 : 1 ; Zone de 1 octets qui représente 8 bits
boucle :4 ; Zone de 4 octets qui représente 32 bits
temps : 8 ; zone de 8 octets qui représente 64 bits
Ensuite, tu dois préciser la fin de la zone en cours à l’aide de la directive ENDC
Exemple complet :
CBLOCK H'20' ; début de la zone de la sdram en bank0
ok : 1
tourner : 2
hello : 4
ENDC
Peux tu me refaire la même chose pour le début de la bank1, bank2, bank3 et bank commune, en mettant des variables du non de ton choix avec 1 octet, 2 octets, 5 octet ?
Là , on va passer pas mal de temps, mais c'est nécessaire, de toute façon comme il faut faire pas mal de théorie
le microcontrôleur n'est pas forcément important, pour l'instant, car encore plein de chose à voir.
effectivement c'est le "Hello World!" de l'électronique si j'ai bien compris :)
Oui, bien vu, c'est la première chose que l'on doit faire avec un microcontrôleur, même si on n'est pas débutant. ;)
Bon pour l'instant j'attends de voir si tu as compris, c'est pas évident, je le reconnais, c'est pas mon métier l'électronique
je suis juste un passionner.
.
A+
Bonjour Arckont, et tout le forum,
Comme je suis dans la plantation de mon potager, j'ai pour l'instant pas toujours du temps pour répondre.
Bon maintenant on y est, tu vas apprendre les instructions au nombre de 35 pour c'est PIC là .
On va déjà apprendre l’essentiel qui est plutôt simple.
goto ok tu sais ton servir
Fais moi par de toutes les instructions que tu connais.
ADDLW
ADDWF
ANDLW
ANDWF
BCF
BSF
BTFSC
BTFSS
CALL
CLRF
CLRW
CLRWDT
COMF
DECF
DECFSZ
GOTO
INCF
INCFSZ
IORLW
IORWF
MOVF
MOVFW
MOVLW
MOVWF
NOP
RETFIE
RETLW
RETURN
RLF
RRF
SLEEP
SUBLW
SUBWF
SWAPF
XORLW
XORWF
Ne t’inquiète pas, on va apprendre les instructions on fonction de notre besoin, et je t'expliquerais celle-ci.
As tu reçu ton PicKit3 et ton microcontrôleur ?
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
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+