Est ce que vous savez si il est possible d’accéder au différent bits du registre TMR0L?
-----
29/01/2012, 16h34
#2
Pierrre
Date d'inscription
février 2003
Localisation
Amiens
Messages
2 491
Re : Registre TMR0L
bonjour
sur un XTR024C78 ?
29/01/2012, 16h37
#3
inviteec8d8fa2
Date d'inscription
janvier 1970
Messages
27
Re : Registre TMR0L
C'est sur un Pic 18f4520 désoler pour mon oubli
29/01/2012, 16h44
#4
inviteec8d8fa2
Date d'inscription
janvier 1970
Messages
27
Re : Registre TMR0L
Je sais que par exemple si on veut accéder au bit7 du registre TOCON, c'est sa: T0CONbits.T08BIT
Ma question est donc pour le registre TMR0L comment on fait pour accéder au bit7 par exemple.
Aujourd'hui
A voir en vidéo sur Futura
29/01/2012, 17h04
#5
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 771
Re : Registre TMR0L
Je ne connais pas trop les pics, mais il devrait y avoir un fichier d'entête correspondant à ton pic et donc un include du style
#include <18f4520.h>
ou quelques chose d'approchant dans lequel on doit pouvoir retrouver les définitions des registres avec leurs différents bits. C'est en général faut à l'aide de type struct, des bitfields plus exactement.
A+
29/01/2012, 20h37
#6
RISC
Date d'inscription
novembre 2006
Messages
3 791
Re : Registre TMR0L
Salut,
Les Timers possèdent des registres qui sont l'équivalent de variables.
On écrit une valeur correspondant au nombre de coups d'horloge (0x100 - valeur) que l'on souhaite pour avoir une interruption ou un overflow.
Donc en C par exemple : TMR0L = 0x100 - valeur ; au bout de valeur coups d'horloge il y aura une interruption
L'interruption se fait sur l'overflow il faut donc mettre (0x100 - valeur8) ou (0x10000 - valeur16)
a+
Dernière modification par RISC ; 29/01/2012 à 20h40.
29/01/2012, 20h47
#7
inviteec8d8fa2
Date d'inscription
janvier 1970
Messages
27
Re : Registre TMR0L
RISC, ma question est différente,
J'utilise mon timer0 en mode "timer" pour mesurer du temps entre front montant et descendant. Seulement j'aimerai non pas connaitre la valeur de TMR0L en hexa mais pouvoir scruter chaque bit du registre TMR0L et pouvoir assigner chaque bit de TMR0L à une sortie.
exemple:
TMR0L_bit0 vers portc_0 (quand TMR0L=1, portc_0=1)
TMR0L_bit1 vers portc_1
TMR0L_bit2 vers portc_2
TMR0L_bit3 vers portc_3
TMR0L_bit4 vers portc_4
TMR0L_bit5 vers portc_5
TMR0L_bit6 vers portc_6
TMR0L_bit7 vers portc_7
Suis je plus claire?
29/01/2012, 22h07
#8
MiGaNuTs
Date d'inscription
novembre 2008
Localisation
Orleans
Âge
45
Messages
633
Re : Registre TMR0L
Bah tu écrit directement "PORTC=TMR0" et roule: tu copie tout d'un coup.
Quel interet de faire en 8 instructions ce que tu peut faire en une seule ?
29/01/2012, 22h57
#9
RISC
Date d'inscription
novembre 2006
Messages
3 791
Re : Registre TMR0L
Salut,
Si tu veux mesurer un temps entre un front montant et descendant, il y a beaucoup plus simple...
Tu utilises l'unité CCP en mode Capture. Mais comme elle ne fonctionne qu'entre 2 fronts montants, il suffit de lancer la capture sur le front montant et aussitöt de changer le mode en front descendant ;=)
Dans l'interruption tu récupèreras valeur2 - valeur1 = nombre de coups d'horloge x période horloge interne = largeur de ton impulsion ;=)
a+
PS : il vaut mieux utiliser le TIMER0 en mode 16 bits. Le mode 8 bits est juste prévu pour la migration des PIC16 (mode legacy)
Dernière modification par RISC ; 29/01/2012 à 22h58.