EasyManua.ls Logo

STC micro STC8A8K64D4 Series - Page 546

Default Icon
901 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
STC8A8K64D4 Series Manual
- 530 -
void PCA_Isr() interrupt 7
{
if (CF)
{
CF = 0;
cnt++; //PCA timing overflow times+1
}
if (CCF0)
{
CCF0 = 0;
count0 = count1; //Back up the last captured value
((unsigned char *)&count1)[3] = CCAP0L;
((unsigned char *)&count1)[2] = CCAP0H;
((unsigned char *)&count1)[1] = cnt;
((unsigned char *)&count1)[0] = 0;
length = count1 – count0; //length saved is the captured pulse width
}
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
cnt = 0; //User variable initialization
count0 = 0;
count1 = 0;
length = 0;
CCON = 0x00;
CMOD = 0x09; //PCA clock is the system clock, enable PCA timing interrupt
CL = 0x00;
CH = 0x00;
CCAPM0 = 0x11; //PCA module 0 is 16-bit capture mode (falling edge capture)
CCAPM0 = 0x21; //PCA module 0 is 16-bit capture mode (falling edge capture)
CCAPM0 = 0x31; //PCA module 0 is 16-bit capture mode (falling edge capture)
CCAP0L = 0x00;
CCAP0H = 0x00;
CR = 1; //Start PCA timer
EA = 1;
while (1);
}
Assembly code
;Operating frequency for test is 11.0592MHz
CCON DATA 0D8H

Table of Contents

Related product manuals