ครั้งแรกกับ C51 ผมยังคุม Interrupt ยังไม่ได้
เพิ่งขยับขึ้นมาเขียน ภาษา c ต้องการให้ p1.0 กระพริบเร็วP1.1 กระพริบช้า จากการInterrupt ของ Timer ผมผิดตรงไหนครับช่วยแนะนำหน่อยครับ code ที่ผมเขียนแบบนี้ครับ #pragma SMALL #include<reg51.h> void delay (int count); void timer_interrupt(void); sbit Lamp1 =P1^0; sbit Lamp2 =P1^1; sbit Lamp3 =P1^2; sbit sensor3 =P0^2; char clk50m; bit qflash,sflash; void main(void) { clk50m=0; P0 = 0xFF; P1 = 0x00; P2 = 0xF0; delay(100); sflash =0; TMOD =0x01; TH0 = 0x38; TL0 = 0x00; TR0 = 1; ET0=1; EA=1;
while(1) { if(clk50m<=10) { qflash=1; } else if (clk50m>11) { qflash=0; } if(clk50m>=20) { sflash=~sflash; clk50m=0; } Lamp1 = qflash; Lamp2 = sflash; Lamp3 = sensor3; } }
void delay(int count) { int l,m; for (l=0;l<count;l++) for (m=0;m<500;m++);
} void timer_interrupt(void) interrupt 1 { TR0 = 0; TH0 = 0x38; TL0 = 0x00; TF0 = 0; clk50m++; TR0 = 1; }
จากคุณ :
ปาณัสม์
-[
28 ก.ค. 50 - 18:24:12
A:61.19.65.139 X:
]
|