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

[Atmega88][Bascom] Error:61

LG31 27 Gru 2011 10:57 2202 6
REKLAMA
  • #1 10308012
    LG31
    Poziom 9  
    Witam,
    Jestem całkowicie zielony jeśli chodzi o programowanie, ale postanowiłem spróbować napisać prosty program, który będzie miał za zadanie wyróżnić 3 ruchy robota w zależności od stanu krańcówek. Podprogram "Prawo" wtedy gdy S1 jest wciśnięta; "Lewo" gdy S2 jest wciśnięta; "Przod" gdy nic nie jest wciśnięte. Po napisaniu programu otrzymałem na końcu: "Error 61:Label not found [PORTC.1 ].
    Proszę o sprawdzenie całego kodu czy to co napisałem ma jakikolwiek sens i jak poprawić, aby nie było błędów w programie.
    Kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10308057
    Jaca
    Poziom 31  
    1. Umieść listing w znacznikach
    2. Popraw trzecią linię Debounce
    3. Usuń End z końca programu
    4. Zamiast PortC.0 i PortC.1 (w Alias) powinno być PinC.0 i PinC.1
  • REKLAMA
  • #3 10311199
    LG31
    Poziom 9  
    Zmieniłem w Alias, niestety nie mogę znaleźć składni funkcji debounce z dwoma warunkami, więc może mógłby ktoś umieścić jak to powinno wyglądać. Po zmianie dalej występuje błąd: Error 61: Label not found [PINC.1 ]. Co jeszcze zmienić, aby poprawić error?
    Poprawiony kod:
    <code>
    $regfile = "m8def.dat"

    $crystal = 12000000

    Config Portc.0 = Input
    Config Portc.1 = Input
    Config Portd.0 = Output
    Config Portd.1 = Output
    Config Portd.2 = Output


    Config Servos = 3 , Servo1 = Portd.0 , Servo2 = Portd.1 , Servo3 = Portd.2 , Reload = 10


    Dim I As Byte

    S1 Alias PINc.0

    S2 Alias Pinc.1
    Enable Interrupts
    Set Portc.0
    Set Portc.1
    Servo(1) = 100
    Servo(2) = 90
    Servo(3) = 80


    Do

    Debounce S1 , 0 , Prawo , Sub
    Debounce S2 , 0 , Lewo , Sub
    Debounce S1 , 1 , S2 , 1 , Przod , Sub
    Loop
    End
    Prawo:
    Servo(2) = 100
    Wait 2
    Servo(1) = 110
    Wait 2
    Servo(3) = 90
    Wait 2
    Servo(1) = 100
    Wait 2
    Servo(3) = 80

    Return

    Lewo:

    Servo(2) = 80
    Wait 2
    Servo(1) = 110
    Wait 2
    Servo(3) = 90
    Wait 2
    Servo(1) = 100
    Wait 2
    Servo(3) = 80

    Return

    Przod:

    Servo(1) = 110
    Wait 2
    Servo(3) = 90
    Wait 2
    Servo(1) = 100
    Wait 2
    Servo(3) = 80
    Wait 2

    Return
    </code>
  • REKLAMA
  • #4 10311373
    Jaca
    Poziom 31  
    W 3 linii Debounce nic nie zmieniłeś więc nie spodziewaj się usunięcia błędu. Zrób swoją własną eliminację drgań dla dwóch jednocześnie naciskanych klawiszy...
  • REKLAMA
  • #5 10311443
    Mundi1970
    Poziom 24  
    Ten kawałek:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    jest błędny i należy to inaczej napisać:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #6 10311465
    Jaca
    Poziom 31  
    Ehhh, Mundi1970 - chciałem by troszkę pomyślał nad rozwiązaniem a Ty mu gotowca dajesz. :)
  • #7 10312750
    LG31
    Poziom 9  
    Dziękuję Wam za podpowiedzi. Myślałem, że można napisać 2 warunki w debounce, więc trochę poszukałem, ale dostarczony gotowiec znacząco mi pomógł;)
REKLAMA