📄 interret.c
字号:
#include <w77e58.h>
#include <stdio.h>
#include<intrins.h>
unsigned char pns;//中断次数
unsigned int pnztime;//PAL/NTSC 时间
bit pnds;//PAL/NTSC 判别完
bit p_n;//P/N标志
bit chan;//确定有电视信号
bit pal_ntsc();
void dely(unsigned int i);
void extern_int1() interrupt 2
{
pns++;
if(pns==1)
{
TH0=100;
TL0=100;
TR0=1;
ET0=1;
dely(800);
}
else if(pns==2){
TR0=0;
ET0=0;
pnds=1;
chan=1;
EX1=0;
}
else
{
pns=0;
pnds=0;
}
}
void time0() interrupt 1 using 1
{
pnztime++;
if(pnztime>0x500)
pnds=1;
}
bit pal_ntsc()
{unsigned int i;
i=0;
pns=0;
pnds=0;
chan=0;
pnztime=0;
PX1=1;
EX1=1;
while(!pnds)
{
i++;
if(i>60000)
pnds=1;
}
EX1=0;
PX1=0;
TR0=0;
ET0=0;
if(pnztime<0x145)
{
p_n=1;
printf("PAL/NTSC=%x,制式-NTSC\n",pnztime);
}
else {p_n=0;
printf("PAL/NTSC=%x,制式-PAL\n",pnztime);
}
if(chan)
return(1);
else return(0);
}
void dely(unsigned int i)
{
for (;i!=0;i--)
_nop_();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -