- Messaggi: 353
- Ringraziamenti ricevuti 8
×
MSP430, Microcontrollori 16 bit Ultra Low Power
HELP
10 Anni 10 Mesi fa #1
da elpablito
HELP è stato creato da elpablito
Buon giorno
Sto facendo il solito.....
Conosco la locazione di memoria (indirzzo) supponiamo 0x200
so che contiene una variabile int (quindi in 0x200 e 0x201)
Come faccio ad assegnare alla variabile int pippo il contenuto di 0x200 e 0x201 ?
Naturalmente usando il C, vediamo se così scopro dove ho raccontato balle.
Baciamo le medaglie
Paolo
Sto facendo il solito.....
Conosco la locazione di memoria (indirzzo) supponiamo 0x200
so che contiene una variabile int (quindi in 0x200 e 0x201)
Come faccio ad assegnare alla variabile int pippo il contenuto di 0x200 e 0x201 ?
Naturalmente usando il C, vediamo se così scopro dove ho raccontato balle.
Baciamo le medaglie
Paolo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- elpablito
- Autore della discussione
- Platinum Member
Riduci
Di più
10 Anni 10 Mesi fa - 10 Anni 10 Mesi fa #2
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic HELP
Se ho capito cosa intendi..
definisci pippo come un intero.. ci copi dentro il valore della memoria più significatovo, poi shifti di 8 posizioni e ci sommi il valore meno significativo.
int pippo;
pippo = 0;
pippo = [il contenuto di 0x200];
pippo >> 8;
pippo = pippo + [il contenuto di 0x201];
questo considerando il valore contenuto in 0x200 quello più significativo, cioè i bit più a sinistra; se il più significativo è il contenuto di 0x201 basta invertire 0x200 e 0x201.
Ste
definisci pippo come un intero.. ci copi dentro il valore della memoria più significatovo, poi shifti di 8 posizioni e ci sommi il valore meno significativo.
int pippo;
pippo = 0;
pippo = [il contenuto di 0x200];
pippo >> 8;
pippo = pippo + [il contenuto di 0x201];
questo considerando il valore contenuto in 0x200 quello più significativo, cioè i bit più a sinistra; se il più significativo è il contenuto di 0x201 basta invertire 0x200 e 0x201.
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Ultima Modifica 10 Anni 10 Mesi fa da StefA.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
10 Anni 10 Mesi fa #3
da elpablito
Risposta da elpablito al topic HELP
buondi allo STE
Il problema e esattamemte come scivere
pippo = [il contenuto di 0x200];
Se pippo è un int automaticamente le due locazioni finiscono in pippo
Lo 0x200 nasce da questa istruzione
ADC10SA = 0x200 che rappresenta la prima cella di memoria dove l'ADC va a memorizzare i risultati delle
varie conversioni.
ADC10SA è una voce del registro di ADC di che tipo è o se vuoi 0x200 di che tipo è ?
Dovrei scrivere:
int pippo = *ADC10SA che è una fesseria perchè ADC10SA è l'indirizzo, ma è per rendere l'idea
Il problema è solo questo come scrivere correttamente
pippo =[contenuto della cella 0X200]
Poi il resto non è problema.
Grazie
Paolo
Il problema e esattamemte come scivere
pippo = [il contenuto di 0x200];
Se pippo è un int automaticamente le due locazioni finiscono in pippo
Lo 0x200 nasce da questa istruzione
ADC10SA = 0x200 che rappresenta la prima cella di memoria dove l'ADC va a memorizzare i risultati delle
varie conversioni.
ADC10SA è una voce del registro di ADC di che tipo è o se vuoi 0x200 di che tipo è ?
Dovrei scrivere:
int pippo = *ADC10SA che è una fesseria perchè ADC10SA è l'indirizzo, ma è per rendere l'idea
Il problema è solo questo come scrivere correttamente
pippo =[contenuto della cella 0X200]
Poi il resto non è problema.
Grazie
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 10 Mesi fa #4
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic HELP
passa da una variabile a 8 bit.. un char.
int pippo = 0;
char dato = 0;
dato = [il contenuto di 0x200];
pippo = dato;
dato = [il contenuto di 0x201];
pippo >> 8;
pippo = pippo + dato;
simulandolo (anche solo con mplab sim) puoi vedere se il dato quando viene passato dalla memoria alla variabile a pippo rimane invariato, altrimenti devi aggiungere il casting..
Ste
int pippo = 0;
char dato = 0;
dato = [il contenuto di 0x200];
pippo = dato;
dato = [il contenuto di 0x201];
pippo >> 8;
pippo = pippo + dato;
simulandolo (anche solo con mplab sim) puoi vedere se il dato quando viene passato dalla memoria alla variabile a pippo rimane invariato, altrimenti devi aggiungere il casting..
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
10 Anni 10 Mesi fa #5
da elpablito
Risposta da elpablito al topic HELP
OK Ste
Dimmi come fai a scivere in c
dato = [il contenuto di 0x200];
Poi siamo amici !!
ciao Paolo
Dimmi come fai a scivere in c
dato = [il contenuto di 0x200];
Poi siamo amici !!
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
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.