Ajuda declaração Keil!

P

Picstudent

Guest
Hai,
Em Timer2 ISR eu tenho uma variável intiger assinado.
Como eu posso equiparar o byte inferior da variável para TL2 e byte superior a TH2.
para que eu possa tratar a variável como o valor do temporizador
Acho Keil tem uma method.not certeza.
Envie-nosObrigado pela resposta
Desculpe pelo erro.minha pergunta estava totalmente confuso.
Na verdade sobre a interrupção externa da port3.6, eu quero ler o timer 2 valor em uma variável. (TH2 e TL2).
Suponho que declarar uma variável
timer2_val unsigned int;
Como posso mover TH2 e TL2 em superiores e inferiores mordidela de timer2_val, para que eu possa tratar o valor Timer2 como uma única variável.
Eu sou um iniciante em C.
Obrigado novamente

Picstudent
Última edição por Picstudent em 26 Nov 2004 8:48, editado 1 vez no total

 
Oi,

tente o seguinte:var unsigned int, tmpHI, tmpLo;

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

tmpLo = var & 0x00FF;

TL2 = tmpLo;
TH2 = tmpHi;Atenciosamente.Mr.Cube

 
Se estou entendo bem, você tem TH2 e TL2 e você quiser fazer uma variável inteira a partir desses dois.timer2_val unsigned int;

timer2_val = TH2 * 256 TL2;

ou

unsigned int tmp;

TH2 tmp = <<8;

timer2_val = tmp TH2Mr.Cube

 
Oi,

tente o seguinte:

# define highbyte 0
# define Lowbyte 1

União
(
unsigned int timer16;
unsigned char timer8 [2];
)
timer;

timer.timer16 = 0x1234, / / o valor de 16 bits
TH2 = timer.timer8 [highbyte]; / / highbyte do valor de 16 bits
TL2 = timer.timer8 [Lowbyte]; / / Lowbyte do valor de 16 bits

Observe se você está usando isso em um highbyte PIC tem de ser definido como 1 e Lowbyte tem de ser definido como 0.

atenciosamente

 
Picstudent escreveu:

Hai,

Como posso mover TH2 e TL2 em superiores e inferiores mordidela de timer2_val, para que eu possa tratar o valor Timer2 como uma única variável.

Picstudent
 

Welcome to EDABoard.com

Sponsor

Back
Top