📄 irq.c
字号:
#include "spce061v004.h"
#include "main.h"
extern int TimeN,TimePoint,TimeL[200],TimeR[200]; //下一步移动量
extern int Running;
extern int TimeCountL,TimeCountR;
//extern int LMotorV,RMotorV;
unsigned int LTimeOut[4]={0x0009,0x0003,0x0006,0x000c};//{0x000c,0x0006,0x0003,0x0009};
unsigned int RTimeOut[4]={0x0009,0x0003,0x0006,0x000c};//{0x000c,0x0006,0x0003,0x0009};//
//=========================================================================================
//IRQ1
//=========================================================================================
void IRQ1(void) __attribute__ ((ISR)); //定时器A
//1kHz中断,信号发生用
void IRQ1(void) //1kHz中断,信号发生输出
{
unsigned int D;
D=1;
if(Running==1)
{
//left节拍
if(TimeL[TimePoint]>0)
{
TimeCountL++;
if(TimeCountL>3)
{
TimeCountL=0;
// LMotorV++;
// if(LMotorV<8)
// {
// *P_TimerA_Data=0xfffb+(LMotorV>>1);
// LMotorV=8;
// }
}
//计数器减1
TimeL[TimePoint]--;
//输出节拍
D=*P_IOA_Buffer&0xfff0;
D=D|LTimeOut[TimeCountL];
*P_IOA_Data=D;
}
else if(TimeL[TimePoint]<0)
{
TimeCountL--;
if(TimeCountL<0)
{
TimeCountL=3;
// LMotorV++;
// if(LMotorV<8)
// {
// *P_TimerA_Data=0xfffb+(LMotorV>>1);
// LMotorV=8;
// }
}
//计数器加1
TimeL[TimePoint]++;
//输出节拍
D=*P_IOA_Buffer&0xfff0;
D=D|LTimeOut[TimeCountL];
*P_IOA_Data=D; //片选有效
}
//right节拍
if(TimeR[TimePoint]>0)
{
TimeCountR++;
if(TimeCountR>3)
{
TimeCountR=0;
// LMotorV++;
// if(LMotorV<8)
// {
// *P_TimerA_Data=0xfffb+(LMotorV>>1);
// LMotorV=8;
// }
}
//计数器减1
TimeR[TimePoint]--;
//输出节拍
D=*P_IOA_Buffer&0xff0f;
*P_IOA_Data=D|(RTimeOut[TimeCountR]<<4); //片选有效
}
else if(TimeR[TimePoint]<0)
{
TimeCountR--;
if(TimeCountR<0)
{
TimeCountR=3;
// LMotorV++;
// if(LMotorV<8)
// {
// *P_TimerA_Data=0xfffb+(LMotorV>>1);
// LMotorV=8;
// }
}
TimeR[TimePoint]++;
//输出节拍
D=*P_IOA_Buffer&0xff0f;
*P_IOA_Data=D|(RTimeOut[TimeCountR]<<4);
}
if(TimeL[TimePoint]==0)
{
D=*P_IOA_Buffer&0xfff0;
*P_IOA_Data=D;
}
if(TimeR[TimePoint]==0)
{
D=*P_IOA_Buffer&0xff0f;
*P_IOA_Data=D;
}
if((TimeL[TimePoint]==0)&&(TimeR[TimePoint]==0))
Running=2;
}
*P_INT_Clear=C_IRQ1_TMA; //clear INT flag
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -