📄 movementcontrol_function.lst
字号:
C51 COMPILER V7.06 MOVEMENTCONTROL_FUNCTION 01/26/2008 08:30:12 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MOVEMENTCONTROL_FUNCTION
OBJECT MODULE PLACED IN .\obj\MovementControl_Function.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Source\MovementControl_Function.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\l
-st\MovementControl_Function.lst) OBJECT(.\obj\MovementControl_Function.obj)
stmt level source
1
2 #define OS_CPU_GLOBALS
3 #include "includes.h"
4 //#define OS_V_GLOBALS 1
5 //#include "movementdefine.h"
6 //Automatic Prototypes
7 #include "FunctionPrototype.h"
8 //初始化定时器0 ------ 系统时钟
9 void InitTimer0(void)
10 {
11 1 TMOD |= 0x01; //定时器0:模式1(16位定时器),仅受TR0控制
12 1 TH0 = 0xBE; //定义Tick=100次/秒(即0.02秒/次),TH,TL值与CPU的频率有关(20M)
13 1 TL0 = 0xE4; //OS_CPU_C.C中定时器中断响应也要设置,OS_CFG.H中OS_TICKS_PER_SEC也有关系
14 1 ET0=1; //允许T0中断
15 1 TR0=1;
16 1 }
17
18
19 /***********************************************************************************
20 FUNCTON NAME: SYSCLK_Init
21 FUNCTION VERSION:
22 CREATED ON:
23 FUNCTION DESCRIPTION: This routine initializes the system clock to use an 20MHz crystal as its clock sour
-ce.
24 INPUT PARAMETER: None
25 RETURN VALUE: None
26 MODIFY RECORD:
27 ***********************************************************************************/
28
29 void SYSCLK_Init (void)
30 {
31 1 int i; // delay counter
32 1
33 1 OSCXCN = 0x67; // start external oscillator with
34 1 // 22.1184MHz crystal
35 1
36 1 for (i=0; i < 256; i++) ; // XTLVLD blanking interval (>1ms)
37 1
38 1 while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
39 1
40 1 OSCICN = 0x88; // select external oscillator as SYSCLK
41 1 // source and enable missing clock
42 1 // detector
43 1 }
44
45 //------------------------------------------------------------------------------------
46
47
48 /*************************************************************************************
49 FUNCTON NAME: PORT_Init
50 FUNCTION VERSION:
51 CREATED ON:
52 FUNCTION DESCRIPTION: intialize the port input and output
53 INPUT PARAMETER:None
C51 COMPILER V7.06 MOVEMENTCONTROL_FUNCTION 01/26/2008 08:30:12 PAGE 2
54 RETURN VALUE:None
55 MODIFY RECORD:
56 *************************************************************************************/
57 void PORT_Init(void)
58 {
59 1
60 1 }
61 //------------------------------------------------------------------------------------
62
63
64
65
66 /*********************************************************************************************************
-*********
67 FUNCTON NAME : init_devices
68 FUNCTION VERSION :
69 CREATED ON :
70 FUNCTION DESCRIPTION : 设置硬件寄存器的初始值。
71 初始化定时器0,作为ucOS-II的系统时钟。
72 还有其他的与硬件相关的初始化也可以放在这里。
73 INPUT PARAMETER : None
74 RETURN VALUE : None
75 MODIFY RECORD :
76 **********************************************************************************************************
-********/
77
78
79 void Hardware_Init(void)
80 {
81 1 WDTCN = 0xde; //禁止看门狗
82 1 WDTCN = 0xad;
83 1
84 1 SYSCLK_Init ();
85 1 PORT_Init ();
86 1
87 1 XBR2 = 0x40; // Enable crossbar and weak pull-ups
88 1 P1MDOUT = 0xFF;
89 1 }
90
91 //--------------------------------------------------------------------------------------------------------
---------
92
93
94 /*********************************************************************************************************
-*********
95 FUNCTON NAME : Table_TilitStatus
96 FUNCTION VERSION :
97 CREATED ON :
98 FUNCTION DESCRIPTION :
99 INPUT PARAMETER : None
100 RETURN VALUE : None
101 MODIFY RECORD :
102 REMARK : _________________
103 断开延时定时器: Control Signal: _____| |________________
104 ________________________
105 Timer Flag : _____| |_________
106 **********************************************************************************************************
-********/
107 void Table_TilitStatus(void)
108 {
109 1 //19--
110 1 //注:Q_正倾 上升沿 || Q_负倾 上升沿
C51 COMPILER V7.06 MOVEMENTCONTROL_FUNCTION 01/26/2008 08:30:12 PAGE 3
111 1 // --->> 开启 床体倾斜 断开延时 定时器
112 1 if(IS_POS_EDGE(Output_1,Q_T_TilitPOS) || IS_POS_EDGE(Output_1,Q_T_TilitNEG))
113 1 {
114 2 SOFT_TIMER_RUN(Tilit_Timer,TOF,1000);
115 2 }
116 1 //注:Q_正倾 下降沿 || Q_负倾 下降沿
117 1 // --->> 停止 床体倾斜 断开延时 定时器 (使其开始计时1S)
118 1 if(IS_NEG_EDGE(Output_1,Q_T_TilitPOS) || IS_NEG_EDGE(Output_1,Q_T_TilitNEG))
119 1 {
120 2 SOFT_TIMER_STOP(Tilit_Timer);
121 2 }
122 1
123 1 //21--从正90度到正角度区
124 1 //注:I_正90度限位 下降沿
125 1 // --->> 置位A_正角度区域 、 清位A_水平区域 、 清位A_负角度区域
126 1 if(IS_NEG_EDGE(Tilit_Switch,I_T_P90))
127 1 {
128 2 SET_STATUS(Tilit_Switch,A_Table_POS);
129 2 CLR_STATUS(Tilit_Switch,A_Table_ZERO);
130 2 CLR_STATUS(Tilit_Switch,A_Table_NEG);
131 2 }
132 1
133 1 //22--水平位置位(抗齿轮间隙扰动) A_Table_POS(正角度区域标志)A_Table_NEG(负角度区域标志)条件避免
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -