Skocz do zawartości

[Bascom] Przerwania w jednym programie


Jan

Pomocna odpowiedź

Witam.

W celu nauki napisałem prosty program mający na celu zaświecanie i gaszenie diody LED za pomocą przerwań. Niestety program nie działa a kompilater zwraca błąd powtarzania przerwań (tak się domyślam).

Oto treść błędu:

Error : 249 Line : 42 ISR alredy defined [PRZERWANIE] in file: ścieżka do pliku

to samo linia nr 46

KOD:

'SPRAWDZANIE PRZERWANIA

$regfile = "m8def.dat"
$crystal = 8000000

Config Lcd = 20 * 4
        Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.4 , E = Potd.6 , Rs = Portd.7

 Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1 , Compare A = Toggle , Compare B = Disconnect

Declare Sub Przerwanie

Dim Licz_1s As Word

Led Alias Portb.1

Ddrb = &B11111111
  Portb = &B00001110

Ddrc = &B1111111
  Portc = &B1000000

Ddrd = &B11111111
  'Portd=                                              'LCD
Enable Oc1a
Enable Interrupts

Cls
Locate 1 , 5
Lcd "Przerwania"
    Locate 3 , 1
    Lcd "********************"
Do
Ocr1a = 31249                                          'co 1000ms
     Reset Led
On Oc1a Przerwanie
        Set Led

Ocr1a = 31249
     Reset Led
On Oc1a Przerwanie  'Linia 42

Ocr1a = 31249
     Set Led
On Oc1a Przerwanie  'Linia 46

Ocr1a = 31249
       Reset Led
On Oc1a Przerwanie

       Set Led
  Loop
    End

Przerwanie:
Ocr1a = 31249
          Incr Licz_1s
          If Licz_1s = 10 Then
             Licz_1s = 0
               Toggle Portb.2
                End If

                 Return

Jak ominąć te błędy ? Sprawdzałem też bez powtarzania OCR1A.

Link do komentarza
Share on other sites

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.