Académique Documents
Professionnel Documents
Culture Documents
02
02
L'opcode de INC R20 est donc 1001 0101 0100 0011 soit 0x9543
Adressage par registre double
C'est le cas des instructions ALU a 2 opérandes .
Exemple
AND R24,R25 : Et logique entre R24 R25
OP 0010 00
Reg d=24 = 11000, d =24 1 1000
Reg r=25 = 11001 r =25 1 1001
L'opcode est 0010 0011 1000 1001 = 0x2389
Examples d’instructions :
AND Rd, Rs
ADD Rd, Rs
SUB Rd, Rs
MOV Rd, Rs
OR Rd, Rs
Adressage Immédiat
La donnée est fournie « immédiatement », elle est contenue dans l'opcode
Exemple LD R12,X
Load Data Memory Indirect X
Charge la donnée dont l'adresse en mémoire
SRAM est contenue dans X dans le registre R12
c'est le cas (i) du tableau opcode 1001 0001 1000 1100 = 0x918C
L'adressage indirect est très utilisé pour accéder aux tableaux (char A[10] en
C par exemple) et dans ce cas il est très courant d'accéder successivement à
tous les éléments du tableau (A[i++] ou A[--i])
Timer
•Mesure des évènements
•si tops d'horloge : fonction de « temporisateur »
•si impulsions externes : fonction de « compteur »
•Il sert donc à :
•mesurer des temps
•exécuter des tâches périodiquement
•générer des signaux périodiques
•compter des évènements.
Les ports parallèles d'E/S
Caractéristiques générales
L'Arduino UNO dispose de 23 broches d'E/S, organisées en 3 ports parallèles
numériques
ce sont les ports B, C et D
port B : broches numériques 8 à 13
port C : broches analogiques (0 à 5)
port D : broches numériques 0 à 7
Ils sont tous bidirectionnels
le port C peut aussi être utilisé comme « port d'entrée analogique » (CAN)
Leurs lignes peuvent être configurées/utilisées individuellement
On peut changer les directions des ports par les instructions SBI and CBI.
Tous les pins des ports possèdent les résistances pull-up.
the variable used to read the value from the input pins is declared as an
unsigned char (both the port and this variable type are eight bits wide).
Reading from the address PORTx, when the port is configured as output,
returns the last value written to the port.
two data registers, PINx, is used when the port is configured as input, and
PORTx, is used when the port is configured as output.
Writing to PORTx
when DDRx = 0
(port configured as
input) connects
internal pull-up
resistors to the
input lines
corresponding to
the bits in
PORTx set to 1.
Special instructions have been provided to allow software access to the I/O
ports or to the individual bits thereof.
IN Rd,ioport ;read from the address ioport to register Rd
OUT ioport,Rs ;write data from Rs to ioport
SBI ioport,bit ;set specified bit to ioport
CBI ioport,bit ;clear specified bit to ioport
De nombreux µC ne fonctionnent pas comme cela : toute action sur un seul bit
se traduit par lecture et une réécriture complète de tout le registre.