📄 sch51.lst
字号:
58 =1 #ifndef TRUE
59 =1 #define FALSE 0
60 =1 #define TRUE (!FALSE)
61 =1 #endif
62 =1
63 =1 #define RETURN_NORMAL (bit) 0
64 =1 #define RETURN_ERROR (bit) 1
65 =1
C51 COMPILER V7.06 SCH51 12/25/2007 19:33:30 PAGE 6
66 =1
67 =1 //------------------------------------------------------------------
68 =1 // Interrupts
69 =1 // - see Chapter 13.
70 =1 //------------------------------------------------------------------
71 =1
72 =1 // Generic 8051/52 timer interrupts (used in most schedulers)
73 =1 #define INTERRUPT_Timer_0_Overflow 1
74 =1 #define INTERRUPT_Timer_1_Overflow 3
75 =1 #define INTERRUPT_Timer_2_Overflow 5
76 =1
77 =1 // Additional interrupts (used in shared-clock schedulers)
78 =1 #define INTERRUPT_EXTERNAL_0 0
79 =1 #define INTERRUPT_EXTERNAL_1 2
80 =1 #define INTERRUPT_UART_Rx_Tx 4
81 =1 #define INTERRUPT_CAN_c515c 17
82 =1
83 =1 //------------------------------------------------------------------
84 =1 // Error codes
85 =1 // - see Chapter 14.
86 =1 //------------------------------------------------------------------
87 =1
88 =1 #define ERROR_SCH_TOO_MANY_TASKS (1)
89 =1 #define ERROR_SCH_CANNOT_DELETE_TASK (2)
90 =1
91 =1 #define ERROR_SCH_WAITING_FOR_SLAVE_TO_ACK (3)
92 =1 #define ERROR_SCH_WAITING_FOR_START_COMMAND_FROM_MASTER (3)
93 =1
94 =1 #define ERROR_SCH_ONE_OR_MORE_SLAVES_DID_NOT_START (4)
95 =1 #define ERROR_SCH_LOST_SLAVE (5)
96 =1
97 =1 #define ERROR_SCH_CAN_BUS_ERROR (6)
98 =1
99 =1 #define ERROR_I2C_WRITE_BYTE (10)
100 =1 #define ERROR_I2C_READ_BYTE (11)
101 =1 #define ERROR_I2C_WRITE_BYTE_AT24C64 (12)
102 =1 #define ERROR_I2C_READ_BYTE_AT24C64 (13)
103 =1 #define ERROR_I2C_DS1621 (14)
104 =1
105 =1 #define ERROR_USART_TI (21)
106 =1 #define ERROR_USART_WRITE_CHAR (22)
107 =1
108 =1 #define ERROR_SPI_EXCHANGE_BYTES_TIMEOUT (31)
109 =1 #define ERROR_SPI_X25_TIMEOUT (32)
110 =1 #define ERROR_SPI_MAX1110_TIMEOUT (33)
111 =1
112 =1 #define ERROR_ADC_MAX150_TIMEOUT (44)
113 =1
114 =1 #endif
115 =1
116 =1 /*------------------------------------------------------------------*-
117 =1 ---- END OF FILE -------------------------------------------------
118 =1 -*------------------------------------------------------------------*/
33 #include "Port.h"
1 =1 /*------------------------------------------------------------------*-
2 =1
3 =1 Port.H (v1.00)
4 =1
5 =1 ------------------------------------------------------------------
6 =1
7 =1 'Port Header' (see Chap 10) for project SCC_m515 (see Chap 28)
8 =1
C51 COMPILER V7.06 SCH51 12/25/2007 19:33:30 PAGE 7
9 =1
10 =1 COPYRIGHT
11 =1 ---------
12 =1
13 =1 This code is from the book:
14 =1
15 =1 PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
16 =1 [Pearson Education, 2001; ISBN: 0-201-33138-1].
17 =1
18 =1 This code is copyright (c) 2001 by Michael J. Pont.
19 =1
20 =1 See book for copyright details and other information.
21 =1
22 =1 -*------------------------------------------------------------------*/
23 =1
24 =1 // ------ Sch51.C ----------------------------------------
25 =1
26 =1 // Comment this line out if error reporting is NOT required
27 =1 //#define SCH_REPORT_ERRORS
28 =1
29 =1 #ifdef SCH_REPORT_ERRORS
=1 // The port on which error codes will be displayed
=1 // ONLY USED IF ERRORS ARE REPORTED
=1 #define Error_port P1
=1
=1 #endif
35 =1
36 =1 // ------ SCC_M.C ------------------------------------------------
37 =1
38 =1 // *****************************************************************
39 =1 // P4.6, 4.7 used for CAN outputs
40 =1 // *****************************************************************
41 =1
42 =1 // Connect LED from +5V (etc) to these pins, via appropriate resistor
43 =1 sbit Network_error_pin = P4^4;
44 =1
45 =1 // Three pins used to report CAN bus errors
46 =1 sbit CAN_error_pin0 = P5^3;
47 =1 sbit CAN_error_pin1 = P5^4;
48 =1 sbit CAN_error_pin2 = P5^5;
49 =1
50 =1
51 =1 // ------ TLights_B.C ----------------------------------------------
52 =1
53 =1 sbit Red_light = (P4^0);
54 =1 sbit Amber_light = (P4^1);
55 =1 sbit Green_light = (P4^2);
56 =1
57 =1
58 =1 // ------ LED_Flas.C -----------------------------------------------
59 =1
60 =1 // Connect LED from +5V (etc) to this pin, via appropriate resistor
61 =1 // [see Chapter 7 for details]
62 =1 sbit LED_pin = P4^3;
63 =1
64 =1
65 =1 /*------------------------------------------------------------------*-
66 =1 ---- END OF FILE -------------------------------------------------
67 =1 -*------------------------------------------------------------------*/
68 =1
69 =1
70 =1
C51 COMPILER V7.06 SCH51 12/25/2007 19:33:30 PAGE 8
34
35 #include "Sch51.h"
1 =1 /*------------------------------------------------------------------*-
2 =1
3 =1 SCH51.H (v1.00)
4 =1
5 =1 ------------------------------------------------------------------
6 =1
7 =1 - see SCH51.C for details
8 =1
9 =1
10 =1 COPYRIGHT
11 =1 ---------
12 =1
13 =1 This code is from the book:
14 =1
15 =1 PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
16 =1 [Pearson Education, 2001; ISBN: 0-201-33138-1].
17 =1
18 =1 This code is copyright (c) 2001 by Michael J. Pont.
19 =1
20 =1 See book for copyright details and other information.
21 =1
22 =1 -*------------------------------------------------------------------*/
23 =1
24 =1 #ifndef _SCH51_H
25 =1 #define _SCH51_H
26 =1
27 =1 #include "Main.h"
1 =2 /*------------------------------------------------------------------*-
2 =2
3 =2 Main.H (v1.00)
4 =2
5 =2 ------------------------------------------------------------------
6 =2
7 =2 'Project Header' (see Chap 9) for project SCU_Cb (see Chap 27)
8 =2
9 =2
10 =2 COPYRIGHT
11 =2 ---------
12 =2
13 =2 This code is from the book:
14 =2
15 =2 PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
16 =2 [Pearson Education, 2001; ISBN: 0-201-33138-1].
17 =2
18 =2 This code is copyright (c) 2001 by Michael J. Pont.
19 =2
20 =2 See book for copyright details and other information.
21 =2
22 =2 -*------------------------------------------------------------------*/
23 =2
24 =2 #ifndef _MAIN_H
=2 #define _MAIN_H
=2
=2 //------------------------------------------------------------------
=2 // WILL NEED TO EDIT THIS SECTION FOR EVERY PROJECT
=2 //------------------------------------------------------------------
=2
=2 // Must include the appropriate microcontroller header file here
=2 #include <reg515c.h>
=2
C51 COMPILER V7.06 SCH51 12/25/2007 19:33:30 PAGE 9
=2 // Include oscillator / chip details here
=2 // (essential if generic delays / timeouts are used)
=2 // -
=2 // Oscillator / resonator frequency (in Hz) e.g. (11059200UL)
=2 #define OSC_FREQ (10000000UL)
=2
=2 // Number of oscillations per instruction (4, 6 or 12)
=2 // 12 - Original 8051 / 8052 and numerous modern versions
=2 // 6 - Various Infineon and Philips devices, etc.
=2 // 4 - Dallas, etc.
=2 //
=2 // Take care with Dallas devices
=2 // - Timers default to *12* osc ticks unless CKCON is modified
=2 // - If using generic code on a Dallas device, use 12 here
=2 #define OSC_PER_INST (6)
=2
=2 //------------------------------------------------------------------
=2 // SHOULD NOT NEED TO EDIT THE SECTIONS BELOW
=2 //------------------------------------------------------------------
=2 typedef unsigned char tByte;
=2 typedef unsigned int tWord;
=2 typedef unsigned long tLong;
=2
=2 // Misc #defines
=2 #ifndef TRUE
=2 #define FALSE 0
=2 #define TRUE (!FALSE)
=2 #endif
=2
=2 #define RETURN_NORMAL (bit) 0
=2 #define RETURN_ERROR (bit) 1
=2
=2
=2 //------------------------------------------------------------------
=2 // Interrupts
=2 // - see Chapter 13.
=2 //------------------------------------------------------------------
=2
=2 // Generic 8051/52 timer interrupts (used in most schedulers)
=2 #define INTERRUPT_Timer_0_Overflow 1
=2 #define INTERRUPT_Timer_1_Overflow 3
=2 #define INTERRUPT_Timer_2_Overflow 5
=2
=2 // Additional interrupts (used in shared-clock schedulers)
=2 #define INTERRUPT_EXTERNAL_0 0
=2 #define INTERRUPT_EXTERNAL_1 2
=2 #define INTERRUPT_UART_Rx_Tx 4
=2 #define INTERRUPT_CAN_c515c 17
=2
=2 //------------------------------------------------------------------
=2 // Error codes
=2 // - see Chapter 14.
=2 //------------------------------------------------------------------
=2
=2 #define ERROR_SCH_TOO_MANY_TASKS (1)
=2 #define ERROR_SCH_CANNOT_DELETE_TASK (2)
=2
=2 #define ERROR_SCH_WAITING_FOR_SLAVE_TO_ACK (3)
=2 #define ERROR_SCH_WAITING_FOR_START_COMMAND_FROM_MASTER (3)
=2
=2 #define ERROR_SCH_ONE_OR_MORE_SLAVES_DID_NOT_START (4)
=2 #define ERROR_SCH_LOST_SLAVE (5)
C51 COMPILER V7.06 SCH51 12/25/2007 19:33:30 PAGE 10
=2
=2 #define ERROR_SCH_CAN_BUS_ERROR (6)
=2
=2 #define ERROR_I2C_WRITE_BYTE (10)
=2 #define ERROR_I2C_READ_BYTE (11)
=2 #define ERROR_I2C_WRITE_BYTE_AT24C64 (12)
=2 #define ERROR_I2C_READ_BYTE_AT24C64 (13)
=2 #define ERROR_I2C_DS1621 (14)
=2
=2 #define ERROR_USART_TI (21)
=2 #define ERROR_USART_WRITE_CHAR (22)
=2
=2 #define ERROR_SPI_EXCHANGE_BYTES_TIMEOUT (31)
=2 #define ERROR_SPI_X25_TIMEOUT (32)
=2 #define ERROR_SPI_MAX1110_TIMEOUT (33)
=2
=2 #define ERROR_ADC_MAX150_TIMEOUT (44)
=2
=2 #endif
115 =2
116 =2 /*------------------------------------------------------------------*-
117 =2 ---- END OF FILE -------------------------------------------------
118 =2 -*------------------------------------------------------------------*/
28 =1
29 =1 // ------ Public data type declarations ----------------------------
30 =1
31 =1 // Store in DATA area, if possible, for rapid access
32 =1 // Total memory per task is 7 bytes
33 =1 typedef data struct
34 =1 {
35 =1 // Pointer to the task (must be a 'void (void)' function)
36 =1 void (code * pTask)(void);
37 =1
38 =1 // Delay (ticks) until the function will (next) be run
39 =1 // - see SCH_Add_Task() for further details
40 =1 tWord Delay;
41 =1
42 =1 // Interval (ticks) between subsequent runs.
43 =1 // - see SCH_Add_Task() for further details
44 =1 tWord Period;
45 =1
46 =1 // Incremented (by scheduler) when task is due to execute
47 =1 tByte RunMe;
48 =1 } sTask;
49 =1
50 =1 // ------ Public function prototypes -------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -