Cours:TpiiChenillardEntassement : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m
 
Ligne 6 : Ligne 6 :
  
 
<source lang=c>
 
<source lang=c>
#include <sys/io.h>
+
#include "commcarte.h"
#include <stdio.h>
 
#include <stdlib.h>
 
  
#define PORT 0x378
 
  
 
void printbits(unsigned char n)
 
void printbits(unsigned char n)
Ligne 40 : Ligne 37 :
  
 
<source lang=c>
 
<source lang=c>
#include <sys/io.h>
+
#include "commcarte.h"
#include <stdio.h>
 
#include <stdlib.h>
 
  
#define PORT 0x378
 
  
 
void printbits(unsigned char n)
 
void printbits(unsigned char n)
Ligne 77 : Ligne 71 :
 
   //closeParPort(device);
 
   //closeParPort(device);
 
}
 
}
 
 
</source>
 
</source>
  
  
 
{{RetourVers/TpII}}
 
{{RetourVers/TpII}}

Version actuelle datée du 20 décembre 2012 à 22:02

retour vers la page des Tps II

D'autres solutions à venir !!

boucle for

#include "commcarte.h"


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 "commcarte.h"


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);
}


retour vers la page des Tps II