Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Fonction (53 réponse(s))
./REPRISE DU POST PRECEDENT (post n°38)   Marquer comme non lu.
LionelA Ecrit le: Lundi 9 août 2004 à 12:21 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


si tu veut obtenir -6.64 avec tes valeurs alors que la fonction sin calcule en radian, tu fait ca en C :

12*sin(2000*PI*2 * PI / 180)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°39   Marquer comme non lu.
Benjy Ecrit le: Lundi 9 août 2004 à 12:53 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ok alors voila a quoi je suis arriver
void _main(void)
{
  clrscr();

  float w=(2*PI*1000),y,v=(12*sqrt(2)),a=(PI*0/180),t=0;
  y=v*sin((w*2*PI/180)+a);
  printf("%f",y);
  for(t=0;t<10;t+=0.2)
  {
    y=v*sin((w*t*PI/180)+a);
    
    DrawPix (t,y+25,A_NORMAL);
  }
  ngetchx();
}

ca marche mais seul probleme ca trace la sinoside et ca reciproque!! pk??
Le langage C y'a pas mieux!!!
    
./Post n°40   Marquer comme non lu.
Jfg Ecrit le: Lundi 9 août 2004 à 17:32 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Pour te rendre compte du probleme, tu dois faire ca:

void _main(void)
{
  clrscr();

  float w=(2*PI*1000),y,v=(12*sqrt(2)),a=(PI*0/180),t=0;
  y=v*sin((w*2*PI/180)+a);
  printf("%f",y);
  int abscisse;
  for(t=0,absisse=0;t<80;t+=0.2,abscisse++)
  {
    y=v*sin((w*t*PI/180)+a);
    
    DrawPix (abscisse,y+25,A_NORMAL);
  }
  ngetchx();
}


