Programmation Mplab, C18 , problème utilisation de fonction

Bonjour à tous,

Je débute dans la programmation des PICs en C depuis Mplab ( V 8.89).
J'essaie de me familiariser avec le logiciel mais je n'arrive pas a faire des fonctions.
Il y a t' il quelque chose de particulier a savoir ?
Voici mon code :

#include <p18cxxx.h> 
#include <stdio.h>

// configuration PICDEM2+ quartz
#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF


int fonctionNot( int );
void tempo(void);

int nb=0;
void main (void)
{
 TRISCbits.TRISC0=0;
 TRISCbits.TRISC1=0;
 TRISCbits.TRISC5=0;
 TRISBbits.TRISB5=0;
 TRISAbits.TRISA4=1; 
 
  for(;;)
    {
		fonctionNot( nb );
		if( nb > 1 )
		{
		nb=0;
		}
		if(nb==1)
		{
		PORTCbits.RC0=0;
		PORTCbits.RC1=1;
		PORTCbits.RC5=0;
		PORTBbits.RB5=1;	
		}
		else	
			{
			PORTCbits.RC0=1;
			PORTCbits.RC1=0;
			PORTCbits.RC5=1;
			PORTBbits.RB5=0;
			}
		tempo();
    }
}


int fonctionNot( int bool )
{
	bool = bool + 1 ;
	if( bool > 1 )
	{
	bool=0;
	}
	return bool ;
}

void tempo( void )
{
	int temps,mult;
	for( temps = 0 ; temps < 100000 ; temps=temps+1)
	{
	}
}


Merci a vous,
cordialement Mario.

3 réponses

  1. Bonjour

    Tu ne précises pas quel est ton problème. Mais à vue d'oeil, tu en as un ici :
      fonctionNot( nb );
      if( nb > 1 )

    Ta fonction fonctionNot ne modifie pas nb comme tu sembles le croire. Mais elle te rend une valeur modifiée. Tu peux donc érire :
      nb = fonctionNot( nb );
      if( nb > 1 )
    1. En effet vous avez raison il y a une erreur ici, merci beaucoup.
      Cependant la modification n'apporte aucun effet, j'ai l'impression que les fonctions ne sont pas "utilisées"...

      Cordialement
      1. j'ai l'impression que
        Qu'est ce qui te donne cette impression ?
        [Edit] D'ailleurs, avec MPLAB, tu dois pouvoir utiliser le simulateur pour exécuter ton programme pas à pas et voir par où il passe