Aiuto Keil dichiarazione!

P

Picstudent

Guest
Hai,
In timer2 ISR ho una variabile unsigned intiger.
Come mi posso identificare il byte inferiore della variabile TL2 e byte superiore a TH2.
modo che io possa considerare la variabile come il valore del timer
Credo che Keil ha un method.not sicuro.
Si prega di suggerireGrazie per la risposta
Ci scusiamo per l'errore.la mia domanda era totalmente confuso.
In realtà il interrupt esterna da port3.6, voglio leggere il timer 2 valore in una variabile. (TH2 e TL2).
Immagino di dichiarare una variabile
timer2_val unsigned int;
Come posso spostare TL2 e TH2 in inferiore e superiore nibble di timer2_val, in modo che possa trattare valore timer2 come una singola variabile.
Sono un principiante in C.
Grazie ancora

Picstudent
Last edited by Picstudent il 26 nov 2004 8:48, modificato 1 volta in totale

 
Salve,

Prova questo:unsigned int var, tmpHI, tmpLo;

tmpHi = var & 0xFF00;
tmpHi>> = 8;

tmpLo = var & 0x00FF;

TL2 = tmpLo;
TH2 = tmpHi;Con i migliori saluti.Mr.Cube

 
Se ho capito bene, hai TH2 e TL2 e si desidera fare una variabile intera da quei due.timer2_val unsigned int;

timer2_val = TH2 * 256 TL2;

o

unsigned int tmp;

TH2 = tmp <<8;

timer2_val = tmp TH2Mr.Cube

 
Salve,

Prova questo:

# define HIGHBYTE 0
# define LOWBYTE 1

unione
(
unsigned int timer16;
unsigned char timer8 [2];
)
timer;

timer.timer16 = 0x1234, / / il valore a 16 bit
TH2 = timer.timer8 [HIGHBYTE]; / / highbyte del valore a 16 bit
TL2 = timer.timer8 [LOWBYTE]; / / lowbyte del valore a 16 bit

Si prega di notare se si utilizza questo su una HIGHBYTE PIC deve essere definito come 1 e LOWBYTE deve essere definito come 0.

con i migliori saluti

 
Picstudent ha scritto:

Hai,

Come posso spostare TL2 e TH2 in inferiore e superiore nibble di timer2_val, in modo che possa trattare valore timer2 come una singola variabile.

Picstudent
 

Welcome to EDABoard.com

Sponsor

Back
Top