开闭量的设定
#include <3664.h> #include <sci.c>
#define M1 IO.PDR8.BIT.B2
#define M2 IO.PDR8.BIT.B0
void inih8(){
IO.PCR5=0x00;
IO.PCR8=0xff;
TV.TCRV0.BIT.CCLR = 1;
TV.TCRV0.BIT.CKS = 0;
TV.TCRV1.BIT.ICKS = 1;
TV.TCSRV.BIT.CMFA = 0;
TV.TCNTV = 0;
TV.TCORA = 125;
}
void wait (long num)
{
long i;
TV.TCRV0.BIT.CKS = 3;
for (i = 0; i < num; i++) {
while (!TV.TCSRV.BIT.CMFA) ;
TV.TCSRV.BIT.CMFA = 0;
}
TV.TCRV0.BIT.CKS = 0;
}
typedef struct {
union {
struct {
_WORD DATA:10;
_WORD DUM : 6;
} WORD10;
struct {
_BYTE HI;
_BYTE LO;
} BYTE;
} DR[4];
} UD_DumADDR;
int GetAD (char ch)
{
UD_DumADDR *UD_ADBuf = (UD_DumADDR *)&AD.ADDRA;
AD.ADCSR.BYTE = 0x08 | ch;
AD.ADCSR.BIT.ADST = 1;
while (!AD.ADCSR.BIT.ADF) ;
AD.ADCSR.BIT.ADF = 0;
return UD_ADBuf->DR[ch % 4].WORD10.DATA;
int main(void)
{
int Ti,To,Ti_ref,To_ref,num,J,i;
char c;
char s[10];
Ti_ref=200;
To_ref=270;
num=2;
J=0;
inih8();
InitSCI3 (br9600);
EI;
while (1) {
Ti=GetAD(3); //室温
To=GetAD(6); //室外温
if ((Ti>Ti_ref &&Ti>To && To<=To_ref) && J==0)
{M1=1; M2=0;
for(i=0;i<num;i++){
wait(1000);
}
J=1; //J=1开窗 J=0关窗
}
else if ((Ti<=Ti_ref || To>To_ref) && J==1)
{M1=1; M2=1;
for(i=0;i<num;i++){
wait(1000);
}
J=0;
}
else
{M1=0; M2=0;}
wait(300000);
}
}
大家帮我看一下这个程序,想要加上窗户开关量的一段(用M1 M2控制窗户开关量50mm)。新人只有20分,请大家帮下忙,先谢谢啦!