Intelligent Sensor System
TwitterFacebookGoogleLinkedInYouTube
TwitterFacebookGoogleLinkedInYouTube

Periferiche Processore cortex M3

Home Forums IoTPrise Forum Periferiche Processore cortex M3

This topic contains 9 replies, has 3 voices, and was last updated by  Alessandro Scatà 2 years, 3 months ago.

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #1859

    kelset
    Participant

    ciao a tutti
    Per sviluppare la mia applicazione mi servirebbero i timer del processore cortex M3, in quanto il ticktimer di 10ms messo a disposizione direttamente dalle funzioni della scheda fluctus è troppo elevato, purtroppo non riesco a configurare i timer in modo corretto. Devo usare altre funzioni specifiche o vanno bene quelle presenti nel manuale “Stellaris® Peripheral Driver Library”?
    un esempio di configurazione utilizzato:
    TimerConfigure(TIMER1_BASE, (TIMER_CFG_16_BIT_PAIR | TIMER_CFG_A_ONE_SHOT));
    TimerLoadSet(TIMER1_BASE, TIMER_A, 3000);

    TimerEnable(TIMER1_BASE, TIMER_A);

    tempo = TimerValueGet(TIMER1_BASE, TIMER_A);

    il compilatore IAR non da warning o errori di sintassi, tutte le costanti sono definite nell’header file timer.h

    grazie Fabio

    #1860

    Ciao Fabio,
    ti interessa sfruttare l’INTERRUPT del Timer1 per implementare il tuo software al suo interno oppure ti serve per avere una base di tempi più “fine” verificandone la scadenza in polling?
    Attendiamo una tua risposta.

    Grazie
    Il Team di FluctuS

    #1861

    NIK
    Participant

    Ciao Fabio,
    a seconda delle tue esigenze puoi anche velocizzare la cadenza del TickTimerInterrupt nel seguente modo:

    extern uint16 tickCadenza;

    MAP_SysTickPeriodSet(MAP_SysCtlClockGet()/100); // 10msec (default Bios)
    tickCadenza = 10;
    oppure:
    MAP_SysTickPeriodSet(MAP_SysCtlClockGet()/500); // 2msec
    tickCadenza = 2;
    oppure:
    MAP_SysTickPeriodSet(MAP_SysCtlClockGet()/1000); // 1msec
    tickCadenza = 1;

    Ricordati sempre di settare tickCadenza con il valore in msec del timer impostato.
    Ricorda anche di verificare che la durata del TickTimerInterrupt non sia maggiore della cadenza altrimenti rischi crash di sistema. Ti consiglio di monitorare con un oscilloscopio il test point “TP11 – BIOS”, quando il segnale è alto vuol dire che il sistema sta eseguendo il TickTimerInterrupt, da ciò puoi verificare cadenza e durata.

    #1863

    kelset
    Participant

    per il momento mi interessava far partire un timer e controllare dopo quanto tempo si verificava un evento, devo controllare dei sensori ad ultrasuoni quindi i tempi di risposta sono molto bassi e più “fine” è il conteggio, più alta è la precisione delle distanze misurate. Andando a modificare il ticktimer non bisogna anche modificare gli altri parametri relativi a Virtual LCD per esempio? In ogni caso è possibile che avrò bisogno anche di più timer per i vari sensori quindi vorrei riuscire a settarli singolarmente.

    #1864

    NIK
    Participant

    Ok, capisco.
    Comunque per rispondere alla tua ultima domanda, nel caso del TicktimerInterrupt il Bios si riconfigura da solo grazie al settaggio della locazione tickCadenza.

    #1865

    kelset
    Participant

    ok grazie per la risposta così a mali estremi posso risolvere così per ora

    #1866

    kelset
    Participant

    problema risolto, il timer1 funziona perfettamente e dunque penso anche gli altri. Grazie a tutti per l’aiuto

    #1867

    Bene Fabio, rimaniamo comunque a tua disposizione.

    Buona serata.

    Il Team di FluctuS

    #1907

    kelset
    Participant

    salve a tutti, volevo un’informazione, il microcontrollore stellaris cortex M3 supporta anche la comunicazione CAN(controller area network), ma sui manuali e nelle librerie della scheda fluctus non viene mai menzionata. C’è un modo per utilizzare questo standard o ci sono controindicazioni?
    grazie
    Fabio

    #1908

    Ciao Fabio, il micro di FluctuS possiede la possibilità di utilizzare CAN di comunicazione, in particolare però nel progetto FluctuS è stato scelto di non usare Fieldbus, quindi i pin dedicati sono stati impiegati in altri utilizzi. Non è quindi possibile tramite software fruire di quelle porte di comunicazione.

    A presto.

    Il Team di FluctuS

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic.