1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| /*============================================================================
//Elements relatifs a la configuration du PIC
/////////////////////////////////////////////
#include <p18f4520.h> //ATTENTION penser a adapter la ref du uC
#include <timers.h>
#include <stdio.h>
#include <delays.h>
#pragma config OSC = HSPLL , FCMEN = OFF, PWRT = OFF, MCLRE = ON
#pragma config PBADEN = OFF
#pragma config LVP = OFF
#pragma config WDT = OFF, DEBUG=OFF
//Elements relatifs au TABLEAU
/////////////////////////////
#define nbr_element_tab 4 // permet de donner la taille du tableau
#define N 4 // permet de faire la boucle pour invrementer le pointeur
int tableau [nbr_element_tab]; //declare un tableau de x cases
int result_masquage(void);
int pulses (void);
void GenerationPulseAppel(void);
//Elements relatifs aux masquages
/////////////////////////////////
// Définition de la variable comme une constante (pour test uniquement)
int a = 0x0F;
// Definition des masques
int maskA = 0x08; // en binaire, cela donne I000
int maskB = 0x04; // en binaire, cela donne 0I00
int maskC = 0x02; // en binaire, cela donne 00I0
int maskD = 0x01; // en binaire, cela donne 000I
////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main(void)
{
int i;
//Initialisation des Ports
LATB = 0x00;
PORTB = 0x00;
// Initialisation
TRISB = 0xFD; //RB1 en output uniquement
// ADCON1 = 0x0F; //to make all PORTA, PORTB pins digital when PBADEN is OFF
tableau[0] = 1;//((a&maskA)==8); // booleen si le resultat est vrai la case prend 1
tableau[1] = 1;//((a&maskB)==4); //sinon 0
tableau[2] = 1;//((a&maskC)==2);
tableau[3] = 1;//((a&maskD)==1);
// INTCON2bits.RBPU = 0; // PORTB Pull-up Enable bit 1disabled , 0 enabled by
//individual port latch
while (1)
{
PORTB= 0xFF * tableau[0]; //1 fois 0 = 0 et 1 fois 1 = 1
Delay10TCYx(9) ; //Delay multiples of 10 Tcy
PORTB = 0x00;
PORTB = 0xFF * tableau[1];
Delay10TCYx(9) ;
PORTB = 0x00;
PORTB = 0xFF * tableau[2];
Delay10TCYx(9);
PORTB = 0x00;
PORTB = 0xFF * tableau[3];
Delay10TCYx(9) ;
PORTB = 0x00;
for (i = 0; i < 4; i++) //boucle qui permet de placer en parametre
//toutes les cases du tableau
{
PORTB = 0xFF * tableau[i]; //envoie le contenu de chaque case sur port B
Delay10TCYx(9);
PORTB = 0x00;
}
TMR0H = 0xFF;
TMR0L = 0xE7;
//PORTB = 0xFF;
//PORTB = 0x00;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
Partager