Problème programmation
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Problème programmation



  1. #1
    wael21

    Unhappy Problème programmation


    ------

    Bonjour tout le monde;

    je désire programmé un signal assez spécial, j'arrive bien à le générer sous matlab.

    Le signal que je veux est signal carré chirpé (change de fréquence à chaque fois), et je veux le programmer sous PIC 18F14k22

    voici le code sous matlab pour vous donner une idée

    %% signal carré chirp
    A=0.3;
    fmax=500; fmin=83,34; fe=8*fmax
    time=0.077;
    N=ln(fmax/fmin);
    R=N/time;
    t=0:1/fe:time;
    C=fmin*((-1+2^(R*t))/(2*ln(2)));
    signal=A*square(2*pi*C);
    %% fin


    Dans l'attente de vos reponses je vous en remercie beaucoup

    -----

  2. #2
    wael21

    Re : Problème programation

    Toujours pas de réponses

  3. #3
    PIXEL

    Re : Problème programation

    faudrait qu'il y ait une question......

    tu sais, la phrase qui se termine par " ? "

  4. #4
    wael21

    Re : Problème programation

    ma question est bien évidente non!!!
    je veux programmé mon algo sur mon pic et je ne sais comment m'y faire c'est pour celà que j'ai posté mon problème
    j'attends avec impatience vos réponses

  5. A voir en vidéo sur Futura
  6. #5
    jonathan82

    Re : Problème programation

    Ok.

    Bon, si tu nous expliquais un peu mieux ton algo... Tes différentes variables, etc, histoire que les gars comme moi qui sommes visuel puissent visualiser la chose.

    Tu veux programmer sous quel compilateur ? quel language ?
    Tu va démouler un cake si tu veux faire ça en assembleur...

    J'attend ta réponse avant de me pencher sur le code...

    Cordialement
    Jo

  7. #6
    Jack
    Modérateur

    Re : Problème programation

    Citation Envoyé par wael21 Voir le message
    ma question est bien évidente non!!!
    Il faut que tu comprennes que tout le monde ici ne maîtrise pas matlab.

    A+

  8. #7
    wael21

    Re : Problème programation

    alors mon algo sous matlab génère un signal carré qui change de fréquence à chaque fois ( on peut l'appelé un carré shirp)

    je vous joint une image du signal

    j'utilise comme µC un pic 18F14k22

    Nom : Capture.JPG
Affichages : 76
Taille : 49,9 Ko

  9. #8
    micka_ch

    Re : Problème programation

    Bonjour,

    Tu peux utiliser un Timer que tu reset à chaque fois que l'interruption de comparaison apparait. Ensuite du diminue la valeur de comparaison pour augmenter la fréquence. Tu inverse une sortie a chaque fois interruption.

    En image ça donne :

    Nom : timer.PNG
Affichages : 62
Taille : 7,3 Ko

    Salutations

  10. #9
    wael21

    Re : Problème programation

    comme je suis jeune en matière de progammation j'ai pas bien compris ce que vous avez dit

    j'ai pensé plutôt à procéder de manière totalment simple par exemple sur une des broches, je fais

    PORTA.RA0=1;
    delay_ms (1000);
    PORTA.RA0=~PORTA.RA0;
    delay_ms (950);
    PORTA.RA0=~PORTA.RA0;
    delay_ms (920);
    PORTA.RA0=~PORTA.RA0;
    delay_ms (900);
    ...
    ...
    ...
    PORTA.RA0=~PORTA.RA0;
    delay_ms (100);
    PORTA.RA0=~PORTA.RA0;
    delay_ms (50);

    es ce que celà pourrait fonctionner?? Si oui aurai-je besoin d'un Timer, lequel, comment définir mon delay??

    Salutations

  11. #10
    micka_ch

    Re : Problème programation

    Oui cela fonctionne également. Si tu peux te permettre une attente bloquante la delay_ms() peut se coder comme cela :

    Code:
    void delay_ms(unsigned int Time)
    {
       unsigned int i,k;
    
       for(i=0;i<Time;i++)
       {
          for(k;k<60000;k++);  //Attente active de 1ms
       }
    }
    J'ai mis 600000 au pif, il faut ajuster ce paramètre pour que ta boucle fasse bien 1 ms.

    Salutations

  12. #11
    wael21

    Re : Problème programation

    comme fonction delay j'utilise celle ci
    Code:
    void delay_us(int i)
    {
    	int j;
    	for(j=0;j<i;j++)
    	{
    		TMR0L=131;
    		T0CONbits.TMR0ON=1;
    		while (INTCONbits.TMR0IF!=1)
    		{
    			;
    		}
    	}
    }
    j'ai lu sur quelque part que ces mieux de faire claqué le timer

    en tout TMR0L compte jusqu'à 255 et je l'initialise à 131 ce qui me fait 125 µs à peut prés,
    donc si j'appelle un delay_us(90) ca va me faire un delay de 125*90=11250 µs

    ma fonction est-elle vraie??

    Merci

Discussions similaires

  1. Probleme de programmation cn
    Par invite7b760caf dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 29/03/2011, 19h32
  2. problème de programmation
    Par invitec93fa417 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 12/12/2010, 09h36
  3. probleme programmation C
    Par inviteba5c14d8 dans le forum Électronique
    Réponses: 7
    Dernier message: 09/05/2008, 22h37
  4. Probleme de Programmation CN
    Par invitec07cc70f dans le forum Technologies
    Réponses: 2
    Dernier message: 10/02/2007, 16h54
  5. probleme de programmation
    Par invitefbbbadb6 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 01/10/2006, 16h28
Découvrez nos comparatifs produits sur l'informatique et les technologies.