Cours:TpiiChenillardEntassement : Différence entre versions
(Page créée avec « {{RetourVers/TpII}} {{rouge|D'autres solutions à venir !!}} =boucle while= Une solution un peu complexe mais générant un code assez optimisé : <source lang=c> #inc... ») |
m |
||
Ligne 25 : | Ligne 25 : | ||
//device=openParPort("/dev/parport0"); | //device=openParPort("/dev/parport0"); | ||
unsigned char i,a,cpt=0; | unsigned char i,a,cpt=0; | ||
− | + | do | |
{ | { | ||
cpt++; | cpt++; | ||
Ligne 42 : | Ligne 42 : | ||
a=a>>1; | a=a>>1; | ||
}while (a); | }while (a); | ||
− | } | + | }while (cpt<3); |
//closeParPort(device); | //closeParPort(device); | ||
} | } | ||
+ | |||
</source> | </source> | ||
{{RetourVers/TpII}} | {{RetourVers/TpII}} |
Version du 20 décembre 2012 à 21:43
retour vers la page des Tps II
D'autres solutions à venir !!
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);
}