/[PAMELA software]/quicklook/dataToXML/Data/compilationInfo/src/INFN/KHB_Driver_INFN.c
ViewVC logotype

Contents of /quicklook/dataToXML/Data/compilationInfo/src/INFN/KHB_Driver_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch: MAIN
CVS Tags: dataToXML1_02/01, dataToXML1_02/00, dataToXML1_03/00, dataToXML1_03/01, dataToXML1_00/00, firstRelease, dataToXML1_01/00, dataToXML1_03_02, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
These program extract in an XML format the info contained into the ROOT files generated by YODA from the PAMELA data. To visualize the XML files in a more human readable format a collection of XSL files are given in the Data subfolder.

1 /****************************************************************************
2 * F i l e D a t a
3 * $Id: KHB_Driver_INFN.c,v 1.73 2005/03/20 18:20:32 sebastiani Exp $
4 * $Revision: 1.73 $
5 * $Date: 2005/03/20 18:20:32 $
6 * $RCSfile: KHB_Driver_INFN.c,v $
7 *
8 ****************************************************************************
9 * S W D e v e l o p m e n t E n v i r o n m e n t
10 *
11 * $Author: sebastiani $
12 * :
13 ****************************************************************************
14 * U p d a t i n g
15
16 * $Log: KHB_Driver_INFN.c,v $
17 * Revision 1.73 2005/03/20 18:20:32 sebastiani
18 * PRH_VAR_RM_IDAQONLYACQ cancelled
19 *
20 * Revision 1.72 2005/02/24 16:51:19 sebastiani
21 * more comments in logs
22 *
23 * Revision 1.71 2005/02/21 08:58:29 sebastiani
24 * all log comments completed
25 *
26 * Revision 1.70 2005/02/19 10:19:38 sebastiani
27 * ALM_S4_CALIB_00_HARD,ALM_S4_CALIB_00_SOFT,ALM_S4_128TRIGGER_0 added
28 *
29 * Revision 1.69 2005/01/26 18:46:48 sebastiani
30 * new bug fixes for WS
31 *
32 * Revision 1.68 2005/01/07 15:41:51 sebastiani
33 * fix alarm precedure
34 * add exp 64 delay patch
35 * removed unused sleep
36 *
37 * Revision 1.67 2004/12/17 12:46:40 faber
38 * ALARM REGISTER aligned to be 32 bit. memory aling core dump (should be) fixed
39 *
40 * Revision 1.66 2004/12/15 09:21:33 sebastiani
41 * KHB_ALARM_MASK_ALL introduced
42 *
43 * Revision 1.65 2004/11/19 15:14:52 sebastiani
44 * PRH_EXTERN_{VAR,ARR,TABLE} removed and put them on the autogenerated parameter heeader file
45 *
46 * Revision 1.64 2004/11/18 16:02:34 sebastiani
47 * GAS/TRD removed
48 *
49 * Revision 1.63 2004/11/05 09:36:35 sebastiani
50 * first version of the PM state machine. tried but not deeply tested
51 *
52 * Revision 1.62 2004/10/19 16:59:27 sebastiani
53 * first text for IPM/ciclyc
54 *
55 * Revision 1.61 2004/10/08 15:57:51 sebastiani
56 * fix power hot cold variables settings.
57 * fix ws
58 * added function to set khb hot or cold
59 *
60 * Revision 1.60 2004/10/04 08:25:06 sebastiani
61 * *** empty log message ***
62 *
63 * Revision 1.59 2004/09/17 15:01:00 faber
64 * LU_INFN_LOG flags fixing
65 *
66 * Revision 1.58 2004/09/14 13:05:37 alfarano
67 * update TM constants and definitions
68 *
69 * Revision 1.57 2004/08/27 13:30:39 alfarano
70 * cvs header
71 *
72 * Revision 1.1 2003/10/03 16:12:26 faber
73 * *** empty log message ***
74 *
75 *
76 *****************************************************************************/
77 /*============================= Include File ================================*/
78
79 #include <src/INFN/LU_SourceFileID_INFN.h>
80 #define __FILEID__ _KHB_Driver_INFN__c
81 #include <src/INFN/PRH_ParamHandler_INFN.h>
82 #include <src/INFN/LU_LogUtility_INFN.h>
83 #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
84 LU_DECL_MASK();
85
86 #include <src/TM_TCManager/TMTCManager/TM_TMTCManager_p.h>
87 #include <src/INFN/CM_Common_INFN.h>
88 #include <src/INFN/KHB_Driver_INFN.h>
89
90
91 /*============================== global variables ==========================*/
92
93 /* this variable contains which serial line is enabled:
94 SERIAL_LINE_1 or SERIAL_LINE_2
95 */
96 static BYTE KHB_SerialLine;
97
98 /* this variable contains which DBL line is enabled */
99 static UINT32 KHB_DBC_Status;
100
101 /* Code for serial write and read operation from KHB and DBC lines */
102
103 static KHB_ADDR_TYPE KHB_SerialAddress[2]={{TM_KHB_HOT,TM_KHB_DS_HOT,KHB_DBC0_HI_1,KHB_DBC1_HI_1},
104 {TM_KHB_COLD,TM_KHB_DS_COLD,KHB_DBC0_HI_2,KHB_DBC1_HI_2}};
105
106 /*============================ Functions ====================================*/
107
108 status_code KHB_Init()
109 {
110 KHB_SetSerialLine(CM_HOT);
111 KHB_DBC_Status = 0;
112
113 return SUCCESSFUL;
114 }
115
116 status_code KHB_InitBoard(/*XX*/)
117 {
118 status_code status;
119 UINT16 reg;
120
121 //KHB_SetSerialLine(XX);
122
123 status = KHB_HWReset();
124
125 // some delay here ?
126
127 if (status== CM_RC_SUCCESSFUL)
128 {
129 status = KHB_UpdateMaskRegister(KHB_ALARM_MASK_NONE,KHB_PRESET);
130 if(status == CM_RC_SUCCESSFUL) {
131 status=KHB_ReadStatusRegister(&reg);
132 if(status != CM_RC_SUCCESSFUL || ((reg & KHB_STATUS_MASK) != KHB_STATUS_VALUE) ) {
133 /*@LOG InitBoard: status register not the same as written - khb_status_reg */
134 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,reg);
135 status= CM_RC_KHB_ERROR;
136 }
137 }
138 }
139
140 #if 0
141 /* old code: no special reason to work on mask register */
142 if (!status)
143 {
144 status = KHB_UpdateMaskRegister(KHB_START_MASK,KHB_PRESET);
145
146 if (!status)
147 {
148 status = KHB_ReadMaskRegister(&reg);
149
150 if(!status)
151 if (reg != KHB_START_MASK)
152 status = CM_RC_INTERNAL_ERR;
153 }
154 }
155
156 if (!status)
157 status = KHB_UpdateMaskRegister(KHB_MASK_NONE,KHB_PRESET);
158 #endif
159 /*@LOG InitBoard trace - status */
160 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
161 return(status);
162 }
163
164 /*****************************************************************************/
165 /*
166 * KHB_SetSerialLine
167 *
168 * Selects the serial line to use
169 *
170 * Input parameters:
171 * line = selects SERIAL_LINE_1 or SERIAL_LINE_2
172 *
173 * Output parameters: status_code
174 *
175 */
176 /*****************************************************************************/
177
178 status_code KHB_SetSerialLine(CM_HOT_COLD hl)
179 {
180 if(hl == CM_HOT)
181 KHB_SerialLine = KHB_SERIAL_HOT;
182 else
183 KHB_SerialLine = KHB_SERIAL_COLD;
184 return(SUCCESSFUL);
185 }
186
187 /*****************************************************************************/
188 /*
189 * KHB_GetSerialLine
190 *
191 * Selects the serial line to use
192 *
193 * Input parameters:
194 * pointer to khb hot cold status (selected by SERIAL_LINE_1 or SERIAL_LINE_2)
195 *
196 * Output parameters: status_code
197 *
198 */
199 /*****************************************************************************/
200
201 status_code KHB_GetSerialLine(CM_HOT_COLD *hl)
202 {
203 if(hl){
204 if(KHB_SerialLine == KHB_SERIAL_HOT)
205 *hl = CM_HOT;
206 else
207 *hl = CM_COLD;
208 }
209 return(SUCCESSFUL);
210 }
211
212
213 /*****************************************************************************/
214 /*
215 * KHB_SendFECommand
216 *
217 * Sends a write command to KHB
218 *
219 * Input parameters:
220 * link = selects which link to send the commnand
221 * counter = sets how many words will follow the command
222 * expected = sets how many words are expected from reply
223 *
224 *
225 * Output parameters: status_code
226 *
227 */
228 /*****************************************************************************/
229
230 status_code KHB_SendFECommand(BYTE link,BYTE counter,BYTE expected,UINT16 *buffer)
231 {
232 int i;
233 status_code status;
234 KHB_COMMAND_TYPE KHB_Command;
235 TM_TC_ML com_to_send[4];
236
237 KHB_Command.link = link;
238 KHB_Command.clear = 0;
239 KHB_Command.output = NULL;
240 KHB_Command.counter_command = counter+1; // including end pattern
241 KHB_Command.counter_answer = expected;
242
243 com_to_send[0].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
244 com_to_send[0].Value = (UINT32)*(UINT16*)&KHB_Command;
245
246 for (i=1; i < counter+1; i++)
247 {
248 com_to_send[i].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
249 com_to_send[i].Value = (UINT32)*buffer++;
250 }
251
252 com_to_send[i].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
253 com_to_send[i].Value = KHB_END_PATTERN;
254
255 // status = TM_piSendTC(KHB_SerialAddress[KHB_SerialLine].writeAddr,*(UINT16*)&KHB_Command);
256 // if (!status)
257 status = TM_piSendMLTC(com_to_send,counter+2);
258
259 return(status);
260 }
261
262
263 /*****************************************************************************/
264 /*
265 * KHB_WriteMaskRegister
266 *
267 * Sends a write command to KHB
268 *
269 * Input parameters: maskvalue = set the mask value to write
270 *
271 *
272 * Output parameters: status_code
273 *
274 */
275 /*****************************************************************************/
276
277 status_code KHB_WriteMaskRegister(UINT16 mask_reg)
278 {
279 int i;
280 status_code status;
281 KHB_COMMAND_TYPE KHB_Command;
282 TM_TC_ML com_to_send[3];
283
284 KHB_Command.link = KHB_INTERNAL_LINK;
285 KHB_Command.clear = 0;
286 KHB_Command.counter_command = 2;
287 KHB_Command.counter_answer = NULL;
288 KHB_Command.output = NULL;
289
290 for(i=0; i < 3; i++)
291 com_to_send[i].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
292
293 com_to_send[0].Value = *(UINT16*)&KHB_Command;
294 com_to_send[1].Value = mask_reg;
295 com_to_send[2].Value = KHB_END_PATTERN;
296
297 status = TM_piSendMLTC(com_to_send,3);
298 return(status);
299 }
300
301
302 /*****************************************************************************/
303 /*
304 * KHB_RequestKHBReg
305 *
306 * Sends a write command to KHB
307 *
308 * Input parameters:
309 * output = sets which register to read
310 * expected = sets how many words are expected from reply in case
311 * object is data buffer
312 *
313 *
314 * Output parameters: status_code
315 *
316 */
317 /*****************************************************************************/
318
319 status_code KHB_RequestKHBReg(BYTE output,BYTE expected)
320 {
321 status_code status;
322 KHB_COMMAND_TYPE KHB_Command;
323 TM_TC_ML com_to_send[2];
324
325 KHB_Command.link = NULL;
326 KHB_Command.clear = 0;
327 KHB_Command.output = output;
328 KHB_Command.counter_command = 1;
329 KHB_Command.counter_answer = expected;
330
331 com_to_send[0].Code = com_to_send[1].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
332 com_to_send[0].Value = *(UINT16*)&KHB_Command;
333 com_to_send[1].Value = KHB_END_PATTERN;
334
335 status = TM_piSendMLTC(com_to_send,2);
336 return(status);
337 }
338
339
340 /*****************************************************************************/
341 /*
342 * KHB_ReadMaskRegister
343 *
344 * read mask register
345 *
346 * Input parameters: none
347 *
348 * Output parameters: status_code
349 *
350 */
351 /*****************************************************************************/
352
353 status_code KHB_ReadMaskRegister(UINT16 *value)
354 {
355 status_code status;
356 UINT16 temp;
357 static int sleep0=2,sleep1=1;
358
359 if(sleep0)
360 OS_piTaskSuspend (sleep0);
361
362 status = KHB_RequestKHBReg(MASK_REG,0);
363
364 if (!status)
365 {
366 status = KHB_SetKHBMode(READ_OBJ_MODE);
367
368 if(sleep1)
369 OS_piTaskSuspend (sleep1);
370
371 if (!status)
372 {
373 status = TM_piGetKHBValue(KHB_SerialAddress[KHB_SerialLine].readAddr,&temp,1);
374 if (!status)
375 {
376 *value = temp;
377 status = KHB_SetKHBMode(READ_STATUS_MODE);
378 }
379 }
380 }
381 return(status);
382 }
383
384 /*****************************************************************************/
385 /*
386 * KHB_UpdateMaskRegister
387 *
388 * update mask register
389 *
390 * Input parameters: none
391 *
392 * Output parameters: status_code
393 *
394 */
395 /*****************************************************************************/
396
397 status_code KHB_UpdateMaskRegister(UINT16 bitmask,BYTE action)
398 {
399 UINT16 KHB_MaskRegister;
400 status_code status;
401
402 status = KHB_ReadMaskRegister(&KHB_MaskRegister);
403
404 switch (action)
405 {
406 case KHB_BITSET :
407 KHB_MaskRegister |= bitmask;
408 break;
409 case KHB_BITRESET :
410 KHB_MaskRegister &= ~bitmask;
411 break;
412 case KHB_PRESET :
413 KHB_MaskRegister = bitmask;
414 break;
415 }
416
417 if (!status)
418 status = KHB_WriteMaskRegister(KHB_MaskRegister);
419
420 return(status);
421 }
422
423
424 /*****************************************************************************/
425 /*
426 * KHB_ReadStatusRegister
427 *
428 * Read the status register (provided that DBC1 is high)
429 *
430 * Input parameters: status_reg will contain the status register read
431 *
432 * Output parameters: status_code
433 *
434 */
435 /*****************************************************************************/
436
437 status_code KHB_ReadStatusRegister(UINT16 *status_reg)
438 {
439 status_code status;
440
441 status = KHB_SetKHBMode(READ_STATUS_MODE);
442
443 if (!status) {
444 status = KHB_ReadCurrentVal(status_reg);
445 *status_reg ^= KHB_STS_XORED_BITS;
446 /* apply low level mask to disable definitively dummy alarms: */
447 *status_reg &= ~((UINT16)PRH_VAR_KHB_STATUS_REG_LOW_LEVEL_MASK);
448 }
449
450 return(status);
451 }
452
453 /*****************************************************************************/
454 /*
455 * KHB_ReadAlarmRegister
456 *
457 * Read the alarm register
458 *
459 * Input parameters : alarm32 will contain two words (16 bit) from the alarm
460 * registers:
461 * the higher 16 bit will contain all errors occured
462 * the lower 16 bit will contain the first error occured
463 *
464 * Output parameters: status_code
465 *
466 */
467 /*****************************************************************************/
468
469 status_code KHB_ReadAlarmRegister(UINT32 *alarm)
470 {
471 status_code status,modestatus=CM_RC_SUCCESSFUL;
472 UINT16 tmp;
473
474 static int sleep2=1;
475
476 status = KHB_SetKHBMode(READ_OBJ_MODE);
477
478 if (!status)
479 {
480 status = KHB_RequestKHBReg(ALARM_REG,0);
481
482 if (!status)
483 {
484 status = KHB_ReadCurrentVal(&tmp);
485 if (!status)
486 {
487 *alarm = (( (tmp & KHB_ALARM_MASK_ALL ) ^ KHB_ALARM_XORED_BITS)<<16);
488 if(sleep2)
489 OS_piTaskSuspend (sleep2);
490 status = KHB_ReadCurrentVal(&tmp);
491 if (!status)
492 {
493 *alarm |= (tmp & KHB_ALARM_MASK_ALL) ^ KHB_ALARM_XORED_BITS;
494 /* apply low level mask to disable definitively dummy alarms: */
495 *alarm &= ~((UINT16)PRH_VAR_KHB_ALARM_REG_LOW_LEVEL_MASK);
496 }
497 }
498 }
499 modestatus = KHB_SetKHBMode(READ_STATUS_MODE);
500 }
501 return ((status!=CM_RC_SUCCESSFUL) ? status : modestatus);
502 }
503
504 /*****************************************************************************/
505 /*
506 * KHB_ReadBuffer
507 *
508 * Request for buffer
509 *
510 * Input parameters: expected = word expected to receive
511 *
512 *
513 * Output parameters: status_code
514 *
515 */
516 /*****************************************************************************/
517
518 status_code KHB_ReadBuffer(BYTE expected,UINT16 *buffer)
519 {
520 status_code status;
521 UINT16 status_reg;
522
523 status = KHB_SetKHBMode(READ_OBJ_MODE);
524
525 if (!status)
526 status = KHB_RequestKHBReg(BUFFER,0);
527
528 if (!status)
529 status = TM_piGetKHBValue(KHB_SerialAddress[KHB_SerialLine].readAddr,buffer,expected);
530
531 status = KHB_SetKHBMode(READ_STATUS_MODE);
532
533 return(status);
534 }
535
536 /*****************************************************************************/
537 /*
538 * KHB_Clear
539 *
540 * Clear the KHB buffer
541 *
542 * Input parameters: none
543 *
544 *
545 * Output parameters: status_code
546 *
547 */
548 /*****************************************************************************/
549
550 status_code KHB_SendClearFE()
551 {
552 status_code status;
553 KHB_COMMAND_TYPE KHB_Command;
554 TM_TC_ML com_to_send[2];
555
556 KHB_Command.link = NULL;
557 KHB_Command.clear = 1;
558 KHB_Command.output = NULL;
559 KHB_Command.counter_command = 1;
560 KHB_Command.counter_answer = NULL;
561
562 com_to_send[0].Code = com_to_send[1].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
563 com_to_send[0].Value = *(UINT16*)&KHB_Command;
564 com_to_send[1].Value = KHB_END_PATTERN;
565
566 status = TM_piSendMLTC(com_to_send,2);
567 return(status);
568 }
569
570 status_code KHB_ReadCurrentVal(UINT16 *value)
571 {
572 status_code status;
573 UINT16 tmp;
574
575 status = TM_piGetKHBValue(KHB_SerialAddress[KHB_SerialLine].readAddr,&tmp,1);
576 *value = tmp;
577 return(status);
578 }
579
580 status_code KHB_SendTrigger()
581 {
582 status_code status;
583 KHB_COMMAND_TYPE KHB_Command;
584 TM_TC_ML com_to_send[2];
585
586 KHB_Command.link = NULL;
587 KHB_Command.clear = 1;
588 KHB_Command.output = NULL;
589 KHB_Command.counter_command = 1;
590 KHB_Command.counter_answer = NULL;
591 KHB_Command.trigger = 0xa;
592
593 com_to_send[0].Code = com_to_send[1].Code = KHB_SerialAddress[KHB_SerialLine].writeAddr;
594 com_to_send[0].Value = *(UINT16*)&KHB_Command;
595 com_to_send[1].Value = KHB_END_PATTERN;
596
597 status = TM_piSendMLTC(com_to_send,2);
598 return(status);
599 }
600
601 /*****************************************************************************/
602 /*
603 * KHB_HWReset
604 *
605 * Reset the KHB
606 *
607 * Input parameters: none
608 *
609 *
610 * Output parameters: status_code
611 *
612 */
613 /*****************************************************************************/
614
615 status_code KHB_HWReset()
616 {
617 status_code status;
618
619 // static int sleep0=1;
620 // if(sleep0)
621 // OS_piTaskSuspend (sleep0);
622
623
624 KHB_SetDBC0(KHB_BITRESET);
625
626 status = TM_piSendTC(TM_DBL_CMD,KHB_DBC_Status);
627
628 if (!status)
629 {
630 KHB_SetDBC0(KHB_BITSET);
631 KHB_SetDBC1(KHB_BITSET);
632 // if(sleep0)
633 // OS_piTaskSuspend (sleep0);
634 status = TM_piSendTC(TM_DBL_CMD,KHB_DBC_Status);
635 }
636 return(status);
637 }
638
639 status_code KHB_SetKHBMode(KHB_MODE mode)
640 {
641 status_code status;
642
643 if (mode == READ_STATUS_MODE)
644 KHB_SetDBC1(KHB_BITSET);
645 else
646 KHB_SetDBC1(KHB_BITRESET);
647
648 status = TM_piSendTC(TM_DBL_CMD,KHB_DBC_Status);
649
650 return(status);
651 }
652
653 status_code KHB_SetDBC0(BYTE status)
654 {
655 if (status == KHB_BITSET)
656 KHB_DBC_Status |= KHB_SerialAddress[KHB_SerialLine].dbc0hi;
657 else
658 KHB_DBC_Status &= ~KHB_SerialAddress[KHB_SerialLine].dbc0hi;
659
660 return CM_RC_SUCCESSFUL;
661 }
662
663 status_code KHB_SetDBC1(BYTE status)
664 {
665 if (status == KHB_BITSET)
666 KHB_DBC_Status |= KHB_SerialAddress[KHB_SerialLine].dbc1hi;
667 else
668 KHB_DBC_Status &= ~KHB_SerialAddress[KHB_SerialLine].dbc1hi;
669
670 return CM_RC_SUCCESSFUL;
671 }
672
673
674
675 // Test Functions
676
677
678 status_code KHB_Log()
679 {
680 status_code statusMask,statusStatus;
681 UINT16 mask;
682 UINT16 reg;
683
684 statusMask = KHB_ReadMaskRegister(&mask);
685 statusStatus = KHB_ReadStatusRegister(&reg);
686 /*@LOG KHB Log: mask */
687 LU_INFN_LOG(LU_NORMAL_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,mask);
688 /*@LOG KHB Log: reg */
689 LU_INFN_LOG(LU_NORMAL_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,reg);
690 /*@LOG KHB Log: status_mask */
691 LU_INFN_LOG(LU_NORMAL_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,statusMask);
692 /*@LOG KHB Log: status_khb_status */
693 LU_INFN_LOG(LU_NORMAL_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,statusStatus);
694
695 return(CM_RC_SUCCESSFUL);
696 }
697
698 status_code KHB_TestBoard(unsigned short selected_test)
699 {
700 int x;
701 static int n;
702 int test;
703 int a=1,b=1,c=1,d=1,e=1;
704 UINT16 value[3];
705
706 n = 1000;
707 test = selected_test;
708
709 switch(test)
710 {
711 case 0:
712 {
713 int i;
714 UINT16 mask;
715 status_code status;
716
717 status = KHB_UpdateMaskRegister(KHB_START_MASK,KHB_PRESET);
718
719 for (i=0; i < 1000; i++)
720 {
721 status = KHB_ReadMaskRegister(&mask);
722 if(!status)
723 if (mask != KHB_START_MASK)
724 {
725 status = CM_RC_INTERNAL_ERR;
726 break;
727 }
728 }
729 }
730 break;
731 case 1:
732 {
733 int i;
734 UINT16 reg;
735 status_code status;
736
737 for (i=0; i < 1000; i++)
738 {
739 status = KHB_ReadStatusRegister(&reg);
740 if (reg != KHB_STATUS_VALUE)
741 {
742 status = CM_RC_INTERNAL_ERR;
743 break;
744 }
745 }
746 }
747 break;
748 case 2:
749 {
750 UINT32 alarm;
751 UINT16 statusw;
752 int a=1,b=1;
753 status_code status;
754
755 if (a)
756 status = KHB_ReadAlarmRegister(&alarm);
757 if (b)
758 status = KHB_ReadStatusRegister(&statusw);
759 }
760 break;
761
762 }
763 }
764
765
766 UINT32 KHB_GetSerialLineReadAddress(){
767 return KHB_SerialAddress[KHB_SerialLine].readAddr;
768 }

  ViewVC Help
Powered by ViewVC 1.1.23