#ifdef AVRTARGET STEP_DDR |= STEP_MASK; // 将步进电机的STEP引脚设为输出 STEPPERS_DISABLE_DDR |= 1<<STEPPERS_DISABLE_BIT; // 将步进电机的DISABLE引脚设为输出 DIRECTION_DDR |= DIRECTION_MASK; // 将步进电机的DIR引脚设为输出

// 配置定时器1:步进电机驱动器中断 TCCR1B &= ~(1<<WGM13); // 波形发生 = 0100 = CTC TCCR1B |= (1<<WGM12); TCCR1A &= ~((1<<WGM11) | (1<<WGM10)); TCCR1A &= ~((1<<COM1A1) | (1<<COM1A0) | (1<<COM1B1) | (1<<COM1B0)); // 断开OC1输出 // TCCR1B = (TCCR1B & ~((1<<CS12) | (1<<CS11))) | (1<<CS10); // 在st_go_idle()中设置 // TIMSK1 &= ~(1<<OCIE1A); // 在st_go_idle()中设置

// 配置定时器0:步进电机端口复位中断 TIMSK0 &= ~((1<<OCIE0B) | (1<<OCIE0A) | (1<<TOIE0)); // 断开OC0输出和OVF中断。 TCCR0A = 0; // 正常操作 TCCR0B = 0; // 直到需要时才禁用Timer0 TIMSK0 |= (1<<TOIE0); // 启用Timer0溢出中断 #ifdef STEP_PULSE_DELAY TIMSK0 |= (1<<OCIE0A); // 启用Timer0比较匹配A中断 #endif #endif #ifdef WIN32 QueryPerformanceFrequency(&Win32Frequency); // 获取计时器频率

_beginthread(Timer1Thread, 0, NULL); // 启动定时器1线程
_beginthread(Timer0Thread, 0, NULL); // 启动定时器0线程

#endif

给C语言函数添加注释并将英文注释翻译成中文#endif#ifdef AVRTARGET STEP_DDR = STEP_MASK; STEPPERS_DISABLE_DDR = 1STEPPERS_DISABLE_BIT; DIRECTION_DDR = DIRECTION_MASK; Configure Timer 1 Stepper Driver Interrupt TCCR1B

原文地址: http://www.cveoy.top/t/topic/hjuU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录