'Przerwanie17.bas

 'Program poglądowy, przerwanie Int1.

 'Można załączyć Port.

 'Opis pod programem.

 'Opracował Henryk Wydmuch

 'Program zajmuje 7% pamięci.

 

 $regfile = "m8def.dat"                                     'Info dla kompilatora.

$crystal = 16000000                                         'Informujemy kompilator o kwarcu 16MHz.

 

 Config Lcd = 16 * 2                                        'Konfiguracja Lcd.

 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

 

 

 

 Config Pind.1 = Output                                     'Port wykonawczy.

 Config Pind.3 = Input                                      'Int1.

  Set Portd.3                                               'Ustaw poziom wysoki na wyjściu Portd.3.

  Set Portd.1                                               'Ustaw poziom wysoki na wejściu Portd.1.

 

 

 

 On Int1 Styk                                               'Podprogram Timer0 o nazwie Styk.

 

 Enable Interrupts                                          'Zezwalaj na wszystkie przerwania.

 Enable Int1                                                'Odblokowujemy przerwanie.

 

 Cls                                                        'Wyczyść Lcd.

 

 '------------------------------------------------------------------------------------------------------

Do                                                          'Początek pętli głównej programu.

Home                                                        'Pokazuj w jednym miejscu.

If Pind.1 = 0 Then                                          'Jeśli w Portd.1 pojawi się 0 od przerwania...

Lcd "Jest impuls"                                           'Pokaż komunikat.

End If                                                      'Koniec warunku.

Loop                                                        'Powtórz pętlę.

End                                                         'Koniec pętli.

'--------------------------------------------------------------------------------------------------------

Styk:                                                       'Podprogram obsługi przerwania.

  Portd.1 = 0                                               'Załącz Port.

  Return                                                    'Wróć do programu.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Objaśnienie:

'W Atmega8 przerwanie zewnętrzne INT1 doprowadza się do Portd.3.

'Przerwanie poziomem niskim.

'Po pojawieniu się impulsu w Portd.3, czyli po przerwaniu, w Portd.1 pojawi się 0 i pozostanie

'aż do z resetowania procesora.

'Na Lcd pojawi się komunikat "Jest impuls".

'Koniec.