Cours:TpiiChenillardEntassement
Révision datée du 20 décembre 2012 à 21:49 par Bjacquot (discussion | contributions)
retour vers la page des Tps II
D'autres solutions à venir !!
boucle for
#include <sys/io.h>
#include <stdio.h>
#include <stdlib.h>
#define PORT 0x378
void printbits(unsigned char n)
{
int i;
for (i=7;i>=0;i--) printf("%d", (n >> i ) & 1);
}
int main()
{
int device;
//device=openParPort("/dev/parport0");
unsigned char i,j,cpt;
for (cpt=0;cpt<3;cpt++)
for (i=8;i>0;i--)
for (j=0;j<i;j++)
{
//ecrireParPort(device,1<<j|(0xFF<<i);
printbits(1<<j|(0xFF<<i)); printf("\n");
//usleep(100000);
}
//closeParPort(device);
}
boucle while
Une solution un peu complexe mais générant un code assez optimisé :
#include <sys/io.h>
#include <stdio.h>
#include <stdlib.h>
#define PORT 0x378
void printbits(unsigned char n)
{
int i;
for (i=7;i>=0;i--) printf("%d", (n >> i ) & 1);
}
int main()
{
int device;
//device=openParPort("/dev/parport0");
unsigned char i,a,cpt=0;
do
{
cpt++;
a=0xFF;
do
{
i=1;
do
{
//ecrireParPort(device,i|~a);
printbits(i|~a);
printf("\n");
i=i<<1;
//usleep(100000);
}while((i&a));
a=a>>1;
}while (a);
}while (cpt<3);
//closeParPort(device);
}