Skocz do zawartości

Wyświetlenie czasu na 7 segmentowych wyświetlaczach z przerwaniami Timera


adi1525

Pomocna odpowiedź

Witam, piszę program zegara na dwa wyświetlacze 7 segmentowe LED, ustawiłem już multipleksowanie i wszystko działa. Nie wiem tylko jak zrobić odliczanie podczas multipleksowania, tak wygląda mój kod:

void __ISR(_TIMER_1_VECTOR,IPL7SRS) TimerInterrupt(void)
{
   if(i==0)
   {
       LATDbits.LATD8=0;
       LATDbits.LATD9=1;

       LEDset(j);
       j++;
       if(j==9)
           j=0;
       IFS0bits.T1IF=0;

   }
   if(i==1)
   {
       LATDbits.LATD8=1;
       LATDbits.LATD9=0;
       LEDset(2);
       IFS0bits.T1IF=0;
   }
   i=!i;
}

To jest obsługa przerwania Timera aby zrobić multipleksowanie.

Teraz żeby zliczasz sekundy mam użyć drugiego Timera czy jest jakiś inny sposób ??

Link do komentarza
Share on other sites

A jak często się to twoje przerwanie uruchamia? Jeśli n-razy na sekundę, to po prostu możesz tam mieć licznik, który następnie będziesz dzielić przez n i dostaniesz liczbę sekund.

Link do komentarza
Share on other sites

Multipleksowanie jest ustawione na 10ms, czyli żeby w obsłudze przerwania zrobić licznik, który będzie co 1 s coś wykonywał ? Mogę w takim przypadku cały kod mieć napisany w obsłudze przerwania ?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.