📄 main.lst
字号:
561
562 /*********************************************************************************************************
563 ** 函数名称: BH_Serial
564 ** 功能描述: 一个任务,SerialInt的BottomHalf函数
565 **
566 ** 输 入: 无
567 ** 输 出: 无
568 ** 全局变量: 无
569 ** 调用模块: OSSemCreate(),DispStr(),OSWait(),DispClr(),OSSemPost(),
570 **
571 ** 作 者: 龚树强
572 ** 日 期: 2004年10月15日
573 **-------------------------------------------------------------------------------------------------------
574 ** 修改人:
575 ** 日 期:
576 **------------------------------------------------------------------------------------------------------
577 ***************************************************************** **********************
-*****************/
578 void BH_Serial(void)
579 {
580 1
581 1 uint8 idata temp;
582 1 uint16 idata i;
583 1
584 1 OSQCreate(CommandData,7);
585 1 OSQCreate(SerialInData,10);
586 1 OSQCreate(SerialOutData,22); /* 建立所需要的消息队列 */
587 1
588 1 //OSSemCreate(SEM_SendBuffer,3);
589 1
590 1 OSWait(K_TMO, OS_TICKS_PER_SEC/5 );
591 1
592 1
593 1 while (1)
594 1 {
595 2 SM2=1;
596 2
597 2 OSQPend(&temp,SerialInData,0); // 接收一个字节
*** WARNING C259 IN LINE 597 OF MAIN.C: 'parameter': pointer: different mspace
598 2 if (temp != LOCOAL_ADDR)
599 2 {
600 3 continue; //接收到起始字符
601 3 }
602 2 SM2=0;
603 2
604 2 _Sum = LOCOAL_ADDR;
605 2
606 2 OSQPend(&temp,SerialInData,0); // 接收一个字节
*** WARNING C259 IN LINE 606 OF MAIN.C: 'parameter': pointer: different mspace
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 11
607 2 if (temp != LOCOAL_ADDR)
608 2 {
609 3 SM2=1;
610 3 continue;
611 3 }
612 2
613 2
614 2 _Sum += temp;
615 2
616 2 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 616 OF MAIN.C: 'parameter': pointer: different mspace
617 2 _Sum += temp;
618 2
619 2 switch(temp)
620 2 {
621 3 case CMD_TARGET_VALUE : OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 621 OF MAIN.C: 'parameter': pointer: different mspace
622 3 _Sum += temp;
623 3 _TempValue=temp;
624 3 _TempValue<<=8;
625 3
626 3
627 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 627 OF MAIN.C: 'parameter': pointer: different mspace
628 3 _TempValue+=temp;
629 3 _TempValue<<=8;
630 3 _Sum += temp;
631 3
632 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 632 OF MAIN.C: 'parameter': pointer: different mspace
633 3 _TempValue+=temp;
634 3 _Sum += temp;
635 3
636 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 636 OF MAIN.C: 'parameter': pointer: different mspace
637 3
638 3 SM2=1;
639 3
640 3 if(!_Flag_State_Producing)
641 3 {
642 4 if(temp==_Sum)
643 4 {
644 5
645 5 _TargetValue=_TempValue;
646 5
647 5 }
648 4
649 4 }
650 3
651 3 continue;
652 3
653 3 case CMD_CURRENT_VALUE : OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 653 OF MAIN.C: 'parameter': pointer: different mspace
654 3 _Sum += temp;
655 3 _TempValue=temp;
656 3 _TempValue<<=8;
657 3
658 3
659 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 659 OF MAIN.C: 'parameter': pointer: different mspace
660 3 _TempValue+=temp;
661 3 _TempValue<<=8;
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 12
662 3 _Sum += temp;
663 3
664 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 664 OF MAIN.C: 'parameter': pointer: different mspace
665 3 _TempValue+=temp;
666 3 _Sum += temp;
667 3
668 3 OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 668 OF MAIN.C: 'parameter': pointer: different mspace
669 3
670 3 SM2=1;
671 3
672 3 if(!_Flag_State_Producing)
673 3 {
674 4 if(temp==_Sum)
675 4 {
676 5 if(_TargetValue>_CurrentValue)
677 5 {
678 6 OSQIntPost(SerialOutData,LOCOAL_ADDR);
679 6 _Sum=LOCOAL_ADDR;
680 6 OSQIntPost(SerialOutData,LOCOAL_ADDR);
681 6 _Sum+=LOCOAL_ADDR;
682 6 OSQIntPost(SerialOutData,CMD_ACK);
683 6 _Sum+=CMD_ACK;
684 6 OSQIntPost(SerialOutData,0);
685 6 OSQIntPost(SerialOutData,0);
686 6 OSQIntPost(SerialOutData,0);
687 6 OSQIntPost(SerialOutData,_Sum);
688 6
689 6 OSQAccept(&temp,SerialOutData);
*** WARNING C259 IN LINE 689 OF MAIN.C: 'parameter': pointer: different mspace
690 6
691 6 SERIAL_DIRECTION_CTRL=1;
692 6 // for(i=0;i<10000;i++);
693 6
694 6 _BufferIndex=0;
695 6
696 6 //_ResendBuffer[_BufferIndex]=temp;
697 6
698 6 TB8=1;
699 6 TI=0;
700 6
701 6 SBUF = temp;
702 6
703 6 _CurrentValue=_TempValue;
704 6
705 6
706 6 DispNum(0,_TargetValue);
707 6
708 6 DispNum(1,_CurrentValue);
709 6
710 6 _Flag_CounteEnable=1;
711 6 _Flag_State_TaskAccepted=1;
712 6 _Flag_State_Producing=0;
713 6 _Flag_State_Finish=0;
714 6 }
715 5 }
716 4
717 4 }
718 3 else if(_Flag_State_Producing)
719 3 {
720 4 if(temp==_Sum)
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 13
721 4 {
722 5
723 5 _CurrentValue=_TempValue;
724 5
725 5 DispNum(1,_CurrentValue);
726 5
727 5 }
728 4
729 4 }
730 3 continue;
731 3
732 3
733 3 case CMD_FINISHED_PERSENT: OSQPend(&temp,SerialInData,0); // 接收数据
*** WARNING C259 IN LINE 733 OF MAIN.C: 'parameter': pointer: different mspace
734 3 //_TempValue=temp;
735 3 //_TempValue<<=8;
736 3 _Sum += temp;
737 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -