MSP430, Microcontrollori 16 bit Ultra Low Power

interrupt routine dei timer

  • pier
  • Autore della discussione
  • Anziano Utente
  • Anziano Utente
Di più
10 Anni 4 Mesi fa #1 da pier
interrupt routine dei timer è stato creato da pier
Premetto che devo ancora studiarmi bene i due capitoli sui timer del corso MSP430, spero che il mio dubbio non risulti troppo banale.

Il problema è questo:
sto decifrando un programma sviluppato per MSP430F2274, l'obiettivo è decifrare un segnale OOK mediante i moduli Capture Compare, e da quello che ho capito, anche l'OPAMP interno.
Il mio dubbio però è su come vengono codificate le routine di interrupt dei timer, io vedo questo nel mio codice:
Code:
void main(void) { ...... TACCTL1 = CM_3 + CCIS_1 + SCS + CAP + CCIE; } #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A1(void) { .... TACCTL0 = CCIE; TACTL = TASSEL_2 + MC_2; } #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A0(void) { .... }

quindi nel main parte il timerA1 e nel timerA1 parte il timerA0?
ma cos'è il timerA0? che differenza c'é con il A1? forse è che uno ha il Capture/Compare mentre l'A0 no?
La notazione nell'articolo di Mauro mi pareva diversa...

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
10 Anni 4 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic interrupt routine dei timer
Ciao Pier,

l'MSP430F2274 ha due soli Timer. 1 Timer_A e 1 Timer_B
Ogni Timer ha 3 moduli Capture e Compare.

Ad ogni Timer sono associati due Interrut Vector.
Nel caso del Timer_A hai:

TIMERA0_VECTOR
TIMERA1_VECTOR

Al primo Interrupt Vector fa riferimento CCR0 mentre al secondo CCR1 e CCR2.

Per ulteriori info ti consiglio di aprire l'header file dove trovi dichiarate le costanti dell'interrupt vector. Altre info le trovi nel datasheet nel paragrafo Interrupt Vector Addresses.

Nel caso specifico del tuo software:
nel main e' configurato CCR1.
l'ISR di CCR1 e' TIMERA1_VECTOR. Quando viene eseguita l'ISR, viene configurato CCR0, al quale e' assegnato l'interrupt vector TIMERA0_VECTOR

Saluti,

Mauro

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • pier
  • Autore della discussione
  • Anziano Utente
  • Anziano Utente
Di più
10 Anni 4 Mesi fa #3 da pier
Risposta da pier al topic interrupt routine dei timer
Avevo più o meno capito, ma la tua risposa, sempre chiara e precisa, mi ha chiarito meglio le idee.
Grazie

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
10 Anni 4 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic interrupt routine dei timer
Perfetto,

...che applicazione stai sviluppando?

Saluti,

Mauro

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • pier
  • Autore della discussione
  • Anziano Utente
  • Anziano Utente
Di più
10 Anni 4 Mesi fa #5 da pier
Risposta da pier al topic interrupt routine dei timer
è per la mia tesi di laurea. Essenzialmente stiamo cercando di intercettare un segnale OOK per accendere un nodo di un sistema power line communication, il tutto in energy harvesting con l'energia di quel segnale.

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi