📄 acqact.c
字号:
//acq.c
//
#include "AppDefine.h"
unsigned int Val_Mytime, Val_Uptime, Val_ad, Val_Actdata, Val_Actdir;
unsigned char Val_Mystatus;
unsigned char COMMFlag; //
unsigned char RUNflag; //
unsigned char my,ch;
/****************************************************************************************/
/*一个nop在12MHZ下是1US,即1000表示1ms,实际上还有循环时间,所以不太精确.*/
void delay(unsigned int l_time)
{
unsigned int data lp;
for( lp=0;lp<l_time;lp++)
_nop_();
}
//wait function
void wait (void)
{
unsigned int ii;
for (ii = 0; ii < 30000; ii++) {
_nop_();
}
}
void INT_ON (void)
{
EA = 1;
}
void INT_OFF (void)
{
EA = 0;
}
void Pragm_Do(void)
{
switch(RUNflag)
{
case RUN_NO_FLAG: //LED_FLG
my++;
if(my % 100 ==0)
LED_FLG = 1;
else
LED_FLG = 0;
break;
case RUN_RESET_FLAG://
//Val_Mytime = 0;
RUNflag = RUN_WAIT_FLAG;
break;
case RUN_WAIT_FLAG: //
LED_RUN = 1;
break;
case RUN_ACQ_FLAG: //采集程序
Val_ad = AD_result();
if(Val_ad)
Val_Mystatus=0;
LED_ERR = 0;
my++;
if(my % 200 ==0)
LED_RUN = 1;
else
LED_RUN = 0;
break;
case RUN_ACT_FLAG: //执行程序(电机)
Val_Mystatus=PWM_status();
//Uart_SendChar(Val_Mystatus);
LED_ERR = 0;
my++;
if(my % 200 ==0)
LED_RUN = 1;
else
LED_RUN = 0;
break;
}
}
void main (void)
{
//给一点花时间进行复位串行口编程
P0 = 0x00; wait(); P0 = 0xff; wait();
P0 = 0x00; wait(); P0 = 0xff; wait();
P0 = 0x00; wait(); P0 = 0xff; wait();
P0 = 0x00;
//initial variable
COMMFlag = CMD_NO_FLAG;
RUNflag = RUN_NO_FLAG;
//读24C01的配置参数
ch = xbRead24(0x1A);//本机地址
ch = xbRead24(0x1B);//波特率代码
ch = xbRead24(0x1E);//层数,地址最大
Uart_Init(BAUD_SMOD0, BAUD_9600);
Mytime2_init();
PWM_init();
INT_ON();
delay(1);
Uart_SendChar('o');
Uart_SendChar('k');
my=0;
while(1)
{
delay(200);
Uart_Do();
Pragm_Do();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -