各位好,
小弟最近在写一支自动控制的工作程式。
需要让步进马达可以高转速运作
因此希望每一步之间的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