#include <stdio.h>#include "mscbemb.h"#include "Devices/Time.h"#include "Protocols/SmaRTC.h"Defines | |
| #define | ALL_RESET 0xF |
Functions | |
| unsigned char | user_func (unsigned char *data_in, unsigned char *data_out) |
| unsigned char | user_read (unsigned char index) |
| void | user_write (unsigned char index) reentrant |
| void | PulseReset (unsigned char ch) |
| void | user_init (unsigned char init) |
| void | user_loop (void) |
Variables | |
| unsigned char idata | _n_sub_addr = 1 |
| char code | node_name [] = "P0DPS" |
| char idata | svn_rev_code [] = "$Rev: 959 $" |
| struct { | |
| unsigned char error | |
| unsigned char control | |
| unsigned char status | |
| unsigned char active | |
| unsigned char v5mon | |
| unsigned char v15mon | |
| unsigned long mytime | |
| char date [24] | |
| } | user_data |
| MSCB_INFO_VAR code | vars [] |
| MSCB_INFO_VAR * | variables = vars |
| sbit | RESET_1 = P1 ^ 0 |
| sbit | RESET_2 = P1 ^ 1 |
| sbit | RESET_3 = P1 ^ 2 |
| sbit | RESET_4 = P1 ^ 3 |
| sbit | V5MON_1 = P1 ^ 4 |
| sbit | V5MON_2 = P1 ^ 5 |
| sbit | V5MON_3 = P1 ^ 6 |
| sbit | V5MON_4 = P1 ^ 7 |
| sbit | V15MON_1 = P2 ^ 0 |
| sbit | V15MON_2 = P2 ^ 1 |
| sbit | V15MON_3 = P2 ^ 2 |
| sbit | V15MON_4 = P2 ^ 3 |
| sbit | ACTIVE_1 = P2 ^ 4 |
| sbit | ACTIVE_2 = P2 ^ 5 |
| sbit | ACTIVE_3 = P2 ^ 6 |
| sbit | ACTIVE_4 = P2 ^ 7 |
| sbit | DATA_OEn = P0 ^ 3 |
| sbit | CNTRL_OEn = P0 ^ 0 |
| SYS_INFO | sys_info |
| #define ALL_RESET 0xF |
| void PulseReset | ( | unsigned char | ch | ) |
| unsigned char user_func | ( | unsigned char * | data_in, | |
| unsigned char * | data_out | |||
| ) |
| void user_init | ( | unsigned char | init | ) |
00109 { 00110 char xdata i; 00111 00112 /* Format the SVN and store this code SVN revision into the system */ 00113 for (i = 0; i < 4; i++) { 00114 if (svn_rev_code[6 + i] < 48) { 00115 svn_rev_code[6 + i] = '0'; 00116 } 00117 } 00118 sys_info.svn_revision = (svn_rev_code[6] - '0') * 1000 + 00119 (svn_rev_code[7] - '0') * 100 + 00120 (svn_rev_code[8] - '0') * 10 + (svn_rev_code[9] - '0'); 00121 00122 if (init); 00123 00124 // Group setting 00125 sys_info.group_addr = 600; 00126 00127 00128 // Set Output Port in PP 00129 P1MDOUT |= 0x0F; 00130 RESET_1 = RESET_2 = RESET_3 = RESET_4 = 0; 00131 00132 // Set Input V5Monx port in OD 00133 P1MDOUT &= ~0xF0; 00134 V5MON_1 = V5MON_2 = V5MON_3 = V5MON_4 = 0; 00135 00136 // Set Input V15Monx port in OD 00137 P2MDOUT &= ~0x0F; 00138 V15MON_1 = V15MON_2 = V15MON_3 = V15MON_4 = 0; 00139 00140 // Set Input Activex port in OD 00141 P2MDOUT &= ~0xF0; 00142 ACTIVE_1 = ACTIVE_2 = ACTIVE_3 = ACTIVE_4 = 0; 00143 00144 // Enable Buffers 00145 P0MDOUT &= ~0x09; // Set OD for Enable 00146 DATA_OEn = CNTRL_OEn = 0; // Enable buffers 00147 00148 // Initialize registers 00149 user_data.error = 0; 00150 user_data.control = 0; 00151 user_data.status = 0; 00152 user_data.active = 0; 00153 user_data.v5mon = 0; 00154 user_data.v15mon = 0; 00155 00156 // Init internal RTClock 00157 SmaRTCInit(); 00158 00159 if (init) { 00160 } 00161 }
| void user_loop | ( | void | ) |
00202 { 00203 unsigned char v5mon, v15mon, active; 00204 unsigned long int ltime; 00205 char xdata mydate[12]; 00206 00207 // Read Monitors 00208 v5mon = ((P1 & 0xF0) >> 4); 00209 v15mon = (P2 & 0x0F); 00210 active = ((P2 & 0xF0) >> 4); 00211 00212 // Publish results 00213 DISABLE_INTERRUPTS; 00214 user_data.v5mon = v5mon; 00215 user_data.v15mon = v15mon; 00216 user_data.active = active; 00217 ENABLE_INTERRUPTS; 00218 00219 // Get RTClock 00220 ltime = SmaRTCRead(); 00221 user_data.mytime = ltime; 00222 ascTime(&mydate[0], ltime); 00223 sprintf(user_data.date, "%s", mydate); 00224 00225 // Slowdown a bit 00226 delay_ms(250); 00227 00228 // Show some action 00229 led_blink(1, 1, 250); 00230 }
| void user_write | ( | unsigned char | index | ) |
00387 { 00388 rCSR = user_data.status; 00389 if (index == IDXCTL) { 00390 rCTL = user_data.control; 00391 } // IDXCTL 00392 00393 // 00394 //-- EE Page function 00395 if (index == IDXEEP_CTL) EEP_CTR_Flag = 1; 00396 }
| unsigned char idata _n_sub_addr = 1 |
| unsigned char active |
| unsigned char control |
| char date[24] |
| unsigned char error |
| unsigned long mytime |
| char code node_name[] = "P0DPS" |
| unsigned char status |
| char idata svn_rev_code[] = "$Rev: 959 $" |
| struct { ... } user_data |
| unsigned char v15mon |
| unsigned char v5mon |
| MSCB_INFO_VAR code vars[] |
Initial value:
{
1, UNIT_BYTE, 0, 0, 0, "Error", &user_data.error,
1, UNIT_BYTE, 0, 0, 0, "Control", &user_data.control,
1, UNIT_BYTE, 0, 0, 0, "Status", &user_data.status,
1, UNIT_BYTE, 0, 0, 0, "Active", &user_data.active,
1, UNIT_BYTE, 0, 0, 0, "V5_Mon", &user_data.v5mon,
1, UNIT_BYTE, 0, 0, 0, "V15_Mon", &user_data.v15mon,
4, UNIT_BYTE, 0, 0, MSCBF_HIDDEN, "BinDate", &user_data.mytime,
24, UNIT_STRING, 0, 0, MSCBF_HIDDEN, "Date", &user_data.date[0],
0
}
1.4.7