Cour de programmation

Voir le sujet précédent Voir le sujet suivant Aller en bas

Cour de programmation

Message  raphaël le Lun 26 Oct - 0:11

Cours de C :

Très bon cours de programmation C sur ordinateur :
Le site du Zéro.
Contient aussi des cours sur le HTML, les ordinateurs et ...)

Cours de C pour microcontrôleurs (plutôt PIC) :
Le site de Bigonoff.

Enfin pour un perfectionnement voici un forum de programmation, plutôt pour les personnes à bon niveau (même si il existe des tutoriels pour débutants) :
Developpez.


Dernière édition par raphaël le Jeu 11 Mar - 21:13, édité 1 fois
avatar
raphaël

Messages : 43
Date d'inscription : 08/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Cour de programmation

Message  raphaël le Ven 11 Déc - 1:40

Supplément de C pour micocontrôleurs PIC :
I) Utilisation des ports entrées/sorties standards :
1) Configuration du port :
TRISx = _____; 0 = output(sortie), 1 = input(entrée) du point de vue du microcontrôleur
avec x = A ou B ou C ou D ou E suivant le port souhaité

ex: pour configurer le port B en entré : TRISB = 0b11111111; ob signifie aue le nombre est éxprimé en binaire
pour configurer le port D en sortie : TRISD = 0b00000000;
pour configurer les bits [3..0] du port C en sortie et les bits [7..4] en entré : TRISC = 0b11110000;


2) Lecture du port :
Pour un port configuré en entré :
var = PORTx

ex: pour lire la valeurs du port B (en entrée cf au dessus) et mettre le resultat dans une variable (d'un octet) :
unsigned char var_lue_portB;
var_lue_portB = PORTB;


3) Écriture sur un port :
Pour un port configurée en sortie :
LATx = ____

ex : pour mettre la valeur d'une variable sur le port D (configurée en sortie cf plus haut) :
unsigned char ecriture_portD = 15;
LATD = ecriture_portD;


4) Manipulation supplémentaire sur les ports :
Il est possible d'inverser un port (ou une variable) : ~nom_port ou (~nom var)
ex: var = ~PORTB; //fait que var aura la valeur du PORTB inversé.

On peut aussi recopier tout un port d'un coup vers un autre port : LATx = PORTy
ex: LATD = PORTB;
LATD = ~PORTB; //est aussi possible


5) Manipulation bit à bit sur les ports :
Il est possible, intéressant et souvent utile de manipuler qu'un bit sur un port.

Si le bit du port est configuré en entrée : PORTxbits.Rxy pour viser le bit y du port x. (Rem : y appartient à [0 .. 7])
Si le bit du port est configuré en sortie : LATxbits.LATxy pour viser le bit y du port x.

ex: TRISB=0b00110101; //bits 7,6,3 et 1 en sorties (0) et bits 5, 4, 2, 0 en entrés (1)
TRISD=0b00001111; //bits 7 à 4 en sorties (0) et bits 3 à 0 en entrés (1)

LATBbits.LATB1 = PORTBbits.RB0; //possible dans un même port
LATDbits.LATD4 = PORTBbits.RB2; //possible dans ce sens d'un port à l'autre
LATBbits.LATB7 = PORTDbits.RD0; /possible dans l'autre sens

LATBbits.LATB5 = PORTBbits.RB4; //impossible car le bit 5 du port B n'est pas configuré comme une sortie
LATDbits.LATD6 = PORTDbits.RD5; //impossible car le bit 5 du port D n'est pas configuré en entré
avatar
raphaël

Messages : 43
Date d'inscription : 08/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum