salut,
comme je suis encore débutant j'essaye toujours de m'évoluer petit à petit.
mon projet c'est une horloge calendrier :
je commence tout d'abord d'afficher un nombre sur deux digits
j'ai compris comment faire les digits en 7 segment avec un pic et j'ai arriver à faire un compteur sur un seul digit de 0 à 9 mais maintenant j'arrive pas a afficher un nombre sur deux digits de 00 à 99, coté programmation j'utilise mplab avec cc5x et avec la simulation de mon programme je crois qu'il marche.
s'il vous plait est ce que quel un peut m'aider?
voila une partie de mon programme : ( exemple : afficher le nombre 34 )
void main(void)
{
TRISA = 0b00000000;
TRISB = 0b00000000;
TRISC = 0b00000000;
PORTA = 0;
PORTB = 0;
PORTC = 0;
unsigned count=0;
Print(34);
while(1)
{
for (i=0;i<2; i++)
{
if (i==0)
{
PORTC.0 = 1;
SevenSegment(digits[i]);
PORTC.0 = 0;
}
if (i==1)
{
PORTC.1 = 1;
SevenSegment(digits[i]);
PORTC.1 = 0;
}
void SevenSegment(int n)
{
if(n<10)
{
switch (n)
{
case 0:
SEVEN_SEGMENT_PORT=0b00111111;
break;
case 1:
SEVEN_SEGMENT_PORT=0b00000011;
break;
case 2:
SEVEN_SEGMENT_PORT=0b01101101;
break;
case 3:
SEVEN_SEGMENT_PORT=0b01100111;
break;
case 4:
SEVEN_SEGMENT_PORT=0b01010011;
break;
case 5:
SEVEN_SEGMENT_PORT=0b01110110;
break;
case 6:
SEVEN_SEGMENT_PORT=0b01111110;
break;
case 7:
SEVEN_SEGMENT_PORT=0b00100011;
break;
case 8:
SEVEN_SEGMENT_PORT=0b01111111;
break;
case 9:
SEVEN_SEGMENT_PORT=0b01110111;
break;
}
}
}
void Print( uns16 num)
{
int i=0;
int j=0;
if(num>99) return;
while(num)
{
digits[i] = num % 10;
i++;
num = num / 10;
}
for(j=i;j<2;j++) digits[j]=0;
}
-----