p
u
b
l
i
c
i
t
é
publicité

Discussion: frequence et masquage

  1. #1
    Invité de passage
    Inscrit en
    septembre 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : septembre 2012
    Messages : 10
    Points : 0
    Points
    0

    Par défaut frequence et masquage

    Bonjour,

    j ai ecris un code pour un pic18f4520, je le compile en C18 et je suis sur MPlab 8.87. Je souhaite generer un signal carré de 40kHz singularisé : 4bits I0I0 par exemple . Cette opération afin de ne traiter que les signaux ayant cette signature .

    J arrive a génerer un signal carre 40khz avec TMR0 amis des que jj applique le masquage , je suis bloque a 31khz maximum .

    est ce envisageable ?

  2. #2
    Modérateur
    Avatar de Bktero
    Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    2 943
    Détails du profil
    Informations personnelles :
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2009
    Messages : 2 943
    Points : 7 340
    Points
    7 340
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    Qu'est ce qu'un signal carré singularisé ?
    Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseignez ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a

    Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^

    Pour vos problèmes d'embarqué, utilisez le forum dédié !

  3. #3
    Invité de passage
    Inscrit en
    septembre 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : septembre 2012
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    J entends par singularisé qu'il ai une identité : IOIO ou IIOI etc .... pour etre sur que le signal recu est bien celui que l on veux recevoir et pas son voisin ...

  4. #4
    Invité de passage
    Inscrit en
    septembre 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : septembre 2012
    Messages : 10
    Points : 0
    Points
    0

    Par défaut

    bon voila ou j en suis .. ça marchouille .. presque ...
    1er problème le signal est très irrégulier ...
    2 je suis encore trop lent (mais ça semble faisable)

    Je vous poste le code pour que vous puissiez vous rendre compte ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    /*============================================================================
     
    	//Elements relatifs a la configuration du PIC
    	/////////////////////////////////////////////
    
    #include <p18f4520.h> //ATTENTION penser a adapter la ref du uC
    #include <timers.h>
    #include <stdio.h>
    #include <delays.h>
     
    #pragma config OSC = HSPLL , FCMEN = OFF, PWRT = OFF, MCLRE = ON
    #pragma config PBADEN = OFF
    #pragma config LVP = OFF
    #pragma config WDT = OFF, DEBUG=OFF
    
    	//Elements relatifs au TABLEAU
    	/////////////////////////////
    #define nbr_element_tab 4  		// permet de donner la taille du tableau
    #define N 4 					// permet de faire la boucle pour invrementer le pointeur
    
    
    int tableau [nbr_element_tab]; 	//declare un tableau de x cases 
    int result_masquage(void);
    int pulses (void);
    void GenerationPulseAppel(void);
    
    
    	//Elements relatifs aux masquages
    	/////////////////////////////////
    
    	// Définition de la variable comme une constante (pour test uniquement)
    int a = 0x0F;
    
    	// Definition des masques          
    int maskA = 0x08;   // en binaire, cela donne I000
    int maskB = 0x04;   // en binaire, cela donne 0I00
    int maskC = 0x02;   // en binaire, cela donne 00I0
    int maskD = 0x01;   // en binaire, cela donne 000I
    
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////
    void main(void)
    {  
    	int i;  
    	
    	//Initialisation des Ports
    	LATB = 0x00;
    	PORTB = 0x00;
    
    	// Initialisation
        TRISB = 0xFD;		//RB1 en output uniquement 
       // ADCON1 = 0x0F; 	//to make all PORTA, PORTB pins digital when PBADEN is OFF
     
    	tableau[0] = 1;//((a&maskA)==8); // booleen si le resultat est vrai la case prend 1 
    	tableau[1] = 1;//((a&maskB)==4); //sinon 0
    	tableau[2] = 1;//((a&maskC)==2); 
    	tableau[3] = 1;//((a&maskD)==1); 
    
    //	INTCON2bits.RBPU = 0;  	// PORTB Pull-up Enable bit 1disabled , 0 enabled by 
    							//individual port latch
    	
    	while (1)
    	{
    		PORTB= 0xFF * tableau[0];	//1 fois 0 = 0 et 1 fois 1 = 1
    		Delay10TCYx(9) ; 			//Delay multiples of 10 Tcy
    		PORTB = 0x00;
    
    		PORTB = 0xFF * tableau[1];
    		Delay10TCYx(9) ;
    		PORTB = 0x00;
    
    		PORTB = 0xFF * tableau[2];
    		Delay10TCYx(9);
    		PORTB = 0x00;
    
    		PORTB = 0xFF * tableau[3];	
    		Delay10TCYx(9) ;
    		PORTB = 0x00;
    
    		for (i = 0; i < 4; i++) 	//boucle qui permet de placer en parametre 
    									//toutes les cases du tableau
    	    { 
    	    	PORTB = 0xFF * tableau[i]; 	//envoie le contenu de chaque case sur port B  
    			Delay10TCYx(9);
    			PORTB = 0x00;
    		
    		}
    
    			TMR0H = 0xFF;
    			TMR0L =	0xE7;
    //PORTB = 0xFF;
    //PORTB = 0x00;
    	}	
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  5. #5
    Membre chevronné
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    avril 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : avril 2003
    Messages : 300
    Points : 662
    Points
    662

    Par défaut

    Bonsoir,

    Dans tous les micro-contrôleurs il y a des timers avec différentes fonctions dont celle de générer un signal carré automatiquement. Je te conseille de lire la documentation de ton micro et tu trouvera la réponse.
    Le faire dans le main n'est pas la bonne solution car tu peu difficilement maîtriser le temps, car le programme peu être interrompu par une interruption ou autre. Tandis qu'avec un timer, tu n'auras pas ce soucis car il est géré par le hard du micro.

    Bonne continuation.
    - Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
    - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen)

Discussions similaires

  1. detection de frequence CPU et taille memoire
    Par gargle dans le forum MFC
    Réponses: 9
    Dernier message: 06/03/2007, 15h44
  2. masquage de fonction virtuelle
    Par julien.sagnard dans le forum C++
    Réponses: 3
    Dernier message: 27/01/2005, 14h00
  3. [Débutante] Masquage et décalages
    Par bolo dans le forum Assembleur
    Réponses: 27
    Dernier message: 16/07/2004, 13h28
  4. recuperer la frequence du proc , la taille de la RAM , ..
    Par Cthulhu 22 dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/09/2002, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo