Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

probleme de programmation avec mikro c



  1. #1
    PAVNA

    probleme de programmation avec mikro c

    slt. j'ai une problème dans mon code (écrit avec mikro c): il y a une perturbation qui n'est pas logique . SVP aidez moi et merci d'avance

    -----


  2. Publicité
  3. #2
    DAUDET78

    Re : probleme de programmation avec mikro c

    Tu veux de l'aide ? OK ...... et tu donnes quoi comme information ? RIEN !
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  4. #3
    PAVNA

    Re : probleme de programmation avec mikro c

    je peux t'envoyer la code et le schema isis maintenant

  5. #4
    PAVNA

    Re : probleme de programmation avec mikro c

    sbit LCD_RS at RB2_bit;
    sbit LCD_EN at RB3_bit;
    sbit LCD_D4 at RB4_bit;
    sbit LCD_D5 at RB5_bit;
    sbit LCD_D6 at RB6_bit;
    sbit LCD_D7 at RB7_bit;
    sbit LCD_RS_Direction at TRISB2_bit;
    sbit LCD_EN_Direction at TRISB3_bit;
    sbit LCD_D4_Direction at TRISB4_bit;
    sbit LCD_D5_Direction at TRISB5_bit;
    sbit LCD_D6_Direction at TRISB6_bit;
    sbit LCD_D7_Direction at TRISB7_bit;
    unsigned char msgZ1[20],msgZ2[20],msgZ3[20],msgZ6[20] , man[20],man2[20] ;
    unsigned char consigneZ1[20],consigneZ2[20],consigneZ3[20];
    unsigned int adc_rdZ1=0, adc_rdZ2=0,adc_rdZ3=0;
    unsigned int adc_rdconsZ1=0,adc_rdconsZ2=0, adc_rdconsZ3=0;
    float tZ1,tZ2,tZ3;
    float TconsZ1,TconsZ2,TconsZ3;
    unsigned short current_duty = 128;
    unsigned short pourcent = 0;
    unsigned short current_duty2 = 128;
    unsigned short pourcent2 = 0;
    void init(){
    TRISA=0XFF;
    TRISB=0X00;
    TRISD=0XFF;
    TRISE &= 0b11110111; // Met à 0 le bit PSPMODE
    TRISE |=0b00000111; //Met à 1 les 3 premiers bi
    TRISC=0X00;
    PORTD=0X00;
    ADCON0=0b00111001; //ADCON0=0b111111001;
    ADCON1=0b00000000;
    adc_init();
    Lcd_Init();
    Lcd_Cmd(_LCD_CURSOR_OFF);
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Out(1, 1, "ZX:Tconsgne Treel");
    Lcd_Out(2, 1, "Z1:");
    Lcd_Out(3, 1, "Z2:");
    Lcd_Out(4, 1, "Z3:");
    }
    partie1 () {
    //Z1
    if (PORTD.F6==0) {
    adc_rdZ1=ADC_read(0); delay_ms(10);
    adc_rdconsZ1=ADC_read(1); delay_ms(10);
    tZ1=(adc_rdZ1*0.004882*1000*12 00)/(71.94244*69.5) ;
    TconsZ1=(adc_rdconsZ1*0.004882 *500)/(5);
    floattostr(tZ1,msgZ1);
    floattostr(TconsZ1,consigneZ1) ;

    //Z2
    adc_rdZ2=ADC_read(2); delay_ms(10);
    tZ2=(adc_rdZ2*0.004882*1000*12 00)/(71.94244*69.5) ;
    floattostr(tZ2,msgZ2);
    adc_rdconsZ2=ADC_read(3); delay_ms(10);
    TconsZ2=(adc_rdconsZ2*0.004882 *500)/(5) ;
    floattostr(TconsZ2,consigneZ2) ;
    //Z3*/
    adc_rdZ3=ADC_read(4); delay_ms(10);
    tZ3=(adc_rdZ3*0.004882*1000*12 00)/(71.94244*69.5) ;
    floattostr(tZ3,msgZ3);
    adc_rdconsZ3=ADC_read(5); delay_ms(10);
    TconsZ3=(adc_rdconsZ3*0.004882 *500)/(5) ;
    floattostr(TconsZ3,consigneZ3) ;

    Lcd_Out(2,4, consigneZ1);
    Lcd_Out(2,13, msgZ1);
    Lcd_Out(3,4, consigneZ2);
    Lcd_Out(3,13, msgZ2);
    Lcd_Out(4,4, consigneZ3);
    Lcd_Out(4,13, msgZ3);
    delay_ms(1000);
    if(tZ1 < TconsZ1){ PORTC.F7=1; } else { PORTC.F7=0; }
    if(tZ2 < TconsZ2) {PORTC.F0=1;} else { PORTC.F0=0; }
    if(tZ3 < TconsZ3){PORTC.F6=1; } else {PORTC.F6=0;}
    } }
    partie2 () {
    if (PORTD.F6==1) {
    current_duty=(ADC_read(0) /4);delay_ms(10);
    PWM1_Set_Duty(current_duty);
    pourcent=(current_duty*100)/(255);
    intToStr(pourcent,man);

    current_duty2=(ADC_read(2) /4);delay_ms(10);
    PWM2_Set_Duty(current_duty2);
    pourcent2=(current_duty2*100)/(255);
    intToStr(pourcent2,man2);

    Lcd_Out(2,4,"Chauffer:");
    Lcd_Out(2,13,man);
    Lcd_Out(2,19,"%");
    Lcd_Out(3,4,"Chauffer:");
    Lcd_Out(3,13,man2);
    Lcd_Out(3,19,"%");
    } }
    void main()
    {
    init();
    PWM1_Init(1000);
    PWM1_Set_Duty(current_duty);
    PWM1_Start();
    PWM2_Init(1000);
    PWM2_Set_Duty(current_duty2);
    PWM2_Start();
    while(1)
    {

    partie1 ();
    partie2 ();
    }
    }

  6. #5
    PAVNA

    Re : probleme de programmation avec mikro c

    il ya deus parties dans ce code:
    si PORTD.F6==1: Partie 1
    si PORTD.F6==0; partie 2 (générer deux signaux PWM et afficher la valeur de rapport cyclique sur LCD

  7. A voir en vidéo sur Futura
  8. #6
    gabuzo

    Re : probleme de programmation avec mikro c

    Et maintenant qu'on a le code on peut avoir la question ?
    Je suis Charlie

  9. Publicité
  10. #7
    PAVNA

    Re : probleme de programmation avec mikro c

    Relire le début de la conversation . il ya une perturbation dans mon code.
    cad losque je compile Partie1 , mon code fonctionne sans probleme et losque je compile Partie, mon code fonctionne sans problème aussi mais lorsque je compile le deux parties il ya une parturbation cad il ne fonctionne pas correctement

  11. #8
    gabuzo

    Re : probleme de programmation avec mikro c

    Ben moi ma voiture marche pas ! Avec ça tu vas sûrement me dire de quoi ça vient.

    Et pourquoi faire deux parties ? un IF et un ELSE ça fait pas pareil ?
    Dernière modification par gabuzo ; 08/04/2014 à 15h38.
    Je suis Charlie

Sur le même thème :

Discussions similaires

  1. Générateur d'impulsion avec pic problème de programmation.
    Par truelle dans le forum Électronique
    Réponses: 0
    Dernier message: 14/05/2012, 09h02
  2. Programmation Mikro C
    Par ppetienne44 dans le forum Électronique
    Réponses: 13
    Dernier message: 21/03/2012, 19h53
  3. Problème programmation avec ICD 2
    Par kronanberg dans le forum Électronique
    Réponses: 4
    Dernier message: 02/03/2010, 16h09
  4. Problème de programmation linéaire avec une contrainte
    Par gravitonlibre dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 22/02/2010, 13h46
  5. Programmation C++, problème avec QT (slots)
    Par Fred des montagnes dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 26/09/2009, 14h42