logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom][ATmega8] Obsługa jednym klawiszem kilka funkcji

ARASOBOLEK 09 Cze 2010 00:07 1572 1
REKLAMA
  • #1 8170893
    ARASOBOLEK
    Poziom 15  
    Witam

    Piszę ten post ponieważ nigdzie nie znalazłem odpowiedzi na mój problem.


    Chciałbym zmieniać funkcję programu za pomocą jednego klawisza.


    W tej chwili robię to wg. mnie na okrężno ale nie znalazłem lepszego rozwiązania:

    W programie


    Aa - jest to przycisk który powoduje zaświecenie diod

    Przycisk - jest to switch zmieniający funkcje gaszenia / zapalania gdy zostanie naciśnięty " Aa"



    
     Do
    
     Program1:
     Do
     Swiecenie_stale1:
     Do
     Portc = &B00011111
     If Przycisk = 0 Then
     Gosub Program2
     Waitms 25
     Elseif Aa = 1 Then
     Waitms 25
     Gosub Wylacz
     End If
     Loop
    
    
     Wylacz:
    
     Do
     Portc = &B00000000
     If Przycisk = 0 Then
     Gosub Program2
     Waitms 25
     Elseif Aa = 0 Then
     Waitms 25
     Gosub Swiecenie_stale1
     End If
     Loop
     Loop
    
    
    
     Program2:
     Do
     Portc = &B00000011
     If Przycisk = 0 Then
     Gosub Program1
     End If
     Loop
    
    
    
    
    
     Loop
    



    Program odchudziłem do granic możliwości żeby mnie więcej czytelna była jego funkcja.

    Ten układ ma za zadanie załączać diody w różnych konfiguracjach.
  • REKLAMA
  • #2 8172173
    xury
    Specjalista automatyka domowa
    Tak na początek kilka uwag. Program po pewnym czasie "pójdzie w maliny" więc na początek trzeba by go napisać od nowa mając na uwadze to aby podprogram mógł się zakończyć. W przeciwnym razie będzie się stos rozrastał co po pewnym czasie spowoduje "wysypanie programu, gdy zabraknie na stos ramu" (ale mi się fajnie zrymowało).
    Po drugie proponuję od razu uczyć się pisać programy tak, aby jak najmniej korzystać z gosub, przez takie zapętlenia gosub'ów trudno się zorientować co ma robić ten program.
REKLAMA