Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Doute sur usage RA4 timer
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#1 Message par paulfjujo » mer. 18 janv. 2017 17:26

bonsoir à tous,

Je m'adresse plus particulierement à notre specialiste ASm , Maï

J'ai testé un capacimetre , seffmetre LC Meter à partir d'un programme pris sur le Web
et j'ai de gros doute sur cette partie de programme, bien que celui ci tourne sans probleme (apparent).
Tous les details ICI .

TMR0 est utilisé pour mesure la frequence de l'oscillateur LC
Pour moi , RA4 ne peut etre qu'une ENTREE pour le timer TMR0
et je ne comprends pas pourquoi RA4 est configuré en Sortie
pour la Mesure, pendant 100mS
puis en entree pour utiliser T0SE comme entree soft de Timer0

; OPEN GATE
movlw b'11100111' ; Enable RA4 output to T0CKI
movwf TRISA ; EN SORTIE ?
CALL MS100 ; 100MS DELAY
; CLOSE GATE (COUNT COMPLETE)
movlw b'11110111' ; Disable RA4 output to T0CKI
movwf TRISA ; en ENTREE ?

Attention!! J'aurais plutot fait le contraire
J'ai deja utilisé RA4 en entree .. de frequencemetre sur 16F84 ..

pourtant, si j'inverse .. le programme ne tourne plus correctement .. "OVERRANGE"

Code : Tout sélectionner


Measure    
    bcf    INTCON
,T0IF    ; Declare "Not yet Over-range"
    CLRF    TMR0    ; RESET INTERNAL COUNT (INCLUDING PRESCALER)
                    ; See page 27 Section 6.0
    CLRF    F3        
; Ready to receive 16 bit number
    CLRF    F3
+1
    bank1
; OPEN GATE
    movlw    b
'11100111'    ; Enable RA4 output to T0CKI
    movwf    TRISA        
; 1 = input  0 = output
    CALL    MS100        
; 100MS DELAY
; CLOSE GATE (COUNT COMPLETE)
    movlw    b'11110111'    ; Disable RA4 output to T0CKI
    movwf    TRISA        
; 1 = input  0 = output
    bank0
    MOVF    TMR0
,W        ; GET HIGH BYTE
    MOVWF    F3        
; Copy to Big end of 16 bit result
; The comparator is "outputting" a 1 'cos we've forced it high
; so T0CKI=1.
PSC1    
    bank1
    bsf    OPTION_REG
,T0SE    ; Clock the prescaler
    nop
    bcf    OPTION_REG
,T0SE
    bank0
    DECF    F3
+1,F        ; Decrement the counter
    movf    TMR0
,W        ; Has TMR0 changed?
    xorwf    F3,W        ; if unchanged, XOR -> 0
    beq    PSC1
    return            
; F3 : F3+1 now holds 16 bit result



un petit bout de schema pour aider

Timer0_config_et_comptage.jpg





;9.5 Comparator Outputs
;The comparator outputs are read through the CMCON
;register. These bits are read only. The comparator
;outputs may also be directly output to the RA3 and RA4
;I/O pins. When the CM<2:0> = 110

une sortie va en principe sur une entree ?
Bref , pas clair du tout dans la datasheet ..
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Doute sur usage RA4 timer
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#2 Message par Gérard » jeu. 19 janv. 2017 23:23

Bonjour,
Je viens de regarder à nouveau le schéma.
Peut-être que c'est pour comparer les horloges arrivants sur TMR0, celle issue du hard et celle issue du soft.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Doute sur usage RA4 timer
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » ven. 20 janv. 2017 14:21

:-D J'ai enfin trouvé l'explicage ...

:oops: Confusion à cause de la simplification du schema original LCMeter et du detail Comparateur Datasheet
dans la data sheet fig 1 0.3 page 64

Retour sur les I/O , dont RA4

Timer0_et-RA4_Detailgif.gif


Là , le cheminement de la sortie Comparateur est mieux explicite.
Le choix de config Comparator Mode 110 montre que pour traverser le ETen sortie comparateur, il faut un 1 permanent de l'autre coté.
Ce 1 est fournit par la sortie bascule Q barre commandée par un Write de 0 (= Output) sur TRISA RA4 .
Le signal carré sortie Comparteur2 se retrouve bien sur RA4 .. qui necessite une R Pull up au +VCC ( ici 4,7k )
Un Write 1 sur TRISA.RA4
=> Q barre=0 bloque le ET => plus de signal vers Tmr0..
Nota: il manque aussi sur ce schema l'aiguillage du OU pour la connection de ce signal OU celui de TOSE
à l'entree comptage timer0.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Doute sur usage RA4 timer
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#4 Message par Gérard » ven. 20 janv. 2017 17:36

Content que tu aies trouvé, mais c'est un peu tordu comme truc.
Ils sont compliqués chez Microchip.
:sifflotte:
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités