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

[ATmega32][Asm] - Tablica wektorów przerwań.

polprzewodnikowy 15 Kwi 2010 20:07 2661 3
  • #1 7965415
    polprzewodnikowy
    Poziom 26  
    Witam, czytając książkę A. Pawluczuka natknąłem się na inicjację wektorów przerwań. Jak wiadomo w książce jest wykorzystywany µC ATmega8515 (niestety ja korzystam z ATmegi32). Przykładowa tablica tutaj:

    .org	INT0addr			;External Interrupt0 Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	INT1addr			;External Interrupt1 Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	ICP1addr			;Input Capture1 Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	OC1Aaddr			;Output Compare1A Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	OC1Baddr			;Output Compare1B Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	OVF1addr			;Overflow1 Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	OVF0addr			;Overflow0 Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	SPIaddr				;SPI Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	URXCaddr			;USART Receive Complete Int. Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	UDREaddr			;USART Data Register Empty Int. Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	UTXCaddr			;USART Transmit Complete Int. Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	ACIaddr				;Analog Comparator Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	INT2addr			;External Interrupt2 Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	OC0addr				;Output Compare0 Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	ERDYaddr			;EEPROM Interrupt Vector Address
    	reti					;
    ;-----------------------------------------------------------------------------
    	.org	SPMaddr				;SPM complete Interrupt Vector Address
    	reti


    Pytanie do was, skąd wiadomo jakie nazwy użyć? Podana tablica nie pasuje dla mikrokontrolera ATmega32 (np. kompilator wyrzuca błąd przy ".org SPMaddr"). Z góry dziękuję za odpowiedź.
  • Pomocny post
    #2 7965497
    _Robak_
    Poziom 33  
    To są zwykłe stałe zapisane w jakimś pliku, Przy instalacji AVRstudio jest to plik m32def.inc. Pod tymi stałymi są adresy które znajdziesz w datenblacie. A skąd wiadomo jakiej nazwy użyć? Zaglądasz do pliku z definicjami stałych już wiesz:)
  • Pomocny post
    #3 7965506
    janbernat
    Poziom 38  
    No, chyba żartujesz.
    ATMega32 ma 21 wektorów- str.44 ds.
    A ATmega8515- 17 wektorów.
    I niektóre nazwy są inne.
  • #4 7965539
    polprzewodnikowy
    Poziom 26  
    Już widzę, nawet nie zauważyłem że te nazwy są w datasheecie. Temat zamykam.
REKLAMA