Cours:TpiiChenillardDouble

De troyesGEII
Aller à : navigation, rechercher

retour vers la page des Tps II

Remarques

Si vous copiez les solutions telles quelles

  • l'affichage se fait par défaut sur votre PC avec des printf
  • ne modifiez pas la fonction printbits, elle sert uniquement à faire un affichage binaire
  • il suffit de décommenter les lignes utiles pour faire l'affichage sur les leds de la carte

Solution avec une boucle while

#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 val,val2,cpt=0;
  while (cpt<3)
  {
    cpt++;
    val=0x01;  // 0000 0001
    val2=0x80; // 1000 0000
    while (val)
    {
      //ecrireParPort(device,val|val2);
      printbits(val|val2);printf("\n");
      val=val<<1;
      val2=val2>>1;
      //usleep(100000);
    }
  }
  //closeParPort(device); 
}

Solution avec boucle for

multiplication/division par 2

#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++)
  {
    j=0x80;  // 1000 0000
    for (i=1;i>0;i*=2)
    {
      //ecrireParPort(device,i|j);
       printbits(i|j);printf("\n");
      //usleep(100000);
      j=j/2;
    }
  }
  //closeParPort(device); 
}

décalage de n bits

#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++)
  {
    j=7;
    for (i=0;i<8;i++)
    {
      //ecrireParPort(device,1<<i|1<<j);
      printbits(1<<i|1<<j);printf("\n");
      //usleep(100000);
      j--;
    }
  }
  //closeParPort(device); 
}

retour vers la page des Tps II