Cours:TpiiChenillardDouble
Révision datée du 18 décembre 2012 à 20:35 par Bjacquot (discussion | contributions)
retour vers la page des Tps II
Sommaire
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);
}