各位好,
小弟最近在寫一支自動控制的工作程式。
需要讓步進馬達可以高轉速運作
因此希望每一步之間的delay可以用100μs為單位控制
MCU 新唐W78E516DDG (8052)
振盪器 30MHz
Keil C
電路運作正常
方式1是用一般的timer0中斷
#define tv 248 //用2.5GS/s 示波器量 1ms時 timer0值為2481
#define TH (65536 - tv)/256;
#define TL (65536 - tv)%256;
int x1ms;
void delay100us(int count1)
{
x1ms = count1;
IE = 0x92; //timer0為計時中斷 timer1為uart中斷
TMOD = 0x21; //timer0為計時中斷 timer1為uart中斷
TH0 = TH;
TL0 = TL;
TR0 = 1;
while(x1ms != 0);
}
void T0_int(void) interrupt 1
{
TR0 =0;
x1ms