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

Fréquencemètre divers technique
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#21 Message par paulfjujo » mar. 23 nov. 2021 17:56

paulfjujo a écrit :bonjour à tous,


:sifflotte: Version avec quartz horloger 32,768KHz sur Secondary Oscillator SOSC .. OK

quartz en RC0 et RC1 , encadré de 2x22pF
aiguillage SOSC sur entree timer 4 ... confguré pour sortir 1 seconde sur TMR4_Scaled output
sortie dirigée sur SMT1 Window input
L' entree SMT1 Signal est redirigée sur RC2 input (via PPS) ( car RC1 mobilisé par SOSC)

Capture mesure = registre SMT1CPR dans l'interrupt AIF (IVT_SMT1PRA)
=> frequence en HZ

tests
12 500 000 Hz -> mesure 12500300Hz erreur <0.03%
3 125 000 Hz => mesure 3125077Hz
25 000 Hz --> 25000
2500 Hz --> 2503
48.82Hz -> 48 ou 49

impossible de savoir si l'erreur est coté Quartz Horloger ou quartz EPSON
ou programmation ?
sachant qu' avec FOSC =64MHz une instruction ne mobilise que 62.5nS !
guère probable ..

gamme limité à 16 000 001 Hz avec Window de 1 sec ( Overlimit message si debordement SMT1)
sinon up to 32MHz avec window 0.5sec (Prescaler TMR4 de 8 au lieu de 16) et mesure = registre SMT1CPR <<1
...details sur ma page..

conclusion : fréquencemetre EASY avec SMT1

* On peut aussi gerer en interne , l'heure sans RTC , puisqu'on dispose du 1Hz...TMR4
* on peut aussi activer NCO pour disposer d'une frequenc de sortie connue
* De meme, on pourrait aussi commuter le mode de mesure SMT1 en mode Periodmetre avec mesure duty cycle en plus.
via une pin de selection de mode.
* un ecran LCD tactile pour gerer tout ça

:sifflotte: Bref, possible de faire une usine à gaz, avec ce PIC. ( si en plus on passe en 40Pins 18F47K42)



petite mise à jour :
envoi via Keyboard
Gamme=1 pour Windows 1sec ... Overlimit si > 16MHz
gamme=2 pour windows 0,5sec .. on peut lire 25MHz ..(et limite à 32MHz )
mais resolution +-2Hz

Code : Tout sélectionner

if(Flag_Buffer1==1)
    {
      
// LED_Rouge=0;
       
CPrint("\r\n Reçu :\r\n");
       Print(
Buffer1);
       
CRLF1();
       
//strConstRamCpy(CRam1,"Gamme=);
       // p1=strstr(Buffer1,CRam1);
       
p1=strstr(Buffer1,"Gamme=");
       if (
p1>0)
       {
         
cx=*(p1+6)-48;
         switch (
cx)
         {
          case 
1:
                
Range=cx;
                  
TMR4ON_bit=0;
                
T4PR127;
                
T4TMR 0x00;
               
T4CON 0x4F //  Prescaler =1/16  Poscaler=1/16
                 
CPrint("New Range =1\r\n");
               break;
          
          case 
2:
                
TMR4ON_bit=0;
                
T4PR127;
                
T4TMR 0x00;
                
T4CON 0x3F //  Prescaler =1/8  Poscaler=1/16
                
CPrint("New Range =2\r\n");
                
SMT1_Measure=0;
               
Range=cx;
               break;
         }

       }
        
p1=0;
    }   
// if flag
     


ce qui donne :


Entree=12,5Mhz
Waiting measure.. G=1 * Freq= 12501632
Waiting measure.. G=1 * Freq= 12500900

si modif entree => 25MHz

Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Gamme=2

Reçu :
Gamme=2
New Range =2
Waiting measure.. G=2 * Freq= 25000446
Waiting measure.. G=2 * Freq= 25000390
Waiting measure.. G=2 * Freq= 25000370
Waiting measure.. G=2 * Freq= 25000396
Waiting measure.. G=2 * Freq= 25000358
Waiting measure.. G=2
Gamme=1
* Freq= 25000328
Reçu :
Gamme=1
New Range =1
Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Waiting measure.. G=1 & Overfow SMT1
Gamme=2
Reçu :
Gamme=2
New Range =2
Waiting measure.. G=2 * Freq= 25000354
Waiting measure.. G=2 * Freq= 25000314
Waiting measure.. G=2 * Freq= 25000438
ting measure.. G=2 * Freq= 25000438

Aide toi, le ciel ou FantasPic t'aidera

Fréquencemètre divers technique
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#22 Message par Temps-x » jeu. 25 nov. 2021 00:27

Bonsoir paulfjujo, et tout le forum,

Bon je sais je qui me reste à faire, une version ASM, de plus faut que je refasse tes essais.

oops incroyable de voir tout les faculté de ce Pic

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 39 invités