- Messaggi: 353
- Ringraziamenti ricevuti 8
×
MSP430, Microcontrollori 16 bit Ultra Low Power
#define
10 Anni 6 Mesi fa #1
da elpablito
#define è stato creato da elpablito
Buon giorno
Ho bisogno di una dritta. Con gli MPS430 esiste la possibilità di scrivere un'istruzione equivalente a;
#define pippo RA5 // porta A bit 6
Si ringrazia
Paolo
Ho bisogno di una dritta. Con gli MPS430 esiste la possibilità di scrivere un'istruzione equivalente a;
#define pippo RA5 // porta A bit 6
Si ringrazia
Paolo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- elpablito
- Autore della discussione
- Platinum Member
Riduci
Di più
10 Anni 6 Mesi fa - 10 Anni 6 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic #define
Ciao Paolo,
in Code Composer Studio non sono definite le strutture che permettono di accedere i registri con singoli bit. Questo, almeno a giustificazione di alcuni con cui ho avuto modo di parlare è stato scelto per favorire il bit masking e permettere sempre una corretta ottimizzazione del codice.
Il compilatore IAR permette di ottenere un codice più efficiente, in generale, di quello ottenibile in ambiente CCS.
...ma supporta le strutture dati con accesso dei singoli bit. Quindi la giustificazione sopra non è poi sempre valida in assoluto, e personalmente preferisco IAR (per questo aspetto).
Per i define, in CCS puoi definire dunque solo le singole porte:
#define STRINGA_LED P1OUT
altrimenti potresti anche realizzare semplicei macro per accedere ai singoli BIT:
#define LED_0_ON (P1OUT | BIT0)
#define LED_1_ON (P1OUT | BIT1)
#define LED_2_ON (P1OUT | BIT2)
In maniera analoga per spegnere:
#define LED_0_OFF (P1OUT & !BIT0)
#define LED_1_OFF (P1OUT & !BIT1)
#define LED_2_OFF (P1OUT & !BIT2)
Per leggere un pulsante su P2IN.0 potresti scrivere:
#define SW_STATUS (P2IN & BIT0)
Saluti,
Mauro
in Code Composer Studio non sono definite le strutture che permettono di accedere i registri con singoli bit. Questo, almeno a giustificazione di alcuni con cui ho avuto modo di parlare è stato scelto per favorire il bit masking e permettere sempre una corretta ottimizzazione del codice.
Il compilatore IAR permette di ottenere un codice più efficiente, in generale, di quello ottenibile in ambiente CCS.
...ma supporta le strutture dati con accesso dei singoli bit. Quindi la giustificazione sopra non è poi sempre valida in assoluto, e personalmente preferisco IAR (per questo aspetto).
Per i define, in CCS puoi definire dunque solo le singole porte:
#define STRINGA_LED P1OUT
altrimenti potresti anche realizzare semplicei macro per accedere ai singoli BIT:
#define LED_0_ON (P1OUT | BIT0)
#define LED_1_ON (P1OUT | BIT1)
#define LED_2_ON (P1OUT | BIT2)
In maniera analoga per spegnere:
#define LED_0_OFF (P1OUT & !BIT0)
#define LED_1_OFF (P1OUT & !BIT1)
#define LED_2_OFF (P1OUT & !BIT2)
Per leggere un pulsante su P2IN.0 potresti scrivere:
#define SW_STATUS (P2IN & BIT0)
Saluti,
Mauro
Ultima Modifica 10 Anni 6 Mesi fa da Mauro Laurenti.
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 6 Mesi fa #3
da elpablito
Risposta da elpablito al topic #define
Eccomi di ritorno
Ci avrei giurato, infatti avevo già provveduto (forse se ne era già parlato). Questa è invece una seccatura, il programma diventa meno leggibile e costringe a dover far di conto.
Non avevo pensato all'idea delle macro, potrebbe essere il meno peggio. Salvo la complicazione iniziale diventa più leggibile.
Di quel coso devo far due foto e ripulirle poi ti invio il tutto.
Ciao Paolo
Ci avrei giurato, infatti avevo già provveduto (forse se ne era già parlato). Questa è invece una seccatura, il programma diventa meno leggibile e costringe a dover far di conto.
Non avevo pensato all'idea delle macro, potrebbe essere il meno peggio. Salvo la complicazione iniziale diventa più leggibile.
Di quel coso devo far due foto e ripulirle poi ti invio il tutto.
Ciao Paolo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- elpablito
- Autore della discussione
- Platinum Member
Riduci
Di più
- Messaggi: 353
- Ringraziamenti ricevuti 8
10 Anni 6 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic #define
L'ambiente di sviluppo IAR prevedere strutture dati per i registri, per cui e' possibile fare un accesso ai singoli bit come per una struttura. Praticamente come in ambiente MPLAB.
Per Code Composer Studio hanno deciso di non supportare tale opzione.
Saluti,
Mauro
...attendo i nuovi file!
Per Code Composer Studio hanno deciso di non supportare tale opzione.
Saluti,
Mauro
...attendo i nuovi file!
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.