Et la, tu realise que seulement un pixel sur deux et represente la "bonne" courbe (il y a pas de "bonne" courbes enfin bon c'est juste pour decrire le probleme!).

enfin bref:


    y=v*sin((w*t*PI/90)+a);

-Edité le Lundi 9 août 2004 à 17:38 par jfg-
Kill Mario
    
./Post n°41   Marquer comme non lu.
Benjy Ecrit le: Lundi 9 août 2004 à 17:49 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


oui ca marche mais juste pour la valeur d'icrement de t=0.2 si on la change ca ne marche plus pourquoi?
Le langage C y'a pas mieux!!!
    
./Post n°42   Marquer comme non lu.
Jfg Ecrit le: Lundi 9 août 2004 à 18:03 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


En fait ce que j'ai ecris est n'importe quoi. Le probleme vient de "w=(2*PI*1000)".
Kill Mario
    
./Post n°43   Marquer comme non lu.
Benjy Ecrit le: Lundi 9 août 2004 à 19:25 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


purquoi il y aurais un prob dans w=(2*PI*1000) ????? c'est juste une formule qui dit omega = 2xPIxfrequence !!!! donc je voit pas le probleme quelqun peut m'aider s'il vous plait merci
Le langage C y'a pas mieux!!!
    
./Post n°44   Marquer comme non lu.
Benjy Ecrit le: Lundi 9 août 2004 à 21:44 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


bon plus clairement le prog qui me pose toujour probleme alors si vous pouvez m'aider merci!!
#include <tigcclib.h>

void _main(void)
{
  clrscr();
  float frequence=2000, //frequence en Hz
  tension=(12*sqrt(2)), //tension alternative max v racine de 2
  periode=(1/frequence), //temps d'une periode
  dephasage=(PI*0/180), //dephasage
  w=(2*PI*2000), //omega= 2*PI*F
  y,absisse,t;

  DrawLine (30, 50, 130, 50, A_NORMAL);
  for(t=0,absisse=0;absisse<=100;t+=periode,absisse+=1)
  {
    y=-(tension*sin((w*t*PI/180)+dephasage));
    DrawPix (absisse+30,y+50,A_NORMAL);
  }
  ngetchx();
}

et je resume mes problemes donc la si vous tester avec ce code san rien toucher ca semble marche mais si on augmente la frequence de beaucoup ou qu'on la diminue aussi il ya un moment ou ca devient plus trop lisible donc voila merci
-Edité le Lundi 9 août 2004 à 21:45 par benjy-
-Edité le Lundi 9 août 2004 à 21:49 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°45   Marquer comme non lu.
Benjy Ecrit le: Lundi 9 août 2004 à 22:40 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


bon ca yest j'ai reussi encore un dernier prob mais la je ne sait pas sil yaura une solution
#include <tigcclib.h>

void _main(void)
{
  clrscr();
  float frequence=10, //frequence en Hz
  //tension=(12*sqrt(2)), //tension alternative max v racine de 2
  tension=12, //tension alternative max v sans racine de 2
  nb_per=1, //nombre de periode souhaite
  pix=nb_per/frequence/100, //temps par pix
  dephasage=(PI*0/180), //dephasage
  w=(2*PI*frequence), //omega= 2*PI*F
  y,absisse,t;

  DrawLine (30, 0, 130, 0, A_NORMAL);
  DrawLine (30, 10, 130, 10, A_NORMAL);
  DrawLine (30, 20, 130, 20, A_NORMAL);
  DrawLine (30, 30, 130, 30, A_NORMAL);
  DrawLine (30, 40, 130, 40, A_NORMAL);
  DrawLine (30, 50, 130, 50, A_NORMAL);
  DrawLine (30, 60, 130, 60, A_NORMAL);
  DrawLine (30, 70, 130, 70, A_NORMAL);
  DrawLine (30, 80, 130, 80, A_NORMAL);
  DrawLine (30, 90, 130, 90, A_NORMAL);
  DrawLine (30, 99, 130, 99, A_NORMAL);

  DrawLine (30, 0, 30, 100, A_NORMAL);
  DrawLine (40, 0, 40, 100, A_NORMAL);
  DrawLine (50, 0, 50, 100, A_NORMAL);
  DrawLine (60, 0, 60, 100, A_NORMAL);
  DrawLine (70, 0, 70, 100, A_NORMAL);
  DrawLine (80, 0, 80, 100, A_NORMAL);
  DrawLine (90, 0, 90, 100, A_NORMAL);
  DrawLine (100, 0, 100, 100, A_NORMAL);
  DrawLine (110, 0, 110, 100, A_NORMAL);
  DrawLine (120, 0, 120, 100, A_NORMAL);
  DrawLine (130, 0, 130, 100, A_NORMAL);
  
  for(t=0,absisse=0;absisse<=100;t=pix*absisse,absisse+=1)
  {
    y=-(tension*sin(w*t+dephasage));
    DrawPix (absisse+30,y+50,A_NORMAL);
  }
  ngetchx();
}

donc voici le code final bon mon probleme c'est que au niveau de l'axe des ordonne par exmple pour une tension de 12V quand la courbe sera en haut pas de prob elle sera a 12 mais quand elle est vers le bas ben elle est pas tout a fait a 12 elle est plutot a 11 alors si vous trouve pourquoi je suis preneur merci!!
Le langage C y'a pas mieux!!!
    
./Post n°46   Marquer comme non lu.
Benjy Ecrit le: Mardi 10 août 2004 à 11:19 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


bon sinon est ce que quelqun par hasard serait comment faire un signale triangulaire? merci
Le langage C y'a pas mieux!!!
    
./Post n°47   Marquer comme non lu.
Lionel Debroux Ecrit le: Mardi 10 août 2004 à 14:36 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Un signal triangulaire et un signal carré se font à la main avec des lignes, c'est beaucoup plus rapide que d'utiliser les premiers termes de la décomposition en série de Fourier des signaux. Les termes de la décomposition du signal triangulaire décroissent en 1/n^2, mais ceux du signal carré décroissent en 1/n.
Lionel Debroux - membre de TICT.
    
./Post n°48   Marquer comme non lu.
Benjy Ecrit le: Mardi 10 août 2004 à 15:25 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ben pour les signaux carre j'ai trouve un system:
float vin_carre(float f,float t,float Vcc,float offset,float r) 

     //on initialise les variables : 
     float P; //période du signal en seconde 
     float v=0; // le résultat 
     P=1/f; 

     //on regarde si t>P (on va travailler dans la premiere periode pour faire plus simple 
     while(t>p) 
          t-=P; 
      
     //donc on est dans l'intervalle de temps 0-P 
     //r*P est l'instant de commutation entre l'tat bas et l'état haut 
     if (t<=(r*P)) //on est a l'état bas 
         v=-Vcc/2+offset; 
     else // on est a l'état haut 
         v=Vcc/2+offset; 

     return v; 
mais pour un signale triangle je voit pas comment faire

et sinon pour mon autre prob personne n'a d'idée?
-Edité le Mardi 10 août 2004 à 15:26 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°49   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 11 août 2004 à 09:27 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Oublie les fonctions et utilise des DrawLine directement!
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°50   Marquer comme non lu.
Benjy Ecrit le: Mercredi 11 août 2004 à 10:31 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


comment ca drawline directement?? kevin t veut dire quoi par la?
Le langage C y'a pas mieux!!!
    
./Post n°51   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 11 août 2004 à 11:07 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Ben, les représentations graphiques des signaux triangulaires et carrés ne sont que des enchaînements de lignes! Pense à comment tu tracerais ces signaux à la règle! Tu ne calculerais pas des ordonnées pour chaque abscisse, j'espère...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°52   Marquer comme non lu.
Benjy Ecrit le: Mercredi 11 août 2004 à 11:30 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ouic sur mai la dans ce cas la il depande de plein de critere les meme que mon signale sinusoidale c'est a dire frequence amplitude dephasage donc je peut pas me permettre de tracer une ligne comme ca au pif!!
Le langage C y'a pas mieux!!!
    
./Post n°53   Marquer comme non lu.
Sasume Ecrit le: Mercredi 11 août 2004 à 12:10 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

fréquence => pas de la boucle
amplitude => hauteur min et max de la ligne
déphasage => décalage au début et c'est tout.

Le reste c'est du traçage de lignes etre les amplitudes min et max de ton signal... #roll#
    
  :: Index » Forum Ti68K » Programmation C » Fonction (53 réponse(s))
Pages : 3/3     « 1 2 [3] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 48.97ms avec 18 requetes