Bonjour!
mes grands aidez moi.
je suis entrain de suivre un cours sur le microcontrôleur.
j'ai beaucoup de problèmes et les voici:
1-conteur et deconteur bcd?
-je ne comprends pas la notation tel que 0x000F.
-je ne comprend pas les differents saut de trou en bas.
unsigned int IncBCD () { // ajoute 1
unsigned int bcd;
if ((bcd & 0x000F) > 0x9) { bcd += 0x6; }
if ((bcd & 0x00F0) > 0x90) { bcd += 0x60; }
if ((bcd & 0x0F00) > 0x900) { bcd += 0x600; }
if ((bcd & 0xF000) > 0x9000) { bcd += 0x6000; }// déborde!
return bcd;
2-le décalage des bits?
par exemple je comprends pas comment on a obtenus les valeurs de DDRD dans un exercice concernant le test des ports.
DDRD |= 0xFC;
DDRC = 0x3F;
DDRB = 0xFF;
idem que PORTD.
PORTD = 0x55 ; // ou 0b01010101, bits pairs
PORTB = 0x55 ;
PORTC = 0x55
PORTD = 0xAA ; // ou 10101010, bits impairs
PORTB = 0xAA ;
PORTC = 0xAA
le professeur a donné une explication en bas
On met un 1 dans le bit correspondant à une patte qu'on souhaite utiliser, ce qui va la mettre en sortie.
Par exemple, seules les pattes PC0 à PC5 existent sur le PORTC d'un ATmega328. C'est la raison pour laquelle on cherche à mettre la valeur binaire 00111111, qui s'écrit 3F en hexadécimal.
mon problème est la suivante:
pourquoi les deux premier bits reste à 0. càd 00 111111.
aussi quand est qu'on décale un bit d'une position.
3-avec un seule launchepad on peux tout programmer?
je pose cette question car il y a beaucoup de circuit intégré et chaque machine d’état tel que la percheuse correspond à un circuit intégré. donc je suis
confus.
-----