/*************************************************************
 * Christophe Le Lann <totofwebcreation@gmail.com>
 * http://www.totofweb.ma.cx
 *
 * Ce programme fait clignoter les pinc du port B à des
 * fréquences différentes
 *************************************************************/

/****************************************
 * Configuration du compilateur
 ****************************************/

// Quartz de 20MHz (utilisé pour les délais)
#pragma CLOCK_FREQ 20000000

/****************************************
 * Programme principal
 ****************************************/

void main() {
	disable_interrupt(GIE);				// Toutes les interruptions sont désactivées

	TRISB = 00000000b;					// Configuration du port B en mode sortie
	PORTB = 00000000b;					// Mise à 0V de tous les pins du port B

	while (1) {							// Boucle infinie
		delay_ms(200);					// Attente de 250ms
		PORTB++;						// Incrémentation de PORTB
		/*
		 * Explication : Si on considère PORTB comme une variable binaire, on se représente alors l'état de chaque pin du port B.
		 * PORTB va donc prendre comme valeurs à intervalle de 250ms :
		 *   00000000
		 *   00000001
		 *   00000010
		 *   00000011
		 *   00000100
		 *   00000101
		 *   00000110
		 *   00000111
		 *   00001000
		 *   .... (pour en savoir plus renseignez-vous sur le binaire)
		 * On voit donc que RB0 (le plus à droite) va clignoter à intervalle de 250ms, RB1 à intervalle de 500ms, RB2 à intervalle de 1s, ...
		*/
	}
}
