Keil izjavo Help!

P

Picstudent

Guest
Hai,
V Timer2 ISR imam nepodpisan spremenljivo intiger.
Kako sem lahko enačijo nižji byte spremenljivke TL2 in zgornje bajti TH2.
tako da sem lahko obravnavajo kot časovnik vrednost spremenljivke
Mislim, da Keil has got method.not prepričan.
Prosimo, kažejoHvala za odgovor
Oprosti za napako.moje vprašanje je bilo povsem zmedeno.
Pravzaprav o zunanjih prekinitev iz port3.6, želim prebrati timer 2 v vrednosti spremenljivke. (TH2 in TL2).
Domnevam Izjavljam spremenljivka
unsigned int timer2_val;
Kako lahko premaknem TL2 in TH2 v spodnjo in zgornjo Košček za timer2_val, tako da sem lahko obravnavajo Timer2 vrednost kot ena spremenljivka.
Jaz sem začetnik v C.
Še enkrat hvala

Picstudent
Last edited by Picstudent dne 26. november 2004 8:48, edited 1 v času celotnega

 
Živjo,

poskusite to:unsigned int var, tmpHI, tmpLo;

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

tmpLo = var & 0x00FF;

TL2 = tmpLo;
TH2 = tmpHi;S spoštovanjem.Mr.Cube

 
Če sem dobro razumel, ste TH2 in TL2 in želite, da dajo eno celo spremenljivko iz teh dveh.unsigned int timer2_val;

timer2_val = TH2 * 256 TL2;

ali

unsigned int tmp;

tmp = TH2 <<8;

timer2_val = tmp TH2Mr.Cube

 
Živjo,

poskusite to:

# define HIGHBYTE 0
# define LOWBYTE 1

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

timer.timer16 = 0x1234, / / 16 bit vrednost
TH2 = timer.timer8 [HIGHBYTE], / / highbyte z 16-bitno vrednost
TL2 = timer.timer8 [LOWBYTE], / / lowbyte z 16-bitno vrednost

Prosimo, upoštevajte, če uporabljate to na PIC HIGHBYTE je treba opredeliti kot 1 in LOWBYTE je treba opredeliti kot 0.

s spoštovanjem

 
Picstudent wrote:

Hai,

Kako lahko premaknem TL2 in TH2 v spodnjo in zgornjo Košček za timer2_val, tako da sem lahko obravnavajo Timer2 vrednost kot ena spremenljivka.

Picstudent
 

Welcome to EDABoard.com

Sponsor

Back
Top