سلام ! میکرو من Aduc831 هست و اسیلاتور هم 11.059MHz . باید فکر میکنم برنامه تایمر 0 اضافه بشه و لطفا یک نگاه کنید مشکل دیگه هم داره؟ میخوام Period 18ms , Puls 2ms بدهد مرسی
#include <ADUC831.H>
unsigned char Output_Flag;
void main(void)
{
unsigned short usDauer;
unsigned short usOutput[8];
char i;
//inja fekr mikonam timer 0 bayad neveshteh shavad
T3CON=0x85;
T3FD=0x08;
SCON=0x52;
EA = 1;
ES = 1;
usOutput[0]=1000;
usOutput[1]=2000;
while(1)
{
if(Output_Flag==1)
{
usDauer=TH0*256+TL0-47535;
if(usOutput[i]>usDauer)
P3=P3&(~(1<<i));
if(P3==0)
Output_Flag=0;
}
}
}
void interrupfunktion (void) interrupt 1
{
char i;
for(i=0;i<8;i++)
P3=P3| (1<<i);
Output_Flag = 1;
}
#include <ADUC831.H>
unsigned char Output_Flag;
void main(void)
{
unsigned short usDauer;
unsigned short usOutput[8];
char i;
//inja fekr mikonam timer 0 bayad neveshteh shavad
T3CON=0x85;
T3FD=0x08;
SCON=0x52;
EA = 1;
ES = 1;
usOutput[0]=1000;
usOutput[1]=2000;
while(1)
{
if(Output_Flag==1)
{
usDauer=TH0*256+TL0-47535;
if(usOutput[i]>usDauer)
P3=P3&(~(1<<i));
if(P3==0)
Output_Flag=0;
}
}
}
void interrupfunktion (void) interrupt 1
{
char i;
for(i=0;i<8;i++)
P3=P3| (1<<i);
Output_Flag = 1;
}
دیدگاه