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

MSP430 - Jak używać pragma w wektorach przerwań?

moscow18-1990 08 Lut 2016 13:38 4827 8
  • #1 15415753
    moscow18-1990
    Poziom 8  
    Dzień Dobry

    Posiadam Launchpad i zapoznaję się z mikrokontrolerem MSP430. Mam pytanie odnośnie procedury obsługi przerwania.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Znalazłem taki szablon i zastanawia mnie dlaczego tak jest to zrobione a mianowicie:

    1. Co oznacza "pragma" i jaką rolę tutaj odgrywa?

    2. Czy można odwołać się do wektorów przerwań zdefiniowanych w io430g2553.h bezpośrednio bez tego "pragma"? Czy jednak koniecznie mam postępować według tego szablonu, który przedstawiłem jako przykład?
  • Pomocny post
    #3 15415810
    lehastar
    Poziom 16  
    
    #pragma vector = <VECTOR_NAME>
    __interrupt void <ISR_NAME> (void) {
        // сюда вписывается код обработчика прерывания
    }
    

    #pragma słowo używane w C do pisania specjalnych poleceń konkretnego kompilatora, co oznacza, że ​​inny kompilator gcc na przykład, ta linia będzie po prostu ignorowana. W tym przypadku, kompilator MSP430 jest instruowany, aby dołączyć następujący kod do wywołania przerwania nazwa VECTOR_NAME, nazwa musi dokładnie powtórzyć to, co jest napisane w pliku nagłówka modelu mikrokontrolera, i jest formą czytelna wartość adresu zapis przerwania tablicy wektorów. Zauważ, że linia z #pragma słów kluczowych, nie ma średnika na końcu.

    __interrupt oznacza początek funkcji obsługi przerwań. Możesz napisać każdą obsługi nazwy w miejsce ISR_NAME, ale są powszechnie stosowane opisowe nazwy, takie jak P1_ISR, port procedury przerwania P1 lub TA0_ISR A0 obsługi timera przerwania (w mikrokontroler może być dwu-timer A, A0 zegar i timer A1, odpowiednio).

    Wszystko inne piszemy tak jak zwykle. Nie trzeba specjalne zespoły powrotu z przerwania w C, w przeciwieństwie do zespołu, który jest wykorzystywany instrukcji RETI.

    http://mspsci.blogspot.fr/2010/08/tutorial-10-something-completely.html
  • #4 15416765
    moscow18-1990
    Poziom 8  
    Ok. Mam jeszcze pytanko z innej beczki. Mam problem z dodaniem plików do projektu w IAR. Jest może osoba, która ma doświadczenie z tym środowiskiem i jest w stanie mi powiedzieć jak dodać pliki ".c" i ".h" tak, żeby to poprawnie później skompilować.
  • Pomocny post
    #5 15417289
    BlueDraco
    Specjalista - Mikrokontrolery
    Dodaje się wyłącznie pliki .c i ew. ustawia ścieżkę dostępu do plików .h.
  • Pomocny post
    #6 15417332
    lehastar
    Poziom 16  
    Tworzenie projektu:
    Project -- Create New Project -- C -- main
    Project -- Options -- General Option Device (MSP430G2452IN20 MSP430G2553IN20 )
    Project -- Options -- Linker Overrite Default main.hex Other Intel-extended

    Dodawanie plików:
    Pliki *.c *.h rzucać w folderze z projektem
    Project -- Add Files..
  • #7 15426631
    moscow18-1990
    Poziom 8  
    Ok. Wszytko się kompiluje. Mam kolejne pytanie. Chcę zrobić komunikację z terminalem Putty za pomocą przejściówki RS232 i tutaj pojawiają się dwie zworki na launchpadzie i pojęcie Software UART i Hardware UART. Pierwszy raz się spotykam z czymś takim a boję że uszkodzę przejściówkę. Mógłby ktoś rozjaśnić o co tu chodzi?
  • Pomocny post
    #8 15427434
    Konto nie istnieje
    Konto nie istnieje  
  • #9 15452592
    moscow18-1990
    Poziom 8  
    Ok, ale jeżeli chcę skorzystać z zewnętrznej przejściówki to zworki 4 i 5 mają być całkowicie rozwarte? Czy mają być w horizontal orientation czyli w konfiguracji Hardware UART?
REKLAMA