📄 main._c
字号:
///////////////////////////////////////////////////////////////
/**************************************************************
公司名称: 扬州恒博科技
模块名 : 点动型STQ执行机构主控程序
创建人 : 章俭文
日期 : 2008/08/19
功能描述: 完成对本地旋钮和远程开关量的控制功能
其它说明: 编译环境为ICCAVR V6.31A
版本 : V1.0
**************************************************************/
///////////////////////////////////////////////////////////////
#define MAIN_GLOBAL
#include "main.h"
static void InitPort(void);
static void InitDevices(void);
void main()
{
InitDevices(); //设备初始化
SCH_Add_Task(Motor, 900, 1); //电机任务,10ms循环一次
SCH_Add_Task(Alarm,901,10); //LED告警指示,100ms循环一次
SCH_Add_Task(check,1,0); //电机参数检测任务,只上电时执行一次
SCH_Start();
while(1)
{
SCH_Dispatch_Tasks();
}
}
static void InitDevices(void)
{
CLI(); //关中断
InitPort(); //IO端口初始化
StopMotor(); //设置电机关
MotorFlag = STOP; //状态标识
ControlFlag = IN_LOCAL;
limit_direction = 1;
SetLocalLed(); //本地LED指示
ClrRemoteLed();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x04; //timer interrupt sources
InitTimer1(); //调度定时器
OutWdServer(); //喂外部看门狗
}
static void InitPort(void)
{
PORTB =(1<<LOCAL_LED)|(1<<REMOTE_LED)|(1<<OUT_WD);
DDRB=((1<<LOCAL_LED)|(1<<REMOTE_LED)|(1<<OUT_WD));
PORTA =0x00;
DDRA=0x00;
PORTC =0x00;
DDRC =(0<<LOCAL_CLOSE)|(0<<LOCAL_OPEN)|(1<<MOTOR_1)|(1<<MOTOR_2);
PORTD =0x00;
DDRD = ((0<<REMOTE_STOP)|(0<<REMOTE_CLOSE)|(0<<REMOTE_OPEN))|((1<<S1|(1<<S2)));
}
void OutWdServer(void) //喂外部看门狗
{
static uchar WdFlag=1;
if (WdFlag)
{
SetOutWd();
WdFlag=0;
}
else
{
ClrOutWd();
WdFlag=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -