@@ -2,7 +2,7 TEMPLATE = app | |||||
2 | # CONFIG += console v8 sim |
|
2 | # CONFIG += console v8 sim | |
3 | # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** vhdl_dev *** debug_tch |
|
3 | # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** vhdl_dev *** debug_tch | |
4 | # lpp_dpu_destid |
|
4 | # lpp_dpu_destid | |
5 | CONFIG += console verbose lpp_dpu_destid cpu_usage_report |
|
5 | CONFIG += console verbose lpp_dpu_destid cpu_usage_report stack_report | |
6 | CONFIG -= qt |
|
6 | CONFIG -= qt | |
7 |
|
7 | |||
8 | include(./sparc.pri) |
|
8 | include(./sparc.pri) |
@@ -38,7 +38,7 QMAKE_CFLAGS_RELEASE = | |||||
38 | QMAKE_CFLAGS_YACC = |
|
38 | QMAKE_CFLAGS_YACC = | |
39 | QMAKE_LFLAGS_EXCEPTIONS_ON = |
|
39 | QMAKE_LFLAGS_EXCEPTIONS_ON = | |
40 | QMAKE_LFLAGS_EXCEPTIONS_OFF = |
|
40 | QMAKE_LFLAGS_EXCEPTIONS_OFF = | |
41 | QMAKE_LFLAGS_RELEASE = |
|
41 | QMAKE_LFLAGS_RELEASE = -Xlinker -Map=output.map | |
42 | QMAKE_LFLAGS_CONSOLE = |
|
42 | QMAKE_LFLAGS_CONSOLE = | |
43 | QMAKE_LFLAGS_WINDOWS = |
|
43 | QMAKE_LFLAGS_WINDOWS = | |
44 | QMAKE_LFLAGS_DLL = |
|
44 | QMAKE_LFLAGS_DLL = |
@@ -35,7 +35,11 int check_mode_value( unsigned char requ | |||||
35 | int check_mode_transition( unsigned char requestedMode ); |
|
35 | int check_mode_transition( unsigned char requestedMode ); | |
36 | int check_transition_date( unsigned int transitionCoarseTime ); |
|
36 | int check_transition_date( unsigned int transitionCoarseTime ); | |
37 | int stop_current_mode( void ); |
|
37 | int stop_current_mode( void ); | |
38 | int enter_mode( unsigned char mode , unsigned int transitionCoarseTime ); |
|
38 | int enter_mode_standby( void ); | |
|
39 | int enter_mode_normal( unsigned int transitionCoarseTime ); | |||
|
40 | int enter_mode_burst( unsigned int transitionCoarseTime ); | |||
|
41 | int enter_mode_sbm1( unsigned int transitionCoarseTime ); | |||
|
42 | int enter_mode_sbm2( unsigned int transitionCoarseTime ); | |||
39 | int restart_science_tasks( unsigned char lfrRequestedMode ); |
|
43 | int restart_science_tasks( unsigned char lfrRequestedMode ); | |
40 | int suspend_science_tasks(); |
|
44 | int suspend_science_tasks(); | |
41 | void launch_waveform_picker( unsigned char mode , unsigned int transitionCoarseTime ); |
|
45 | void launch_waveform_picker( unsigned char mode , unsigned int transitionCoarseTime ); |
@@ -89,7 +89,7 rtems_task spiq_task(rtems_task_argument | |||||
89 | } |
|
89 | } | |
90 | else // [3.b] the link is not in run state, go in STANDBY mode |
|
90 | else // [3.b] the link is not in run state, go in STANDBY mode | |
91 | { |
|
91 | { | |
92 |
status = enter_mode( |
|
92 | status = enter_mode_standby(); | |
93 | if ( status != RTEMS_SUCCESSFUL ) { |
|
93 | if ( status != RTEMS_SUCCESSFUL ) { | |
94 | PRINTF1("in SPIQ *** ERR enter_standby_mode *** code %d\n", status) |
|
94 | PRINTF1("in SPIQ *** ERR enter_standby_mode *** code %d\n", status) | |
95 | } |
|
95 | } |
@@ -53,10 +53,10 rtems_task actn_task( rtems_task_argumen | |||||
53 |
|
53 | |||
54 | BOOT_PRINTF("in ACTN *** \n") |
|
54 | BOOT_PRINTF("in ACTN *** \n") | |
55 |
|
55 | |||
56 | while(1) |
|
56 | while(1) | |
57 | { |
|
57 | { | |
58 | status = rtems_message_queue_receive( queue_rcv_id, (char*) &TC, &size, |
|
58 | status = rtems_message_queue_receive( queue_rcv_id, (char*) &TC, &size, | |
59 | RTEMS_WAIT, RTEMS_NO_TIMEOUT); |
|
59 | RTEMS_WAIT, RTEMS_NO_TIMEOUT); | |
60 | getTime( time ); // set time to the current time |
|
60 | getTime( time ); // set time to the current time | |
61 | if (status!=RTEMS_SUCCESSFUL) |
|
61 | if (status!=RTEMS_SUCCESSFUL) | |
62 | { |
|
62 | { | |
@@ -147,7 +147,7 int action_reset(ccsdsTelecommandPacket_ | |||||
147 | */ |
|
147 | */ | |
148 |
|
148 | |||
149 | PRINTF("this is the end!!!\n") |
|
149 | PRINTF("this is the end!!!\n") | |
150 | exit(0); |
|
150 | exit(0); | |
151 | send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time ); |
|
151 | send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time ); | |
152 | return LFR_DEFAULT; |
|
152 | return LFR_DEFAULT; | |
153 | } |
|
153 | } | |
@@ -185,7 +185,7 int action_enter_mode(ccsdsTelecommandPa | |||||
185 | if (status != LFR_SUCCESSFUL) |
|
185 | if (status != LFR_SUCCESSFUL) | |
186 | { |
|
186 | { | |
187 | PRINTF("ERR *** in action_enter_mode *** check_mode_transition\n") |
|
187 | PRINTF("ERR *** in action_enter_mode *** check_mode_transition\n") | |
188 | send_tm_lfr_tc_exe_not_executable( TC, queue_id ); |
|
188 | send_tm_lfr_tc_exe_not_executable( TC, queue_id ); | |
189 | } |
|
189 | } | |
190 | } |
|
190 | } | |
191 |
|
191 | |||
@@ -195,16 +195,36 int action_enter_mode(ccsdsTelecommandPa | |||||
195 | if (status != LFR_SUCCESSFUL) |
|
195 | if (status != LFR_SUCCESSFUL) | |
196 | { |
|
196 | { | |
197 | PRINTF("ERR *** in action_enter_mode *** check_transition_date\n") |
|
197 | PRINTF("ERR *** in action_enter_mode *** check_transition_date\n") | |
198 | send_tm_lfr_tc_exe_inconsistent( TC, queue_id, |
|
198 | send_tm_lfr_tc_exe_inconsistent( TC, queue_id, | |
199 | BYTE_POS_CP_LFR_ENTER_MODE_TIME, |
|
199 | BYTE_POS_CP_LFR_ENTER_MODE_TIME, | |
200 | bytePosPtr[ BYTE_POS_CP_LFR_ENTER_MODE_TIME + 3 ] ); |
|
200 | bytePosPtr[ BYTE_POS_CP_LFR_ENTER_MODE_TIME + 3 ] ); | |
201 | } |
|
201 | } | |
202 | } |
|
202 | } | |
203 |
|
203 | |||
204 | if ( status == LFR_SUCCESSFUL ) // the date is valid, enter the mode |
|
204 | if ( status == LFR_SUCCESSFUL ) // the date is valid, enter the mode | |
205 | { |
|
205 | { | |
206 | PRINTF1("OK *** in action_enter_mode *** enter mode %d\n", requestedMode); |
|
206 | PRINTF1("OK *** in action_enter_mode *** enter mode %d\n", requestedMode); | |
207 | status = enter_mode( requestedMode, transitionCoarseTime ); |
|
207 | ||
|
208 | switch(requestedMode) | |||
|
209 | { | |||
|
210 | case LFR_MODE_STANDBY: | |||
|
211 | status = enter_mode_standby(); | |||
|
212 | break; | |||
|
213 | case LFR_MODE_NORMAL: | |||
|
214 | status = enter_mode_normal( transitionCoarseTime ); | |||
|
215 | break; | |||
|
216 | case LFR_MODE_BURST: | |||
|
217 | status = enter_mode_burst( transitionCoarseTime ); | |||
|
218 | break; | |||
|
219 | case LFR_MODE_SBM1: | |||
|
220 | status = enter_mode_sbm1( transitionCoarseTime ); | |||
|
221 | break; | |||
|
222 | case LFR_MODE_SBM2: | |||
|
223 | status = enter_mode_sbm2( transitionCoarseTime ); | |||
|
224 | break; | |||
|
225 | default: | |||
|
226 | break; | |||
|
227 | } | |||
208 | } |
|
228 | } | |
209 |
|
229 | |||
210 | return status; |
|
230 | return status; | |
@@ -323,9 +343,9 int action_update_time(ccsdsTelecommandP | |||||
323 | unsigned int val; |
|
343 | unsigned int val; | |
324 |
|
344 | |||
325 | time_management_regs->coarse_time_load = (TC->dataAndCRC[0] << 24) |
|
345 | time_management_regs->coarse_time_load = (TC->dataAndCRC[0] << 24) | |
326 |
|
|
346 | + (TC->dataAndCRC[1] << 16) | |
327 |
|
|
347 | + (TC->dataAndCRC[2] << 8) | |
328 |
|
|
348 | + TC->dataAndCRC[3]; | |
329 |
|
349 | |||
330 | val = housekeeping_packet.hk_lfr_update_time_tc_cnt[0] * 256 |
|
350 | val = housekeeping_packet.hk_lfr_update_time_tc_cnt[0] * 256 | |
331 | + housekeeping_packet.hk_lfr_update_time_tc_cnt[1]; |
|
351 | + housekeeping_packet.hk_lfr_update_time_tc_cnt[1]; | |
@@ -439,7 +459,7 int check_transition_date( unsigned int | |||||
439 |
|
459 | |||
440 | PRINTF2("localTime = %x, transitionTime = %x\n", localCoarseTime, transitionCoarseTime) |
|
460 | PRINTF2("localTime = %x, transitionTime = %x\n", localCoarseTime, transitionCoarseTime) | |
441 |
|
461 | |||
442 | if ( transitionCoarseTime <= localCoarseTime ) // SSS-CP-EQS-322 |
|
462 | if ( transitionCoarseTime <= localCoarseTime ) // SSS-CP-EQS-322 | |
443 | { |
|
463 | { | |
444 | status = LFR_DEFAULT; |
|
464 | status = LFR_DEFAULT; | |
445 | PRINTF("ERR *** in check_transition_date *** transitionCoarseTime <= localCoarseTime\n") |
|
465 | PRINTF("ERR *** in check_transition_date *** transitionCoarseTime <= localCoarseTime\n") | |
@@ -514,66 +534,188 int stop_current_mode( void ) | |||||
514 | return status; |
|
534 | return status; | |
515 | } |
|
535 | } | |
516 |
|
536 | |||
517 | int enter_mode( unsigned char mode, unsigned int transitionCoarseTime ) |
|
537 | int enter_mode_standby() | |
518 | { |
|
538 | { | |
519 | /** This function is launched after a mode transition validation. |
|
539 | int status; | |
520 | * |
|
|||
521 | * @param mode is the mode in which LFR will be put. |
|
|||
522 | * |
|
|||
523 | * @return RTEMS directive status codes: |
|
|||
524 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully |
|
|||
525 | * - RTEMS_NOT_SATISFIED - the mode has not been entered successfully |
|
|||
526 | * |
|
|||
527 | */ |
|
|||
528 |
|
||||
529 | rtems_status_code status; |
|
|||
530 |
|
||||
531 | //********************** |
|
|||
532 | // STOP THE CURRENT MODE |
|
|||
533 | status = stop_current_mode(); |
|
|||
534 | if (status != RTEMS_SUCCESSFUL) |
|
|||
535 | { |
|
|||
536 | PRINTF1("ERR *** in enter_mode *** stop_current_mode with mode = %d\n", mode) |
|
|||
537 | } |
|
|||
538 |
|
540 | |||
539 | //************************* |
|
541 | status = stop_current_mode(); // STOP THE CURRENT MODE | |
540 | // ENTER THE REQUESTED MODE |
|
542 | ||
541 | if (status == RTEMS_SUCCESSFUL) // if the current mode has been successfully stopped |
|
|||
542 | { |
|
|||
543 | if ( (mode == LFR_MODE_NORMAL) || (mode == LFR_MODE_BURST) |
|
|||
544 | || (mode == LFR_MODE_SBM1) || (mode == LFR_MODE_SBM2) ) |
|
|||
545 | { |
|
|||
546 | #ifdef PRINT_TASK_STATISTICS |
|
543 | #ifdef PRINT_TASK_STATISTICS | |
547 |
|
|
544 | rtems_cpu_usage_report(); | |
548 | #endif |
|
|||
549 | status = restart_science_tasks( mode ); |
|
|||
550 | if (status == RTEMS_SUCCESSFUL) |
|
|||
551 | { |
|
|||
552 | launch_spectral_matrix( ); |
|
|||
553 | launch_waveform_picker( mode, transitionCoarseTime ); |
|
|||
554 | } |
|
|||
555 | } |
|
|||
556 | else if ( mode == LFR_MODE_STANDBY ) |
|
|||
557 | { |
|
|||
558 | #ifdef PRINT_TASK_STATISTICS |
|
|||
559 | rtems_cpu_usage_report(); |
|
|||
560 | #endif |
|
545 | #endif | |
561 |
|
546 | |||
562 | #ifdef PRINT_STACK_REPORT |
|
547 | #ifdef PRINT_STACK_REPORT | |
563 |
|
|
548 | PRINTF("stack report selected\n") | |
564 |
|
|
549 | rtems_stack_checker_report_usage(); | |
|
550 | #endif | |||
|
551 | ||||
|
552 | return status; | |||
|
553 | } | |||
|
554 | ||||
|
555 | int enter_mode_normal( unsigned int transitionCoarseTime ) | |||
|
556 | { | |||
|
557 | int status; | |||
|
558 | ||||
|
559 | #ifdef PRINT_TASK_STATISTICS | |||
|
560 | rtems_cpu_usage_reset(); | |||
565 | #endif |
|
561 | #endif | |
|
562 | ||||
|
563 | status = RTEMS_UNSATISFIED; | |||
|
564 | ||||
|
565 | switch( lfrCurrentMode ) | |||
|
566 | { | |||
|
567 | case LFR_MODE_STANDBY: | |||
|
568 | status = restart_science_tasks( LFR_MODE_NORMAL ); // restart science tasks | |||
|
569 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
570 | { | |||
|
571 | launch_spectral_matrix( ); | |||
|
572 | launch_waveform_picker( LFR_MODE_NORMAL, transitionCoarseTime ); | |||
|
573 | } | |||
|
574 | break; | |||
|
575 | case LFR_MODE_BURST: | |||
|
576 | status = stop_current_mode(); // stop the current mode | |||
|
577 | status = restart_science_tasks( LFR_MODE_NORMAL ); // restart the science tasks | |||
|
578 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
579 | { | |||
|
580 | launch_spectral_matrix( ); | |||
|
581 | launch_waveform_picker( LFR_MODE_NORMAL, transitionCoarseTime ); | |||
566 | } |
|
582 | } | |
567 |
|
|
583 | break; | |
568 | { |
|
584 | case LFR_MODE_SBM1: | |
569 | status = RTEMS_UNSATISFIED; |
|
585 | status = LFR_SUCCESSFUL; // lfrCurrentMode will be updated after the execution of close_action | |
570 |
|
|
586 | break; | |
|
587 | case LFR_MODE_SBM2: | |||
|
588 | status = LFR_SUCCESSFUL; // lfrCurrentMode will be updated after the execution of close_action | |||
|
589 | break; | |||
|
590 | default: | |||
|
591 | break; | |||
|
592 | } | |||
|
593 | ||||
|
594 | if (status != RTEMS_SUCCESSFUL) | |||
|
595 | { | |||
|
596 | PRINTF1("ERR *** in enter_mode_normal *** status = %d\n", status) | |||
|
597 | status = RTEMS_UNSATISFIED; | |||
|
598 | } | |||
|
599 | ||||
|
600 | return status; | |||
|
601 | } | |||
|
602 | ||||
|
603 | int enter_mode_burst( unsigned int transitionCoarseTime ) | |||
|
604 | { | |||
|
605 | int status; | |||
|
606 | ||||
|
607 | #ifdef PRINT_TASK_STATISTICS | |||
|
608 | rtems_cpu_usage_reset(); | |||
|
609 | #endif | |||
|
610 | ||||
|
611 | status = stop_current_mode(); // stop the current mode | |||
|
612 | status = restart_science_tasks( LFR_MODE_BURST ); // restart the science tasks | |||
|
613 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
614 | { | |||
|
615 | launch_spectral_matrix( ); | |||
|
616 | launch_waveform_picker( LFR_MODE_BURST, transitionCoarseTime ); | |||
571 | } |
|
617 | } | |
572 |
|
618 | |||
573 | if (status != RTEMS_SUCCESSFUL) |
|
619 | if (status != RTEMS_SUCCESSFUL) | |
574 | { |
|
620 | { | |
575 | PRINTF1("ERR *** in enter_mode *** status = %d\n", status) |
|
621 | PRINTF1("ERR *** in enter_mode_burst *** status = %d\n", status) | |
576 | status = RTEMS_UNSATISFIED; |
|
622 | status = RTEMS_UNSATISFIED; | |
|
623 | } | |||
|
624 | ||||
|
625 | return status; | |||
|
626 | } | |||
|
627 | ||||
|
628 | int enter_mode_sbm1( unsigned int transitionCoarseTime ) | |||
|
629 | { | |||
|
630 | int status; | |||
|
631 | ||||
|
632 | #ifdef PRINT_TASK_STATISTICS | |||
|
633 | rtems_cpu_usage_reset(); | |||
|
634 | #endif | |||
|
635 | ||||
|
636 | status = RTEMS_UNSATISFIED; | |||
|
637 | ||||
|
638 | switch( lfrCurrentMode ) | |||
|
639 | { | |||
|
640 | case LFR_MODE_STANDBY: | |||
|
641 | status = restart_science_tasks( LFR_MODE_SBM1 ); // restart science tasks | |||
|
642 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
643 | { | |||
|
644 | launch_spectral_matrix( ); | |||
|
645 | launch_waveform_picker( LFR_MODE_SBM1, transitionCoarseTime ); | |||
|
646 | } | |||
|
647 | break; | |||
|
648 | case LFR_MODE_NORMAL: // lfrCurrentMode will be updated after the execution of close_action | |||
|
649 | status = LFR_SUCCESSFUL; | |||
|
650 | break; | |||
|
651 | case LFR_MODE_BURST: | |||
|
652 | status = stop_current_mode(); // stop the current mode | |||
|
653 | status = restart_science_tasks( LFR_MODE_SBM1 ); // restart the science tasks | |||
|
654 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
655 | { | |||
|
656 | launch_spectral_matrix( ); | |||
|
657 | launch_waveform_picker( LFR_MODE_SBM1, transitionCoarseTime ); | |||
|
658 | } | |||
|
659 | break; | |||
|
660 | case LFR_MODE_SBM2: | |||
|
661 | status = LFR_SUCCESSFUL; // lfrCurrentMode will be updated after the execution of close_action | |||
|
662 | break; | |||
|
663 | default: | |||
|
664 | break; | |||
|
665 | } | |||
|
666 | ||||
|
667 | if (status != RTEMS_SUCCESSFUL) | |||
|
668 | { | |||
|
669 | PRINTF1("ERR *** in enter_mode_sbm1 *** status = %d\n", status) | |||
|
670 | status = RTEMS_UNSATISFIED; | |||
|
671 | } | |||
|
672 | ||||
|
673 | return status; | |||
|
674 | } | |||
|
675 | ||||
|
676 | int enter_mode_sbm2( unsigned int transitionCoarseTime ) | |||
|
677 | { | |||
|
678 | int status; | |||
|
679 | ||||
|
680 | #ifdef PRINT_TASK_STATISTICS | |||
|
681 | rtems_cpu_usage_reset(); | |||
|
682 | #endif | |||
|
683 | ||||
|
684 | status = RTEMS_UNSATISFIED; | |||
|
685 | ||||
|
686 | switch( lfrCurrentMode ) | |||
|
687 | { | |||
|
688 | case LFR_MODE_STANDBY: | |||
|
689 | status = restart_science_tasks( LFR_MODE_SBM2 ); // restart science tasks | |||
|
690 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
691 | { | |||
|
692 | launch_spectral_matrix( ); | |||
|
693 | launch_waveform_picker( LFR_MODE_SBM2, transitionCoarseTime ); | |||
|
694 | } | |||
|
695 | break; | |||
|
696 | case LFR_MODE_NORMAL: | |||
|
697 | status = LFR_SUCCESSFUL; // lfrCurrentMode will be updated after the execution of close_action | |||
|
698 | break; | |||
|
699 | case LFR_MODE_BURST: | |||
|
700 | status = stop_current_mode(); // stop the current mode | |||
|
701 | status = restart_science_tasks( LFR_MODE_SBM2 ); // restart the science tasks | |||
|
702 | if (status == RTEMS_SUCCESSFUL) // relaunch spectral_matrix and waveform_picker modules | |||
|
703 | { | |||
|
704 | launch_spectral_matrix( ); | |||
|
705 | launch_waveform_picker( LFR_MODE_SBM2, transitionCoarseTime ); | |||
|
706 | } | |||
|
707 | break; | |||
|
708 | case LFR_MODE_SBM1: | |||
|
709 | status = LFR_SUCCESSFUL; // lfrCurrentMode will be updated after the execution of close_action | |||
|
710 | break; | |||
|
711 | default: | |||
|
712 | break; | |||
|
713 | } | |||
|
714 | ||||
|
715 | if (status != RTEMS_SUCCESSFUL) | |||
|
716 | { | |||
|
717 | PRINTF1("ERR *** in enter_mode_sbm2 *** status = %d\n", status) | |||
|
718 | status = RTEMS_UNSATISFIED; | |||
577 | } |
|
719 | } | |
578 |
|
720 | |||
579 | return status; |
|
721 | return status; | |
@@ -685,7 +827,7 int suspend_science_tasks() | |||||
685 |
|
827 | |||
686 | PRINTF("in suspend_science_tasks\n") |
|
828 | PRINTF("in suspend_science_tasks\n") | |
687 |
|
829 | |||
688 | status = rtems_task_suspend( Task_id[TASKID_AVF0] ); // suspend AVF0 |
|
830 | status = rtems_task_suspend( Task_id[TASKID_AVF0] ); // suspend AVF0 | |
689 | if ((status != RTEMS_SUCCESSFUL) && (status != RTEMS_ALREADY_SUSPENDED)) |
|
831 | if ((status != RTEMS_SUCCESSFUL) && (status != RTEMS_ALREADY_SUSPENDED)) | |
690 | { |
|
832 | { | |
691 | PRINTF1("in suspend_science_task *** AVF0 ERR %d\n", status) |
|
833 | PRINTF1("in suspend_science_task *** AVF0 ERR %d\n", status) |
@@ -1212,12 +1212,11 void set_wfp_burst_enable_register( unsi | |||||
1212 | // the burst bits shall be set first, before the enable bits |
|
1212 | // the burst bits shall be set first, before the enable bits | |
1213 | switch(mode) { |
|
1213 | switch(mode) { | |
1214 | case(LFR_MODE_NORMAL): |
|
1214 | case(LFR_MODE_NORMAL): | |
1215 |
waveform_picker_regs->run_burst_enable = 0x |
|
1215 | waveform_picker_regs->run_burst_enable = 0x60; // [0110 0000] enable f2 AND f1 burst | |
1216 |
waveform_picker_regs->run_burst_enable = |
|
1216 | waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x0c; // [1111] enable f3 f2 f1 f0 | |
1217 | break; |
|
1217 | break; | |
1218 | case(LFR_MODE_BURST): |
|
1218 | case(LFR_MODE_BURST): | |
1219 | waveform_picker_regs->run_burst_enable = 0x40; // [0100 0000] f2 burst enabled |
|
1219 | waveform_picker_regs->run_burst_enable = 0x40; // [0100 0000] f2 burst enabled | |
1220 | // waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x04; // [0100] enable f2 |
|
|||
1221 | waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x0c; // [1100] enable f3 AND f2 |
|
1220 | waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x0c; // [1100] enable f3 AND f2 | |
1222 | break; |
|
1221 | break; | |
1223 | case(LFR_MODE_SBM1): |
|
1222 | case(LFR_MODE_SBM1): |
General Comments 0
You need to be logged in to leave comments.
Login now