📄 test.c
字号:
#include <stdio.h>
#include "MSC1210.h"
#include "task_stepm.h"
#include "task_adc.h"
static unsigned char i=0;
code unsigned char tab[8]={0xEF,0xCF,0xDF,0x9F,0xBF,0x3F,0x7F,0x6F};
code unsigned char tab1[8]={0x1F,0x3F,0x2F,0x6F,0x4F,0xCF,0x8F,0x9F};
#define d_up 0
#define d_down 1
bit direction = d_up;
void stepmotorctl(void)
{
P1 = tab1[i];
if (direction){
if (7==i++) i=0;
}
else {
if (0==i--) i=7;
}
}
void delay1(unsigned long del)
{
unsigned long i;
for (i=0;i<del;i++)
{}
}
void main(void)
{
#define stepms 80UL
unsigned int xcenter,ycenter,xx,yy;
unsigned char tmp;
initMSC1210();
put_string("MSC1210 ADC Test");
putcr();
xcenter = ADC_rocker(0);
xcenter = ADC_rocker(0);
ycenter = ADC_rocker(1);
ycenter = ADC_rocker(1);
while (1) {
delay1(1000);
xx = ADC_rocker(0);
yy = ADC_rocker(1);
if (xx>=xcenter) {
direction = d_up;
tmp = (stepms-(stepms*(xx-xcenter)/(0x7FFF)));
tx_hex(xx>>8);
tx_hex(xx);
putcr();
tx_hex(xcenter>>8);
putspace1();
tx_hex(tmp);
putcr();
}
else if (xx<xcenter) {
direction = d_down;
tmp = (stepms-(stepms*(xcenter-xx)/(0x7FFF)));
tx_hex(xx>>8);
tx_hex(xx);
putcr();
tx_hex(xcenter>>8);
putspace1();
tx_hex(tmp);
putcr();
}
if (tmp>(stepms-2)) {
EAI = 0;
P1 = 0xFF;
}
else {
MSINT = tmp;
EAI = 1;
putok();
putcr();
}
}
while(1){
delay1(1000);
xx = ADC_rocker(0);
tx_hex(xx>>8);
tx_hex(xx);
putok();
yy = ADC_rocker(1);
tx_hex(yy>>8);
tx_hex(yy);
putcr();
// printf("%04X,%04X\n",yy,xx);
}
#undef stepms
}//main
void AUXinterrupts(void) interrupt 6 using 1 //中断服务程序
{
switch(PAI) {
case 5: //处理毫秒定时器中断
MSINT = MSINT;
stepmotorctl();
break;
case 6: //处理AD转换中断
// result = bipolar();
break;
case 7: //求和寄存器中断
break;
case 8: //处理秒中断
// AD_done = SECINT;
break;
default:
// AD_done = 0;
break;
}//switch
AI = 0; //清除辅助中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -