瀏覽代碼

Table 구조체 1byte 형식으로 변경 // EEPROM 주소 변경

/ PE43711 계산식 변경 Table Offset값 추가 할 수 있도록 변경 / EEPROM 변경 /ADC 값 100번 평균 후 값 출력
PYJ 5 年之前
父節點
當前提交
c36c40b1d4
共有 9 個文件被更改,包括 1106 次插入541 次删除
  1. 246 151
      Bluecell_Inc/Bluecell_operate.h
  2. 56 32
      Bluecell_Inc/eeprom.h
  3. 298 186
      Bluecell_Src/Bluecell_operate.c
  4. 378 75
      Bluecell_Src/eeprom.c
  5. 0 2
      Inc/stm32f1xx_it.h
  6. 1 3
      STM32F103ZET_JDASMBIC.ioc
  7. 127 60
      Src/main.c
  8. 0 3
      Src/stm32f1xx_hal_msp.c
  9. 0 29
      Src/stm32f1xx_it.c

+ 246 - 151
Bluecell_Inc/Bluecell_operate.h

@@ -515,166 +515,261 @@ typedef struct{
515 515
 
516 516
 }BLUESTATUS_st;
517 517
 typedef struct{
518
-  uint16_t Table_0_0_dBm	;
519
-  uint16_t Table_0_5_dBm	;
520
-  uint16_t Table_1_0_dBm	;
521
-  uint16_t Table_1_5_dBm	;
522
-  uint16_t Table_2_0_dBm	;
523
-  uint16_t Table_2_5_dBm	;
524
-  uint16_t Table_3_0_dBm	;
525
-  uint16_t Table_3_5_dBm	;
526
-  uint16_t Table_4_0_dBm	;
527
-  uint16_t Table_4_5_dBm	;
528
-  uint16_t Table_5_0_dBm	;
529
-  uint16_t Table_5_5_dBm	;
530
-  uint16_t Table_6_0_dBm	;
531
-  uint16_t Table_6_5_dBm	;
532
-  uint16_t Table_7_0_dBm	;
533
-  uint16_t Table_7_5_dBm	;
534
-  uint16_t Table_8_0_dBm	;
535
-  uint16_t Table_8_5_dBm	;
536
-  uint16_t Table_9_0_dBm	;
537
-  uint16_t Table_9_5_dBm	;
538
-  uint16_t Table_10_0_dBm;
539
-  uint16_t Table_10_5_dBm;
540
-  uint16_t Table_11_0_dBm;
541
-  uint16_t Table_11_5_dBm;
542
-  uint16_t Table_12_0_dBm;
543
-  uint16_t Table_12_5_dBm;
544
-  uint16_t Table_13_0_dBm;
545
-  uint16_t Table_13_5_dBm;
546
-  uint16_t Table_14_0_dBm;
547
-  uint16_t Table_14_5_dBm;
548
-  uint16_t Table_15_0_dBm;
549
-  uint16_t Table_15_5_dBm;
550
-  uint16_t Table_16_0_dBm;
551
-  uint16_t Table_16_5_dBm;
552
-  uint16_t Table_17_0_dBm;
553
-  uint16_t Table_17_5_dBm;
554
-  uint16_t Table_18_0_dBm;
555
-  uint16_t Table_18_5_dBm;
556
-  uint16_t Table_19_0_dBm;
557
-  uint16_t Table_19_5_dBm;
558
-  uint16_t Table_20_0_dBm;
559
-  uint16_t Table_20_5_dBm;
560
-  uint16_t Table_21_0_dBm;
561
-  uint16_t Table_21_5_dBm;
562
-  uint16_t Table_22_0_dBm;
563
-  uint16_t Table_22_5_dBm;
564
-  uint16_t Table_23_0_dBm;
565
-  uint16_t Table_23_5_dBm;
566
-  uint16_t Table_24_0_dBm;
567
-  uint16_t Table_24_5_dBm;
568
-  uint16_t Table_25_0_dBm;
569
-  uint16_t Table_25_5_dBm;
570
-  uint16_t Table_26_0_dBm;
571
-  uint16_t Table_26_5_dBm;
572
-  uint16_t Table_27_0_dBm;
573
-  uint16_t Table_27_5_dBm;
574
-  uint16_t Table_28_0_dBm;
575
-  uint16_t Table_28_5_dBm;
576
-  uint16_t Table_29_0_dBm;
577
-  uint16_t Table_29_5_dBm;
578
-  uint16_t Table_30_0_dBm;
579
-  uint16_t Table_30_5_dBm;
580
-  uint16_t Table_31_0_dBm;
581
-  uint16_t Table_31_5_dBm;
518
+  uint8_t Table_0_0_dBm_H;
519
+  uint8_t Table_0_0_dBm_L; // 1
520
+  uint8_t Table_0_5_dBm_H;
521
+  uint8_t Table_0_5_dBm_L; // 3
522
+  uint8_t Table_1_0_dBm_H;
523
+  uint8_t Table_1_0_dBm_L;//4
524
+  uint8_t Table_1_5_dBm_H;
525
+  uint8_t Table_1_5_dBm_L;//5
526
+  uint8_t Table_2_0_dBm_H;
527
+  uint8_t Table_2_0_dBm_L;//6
528
+  uint8_t Table_2_5_dBm_H;
529
+  uint8_t Table_2_5_dBm_L;
530
+  uint8_t Table_3_0_dBm_H;
531
+  uint8_t Table_3_0_dBm_L;
532
+  uint8_t Table_3_5_dBm_H;
533
+  uint8_t Table_3_5_dBm_L;
534
+  uint8_t Table_4_0_dBm_H;
535
+  uint8_t Table_4_0_dBm_L;
536
+  uint8_t Table_4_5_dBm_H;
537
+  uint8_t Table_4_5_dBm_L;
538
+  uint8_t Table_5_0_dBm_H;
539
+  uint8_t Table_5_0_dBm_L;
540
+  uint8_t Table_5_5_dBm_H;
541
+  uint8_t Table_5_5_dBm_L;
542
+  uint8_t Table_6_0_dBm_H;
543
+  uint8_t Table_6_0_dBm_L;
544
+  uint8_t Table_6_5_dBm_H;
545
+  uint8_t Table_6_5_dBm_L;
546
+  uint8_t Table_7_0_dBm_H;
547
+  uint8_t Table_7_0_dBm_L;
548
+  uint8_t Table_7_5_dBm_H;
549
+  uint8_t Table_7_5_dBm_L;
550
+  uint8_t Table_8_0_dBm_H;
551
+  uint8_t Table_8_0_dBm_L;
552
+  uint8_t Table_8_5_dBm_H;
553
+  uint8_t Table_8_5_dBm_L;
554
+  uint8_t Table_9_0_dBm_H;
555
+  uint8_t Table_9_0_dBm_L;
556
+  uint8_t Table_9_5_dBm_H;
557
+  uint8_t Table_9_5_dBm_L;
558
+  uint8_t Table_10_0_dBm_H;
559
+  uint8_t Table_10_0_dBm_L;
560
+  uint8_t Table_10_5_dBm_H;
561
+  uint8_t Table_10_5_dBm_L;
562
+  uint8_t Table_11_0_dBm_H;
563
+  uint8_t Table_11_0_dBm_L;
564
+  uint8_t Table_11_5_dBm_H;
565
+  uint8_t Table_11_5_dBm_L;
566
+  uint8_t Table_12_0_dBm_H;
567
+  uint8_t Table_12_0_dBm_L;
568
+  uint8_t Table_12_5_dBm_H;
569
+  uint8_t Table_12_5_dBm_L;
570
+  uint8_t Table_13_0_dBm_H;
571
+  uint8_t Table_13_0_dBm_L;
572
+  uint8_t Table_13_5_dBm_H;
573
+  uint8_t Table_13_5_dBm_L;
574
+  uint8_t Table_14_0_dBm_H;
575
+  uint8_t Table_14_0_dBm_L;
576
+  uint8_t Table_14_5_dBm_H;
577
+  uint8_t Table_14_5_dBm_L;
578
+  uint8_t Table_15_0_dBm_H;
579
+  uint8_t Table_15_0_dBm_L;
580
+  uint8_t Table_15_5_dBm_H;
581
+  uint8_t Table_15_5_dBm_L;
582
+  uint8_t Table_16_0_dBm_H;
583
+  uint8_t Table_16_0_dBm_L;
584
+  uint8_t Table_16_5_dBm_H;
585
+  uint8_t Table_16_5_dBm_L;
586
+  uint8_t Table_17_0_dBm_H;
587
+  uint8_t Table_17_0_dBm_L;
588
+  uint8_t Table_17_5_dBm_H;
589
+  uint8_t Table_17_5_dBm_L;
590
+  uint8_t Table_18_0_dBm_H;
591
+  uint8_t Table_18_0_dBm_L;
592
+  uint8_t Table_18_5_dBm_H;
593
+  uint8_t Table_18_5_dBm_L;
594
+  uint8_t Table_19_0_dBm_H;
595
+  uint8_t Table_19_0_dBm_L;
596
+  uint8_t Table_19_5_dBm_H;
597
+  uint8_t Table_19_5_dBm_L;
598
+  uint8_t Table_20_0_dBm_H;
599
+  uint8_t Table_20_0_dBm_L;
600
+  uint8_t Table_20_5_dBm_H;
601
+  uint8_t Table_20_5_dBm_L;
602
+  uint8_t Table_21_0_dBm_H;
603
+  uint8_t Table_21_0_dBm_L;
604
+  uint8_t Table_21_5_dBm_H;
605
+  uint8_t Table_21_5_dBm_L;
606
+  uint8_t Table_22_0_dBm_H;
607
+  uint8_t Table_22_0_dBm_L;
608
+  uint8_t Table_22_5_dBm_H;
609
+  uint8_t Table_22_5_dBm_L;
610
+  uint8_t Table_23_0_dBm_H;
611
+  uint8_t Table_23_0_dBm_L;
612
+  uint8_t Table_23_5_dBm_H;
613
+  uint8_t Table_23_5_dBm_L;
614
+  uint8_t Table_24_0_dBm_H;
615
+  uint8_t Table_24_0_dBm_L;
616
+  uint8_t Table_24_5_dBm_H;
617
+  uint8_t Table_24_5_dBm_L;
618
+  uint8_t Table_25_0_dBm_H;
619
+  uint8_t Table_25_0_dBm_L;
620
+  uint8_t Table_25_5_dBm_H;
621
+  uint8_t Table_25_5_dBm_L;
622
+  uint8_t Table_26_0_dBm_H;
623
+  uint8_t Table_26_0_dBm_L;
624
+  uint8_t Table_26_5_dBm_H;
625
+  uint8_t Table_26_5_dBm_L;
626
+  uint8_t Table_27_0_dBm_H;
627
+  uint8_t Table_27_0_dBm_L;
628
+  uint8_t Table_27_5_dBm_H;
629
+  uint8_t Table_27_5_dBm_L;
630
+  uint8_t Table_28_0_dBm_H;
631
+  uint8_t Table_28_0_dBm_L;
632
+  uint8_t Table_28_5_dBm_H;
633
+  uint8_t Table_28_5_dBm_L;
634
+  uint8_t Table_29_0_dBm_H;
635
+  uint8_t Table_29_0_dBm_L;
636
+  uint8_t Table_29_5_dBm_H;
637
+  uint8_t Table_29_5_dBm_L;
638
+  uint8_t Table_30_0_dBm_H;
639
+  uint8_t Table_30_0_dBm_L;
640
+  uint8_t Table_30_5_dBm_H;
641
+  uint8_t Table_30_5_dBm_L;
642
+  uint8_t Table_31_0_dBm_H;
643
+  uint8_t Table_31_0_dBm_L;
644
+  uint8_t Table_31_5_dBm_H;
645
+  uint8_t Table_31_5_dBm_L;
582 646
 }ATT_TABLE_st;
583 647
 typedef struct{
584 648
 
585
-  uint16_t Table_Det5_dBm	;
586
-  uint16_t Table_Det4_dBm	;
587
-  uint16_t Table_Det3_dBm	;
588
-  uint16_t Table_Det2_dBm	;
589
-  uint16_t Table_Det1_dBm	;
590
-  uint16_t Table_Det0_dBm	;
591
-  uint16_t Table_Det_1_dBm	;
592
-  uint16_t Table_Det_2_dBm	;
593
-  uint16_t Table_Det_3_dBm	;
594
-  uint16_t Table_Det_4_dBm	;
595
-  uint16_t Table_Det_5_dBm	;
596
-  uint16_t Table_Det_6_dBm	;
597
-  uint16_t Table_Det_7_dBm	;
598
-  uint16_t Table_Det_8_dBm	;
599
-  uint16_t Table_Det_9_dBm	;
600
-  uint16_t Table_Det_10_dBm	;
601
-  uint16_t Table_Det_11_dBm	;
602
-  uint16_t Table_Det_12_dBm	;
603
-  uint16_t Table_Det_13_dBm	;
604
-  uint16_t Table_Det_14_dBm	;
605
-  uint16_t Table_Det_15_dBm	;
606
-  uint16_t Table_Det_16_dBm	;
607
-  uint16_t Table_Det_17_dBm	;
608
-  uint16_t Table_Det_18_dBm	;
609
-  uint16_t Table_Det_19_dBm	;
610
-  uint16_t Table_Det_20_dBm	;
611
-  uint16_t Table_Det_21_dBm	;
612
-  uint16_t Table_Det_22_dBm	;
613
-  uint16_t Table_Det_23_dBm	;
614
-  uint16_t Table_Det_24_dBm	;
615
-  uint16_t Table_Det_25_dBm	;
649
+    uint8_t Table_Det5_dBm_H	;
650
+    uint8_t Table_Det5_dBm_L	;
651
+    uint8_t Table_Det4_dBm_H	;
652
+    uint8_t Table_Det4_dBm_L	;  
653
+    uint8_t Table_Det3_dBm_H	;
654
+    uint8_t Table_Det3_dBm_L	;
655
+    uint8_t Table_Det2_dBm_H	;
656
+    uint8_t Table_Det2_dBm_L	;
657
+    uint8_t Table_Det1_dBm_H	;
658
+    uint8_t Table_Det1_dBm_L	;
659
+    uint8_t Table_Det0_dBm_H	;
660
+    uint8_t Table_Det0_dBm_L	;
661
+    uint8_t Table_Det_1_dBm_H	;
662
+    uint8_t Table_Det_1_dBm_L	;
663
+    uint8_t Table_Det_2_dBm_H	;
664
+    uint8_t Table_Det_2_dBm_L	;
665
+    uint8_t Table_Det_3_dBm_H	;
666
+    uint8_t Table_Det_3_dBm_L	;
667
+    uint8_t Table_Det_4_dBm_H	;
668
+    uint8_t Table_Det_4_dBm_L	;
669
+    uint8_t Table_Det_5_dBm_H	;
670
+    uint8_t Table_Det_5_dBm_L	;  
671
+    uint8_t Table_Det_6_dBm_H	;
672
+    uint8_t Table_Det_6_dBm_L	;  
673
+    uint8_t Table_Det_7_dBm_H	;
674
+    uint8_t Table_Det_7_dBm_L	;
675
+    uint8_t Table_Det_8_dBm_H	;
676
+    uint8_t Table_Det_8_dBm_L	;
677
+    uint8_t Table_Det_9_dBm_H	;
678
+    uint8_t Table_Det_9_dBm_L	;
679
+    uint8_t Table_Det_10_dBm_H	;
680
+    uint8_t Table_Det_10_dBm_L	;  
681
+    uint8_t Table_Det_11_dBm_H	;
682
+    uint8_t Table_Det_11_dBm_L	;
683
+    uint8_t Table_Det_12_dBm_H	;
684
+    uint8_t Table_Det_12_dBm_L	;
685
+    uint8_t Table_Det_13_dBm_H	;
686
+    uint8_t Table_Det_13_dBm_L	;
687
+    uint8_t Table_Det_14_dBm_H	;
688
+    uint8_t Table_Det_14_dBm_L	;
689
+    uint8_t Table_Det_15_dBm_H	;
690
+    uint8_t Table_Det_15_dBm_L	;
691
+    uint8_t Table_Det_16_dBm_H	;
692
+    uint8_t Table_Det_16_dBm_L	;
693
+    uint8_t Table_Det_17_dBm_H	;
694
+    uint8_t Table_Det_17_dBm_L	;
695
+    uint8_t Table_Det_18_dBm_H	;
696
+    uint8_t Table_Det_18_dBm_L	;
697
+    uint8_t Table_Det_19_dBm_H	;
698
+    uint8_t Table_Det_19_dBm_L	;
699
+    uint8_t Table_Det_20_dBm_H	;
700
+    uint8_t Table_Det_20_dBm_L	;
701
+    uint8_t Table_Det_21_dBm_H	;
702
+    uint8_t Table_Det_21_dBm_L	;
703
+    uint8_t Table_Det_22_dBm_H	;
704
+    uint8_t Table_Det_22_dBm_L	;
705
+    uint8_t Table_Det_23_dBm_H	;
706
+    uint8_t Table_Det_23_dBm_L	;
707
+    uint8_t Table_Det_24_dBm_H	;
708
+    uint8_t Table_Det_24_dBm_L	;
709
+    uint8_t Table_Det_25_dBm_H	;
710
+    uint8_t Table_Det_25_dBm_L	;
616 711
 }DET_TABLEDL_st;
617 712
 typedef struct{
618
-  uint16_t Table_Det_15_dBm	;
619
-  uint16_t Table_Det_16_dBm	;
620
-  uint16_t Table_Det_17_dBm	;
621
-  uint16_t Table_Det_18_dBm	;
622
-  uint16_t Table_Det_19_dBm	;
623
-  uint16_t Table_Det_20_dBm	;
624
-  uint16_t Table_Det_21_dBm	;
625
-  uint16_t Table_Det_22_dBm	;
626
-  uint16_t Table_Det_23_dBm	;
627
-  uint16_t Table_Det_24_dBm	;
628
-  uint16_t Table_Det_25_dBm	;
629
-  uint16_t Table_Det_26_dBm	;
630
-  uint16_t Table_Det_27_dBm	;
631
-  uint16_t Table_Det_28_dBm	;
632
-  uint16_t Table_Det_29_dBm	;
633
-  uint16_t Table_Det_30_dBm	;
634
-  uint16_t Table_Det_31_dBm	;
635
-  uint16_t Table_Det_32_dBm	;
636
-  uint16_t Table_Det_33_dBm	;
637
-  uint16_t Table_Det_34_dBm	;
638
-  uint16_t Table_Det_35_dBm	;
639
-  uint16_t Table_Det_36_dBm	;
640
-  uint16_t Table_Det_37_dBm	;
641
-  uint16_t Table_Det_38_dBm	;
642
-  uint16_t Table_Det_39_dBm	;
643
-  uint16_t Table_Det_40_dBm	;
644
-  uint16_t Table_Det_41_dBm	;
645
-  uint16_t Table_Det_42_dBm	;
646
-  uint16_t Table_Det_43_dBm	;
647
-  uint16_t Table_Det_44_dBm	;
648
-  uint16_t Table_Det_45_dBm	;
649
-  uint16_t Table_Det_46_dBm	;
650
-  uint16_t Table_Det_47_dBm	;
651
-  uint16_t Table_Det_48_dBm	;
652
-  uint16_t Table_Det_49_dBm	;
653
-  uint16_t Table_Det_50_dBm	;
654
-  uint16_t Table_Det_51_dBm	;
655
-  uint16_t Table_Det_52_dBm	;
656
-  uint16_t Table_Det_53_dBm	;
657
-  uint16_t Table_Det_54_dBm	;
658
-  uint16_t Table_Det_55_dBm	;
659
-  uint16_t Table_Det_56_dBm	;
660
-  uint16_t Table_Det_57_dBm	;
661
-  uint16_t Table_Det_58_dBm	;
662
-  uint16_t Table_Det_59_dBm	;
663
-  uint16_t Table_Det_60_dBm	;
713
+  uint8_t Table_Det_15_dBm_H	;   uint8_t Table_Det_15_dBm_L	;
714
+  uint8_t Table_Det_16_dBm_H	;   uint8_t Table_Det_16_dBm_L	;
715
+  uint8_t Table_Det_17_dBm_H	;   uint8_t Table_Det_17_dBm_L	;
716
+  uint8_t Table_Det_18_dBm_H	;   uint8_t Table_Det_18_dBm_L	;
717
+  uint8_t Table_Det_19_dBm_H	;   uint8_t Table_Det_19_dBm_L	;
718
+  uint8_t Table_Det_20_dBm_H	;   uint8_t Table_Det_20_dBm_L	;
719
+  uint8_t Table_Det_21_dBm_H	;   uint8_t Table_Det_21_dBm_L	;
720
+  uint8_t Table_Det_22_dBm_H	;   uint8_t Table_Det_22_dBm_L	;
721
+  uint8_t Table_Det_23_dBm_H	;   uint8_t Table_Det_23_dBm_L	;
722
+  uint8_t Table_Det_24_dBm_H	;   uint8_t Table_Det_24_dBm_L	;
723
+  uint8_t Table_Det_25_dBm_H	;   uint8_t Table_Det_25_dBm_L	;
724
+  uint8_t Table_Det_26_dBm_H	;   uint8_t Table_Det_26_dBm_L	;
725
+  uint8_t Table_Det_27_dBm_H	;   uint8_t Table_Det_27_dBm_L	;
726
+  uint8_t Table_Det_28_dBm_H	;   uint8_t Table_Det_28_dBm_L	;
727
+  uint8_t Table_Det_29_dBm_H	;   uint8_t Table_Det_29_dBm_L	;
728
+  uint8_t Table_Det_30_dBm_H	;   uint8_t Table_Det_30_dBm_L	;
729
+  uint8_t Table_Det_31_dBm_H	;   uint8_t Table_Det_31_dBm_L	;
730
+  uint8_t Table_Det_32_dBm_H	;   uint8_t Table_Det_32_dBm_L	;
731
+  uint8_t Table_Det_33_dBm_H	;   uint8_t Table_Det_33_dBm_L	;
732
+  uint8_t Table_Det_34_dBm_H	;   uint8_t Table_Det_34_dBm_L	;
733
+  uint8_t Table_Det_35_dBm_H	;   uint8_t Table_Det_35_dBm_L	;
734
+  uint8_t Table_Det_36_dBm_H	;   uint8_t Table_Det_36_dBm_L	;
735
+  uint8_t Table_Det_37_dBm_H	;   uint8_t Table_Det_37_dBm_L	;
736
+  uint8_t Table_Det_38_dBm_H	;   uint8_t Table_Det_38_dBm_L	;
737
+  uint8_t Table_Det_39_dBm_H	;   uint8_t Table_Det_39_dBm_L	;
738
+  uint8_t Table_Det_40_dBm_H	;   uint8_t Table_Det_40_dBm_L	;
739
+  uint8_t Table_Det_41_dBm_H	;   uint8_t Table_Det_41_dBm_L	;
740
+  uint8_t Table_Det_42_dBm_H	;   uint8_t Table_Det_42_dBm_L	;
741
+  uint8_t Table_Det_43_dBm_H	;   uint8_t Table_Det_43_dBm_L	;
742
+  uint8_t Table_Det_44_dBm_H	;   uint8_t Table_Det_44_dBm_L	;
743
+  uint8_t Table_Det_45_dBm_H	;   uint8_t Table_Det_45_dBm_L	;
744
+  uint8_t Table_Det_46_dBm_H	;   uint8_t Table_Det_46_dBm_L	;
745
+  uint8_t Table_Det_47_dBm_H	;   uint8_t Table_Det_47_dBm_L	;
746
+  uint8_t Table_Det_48_dBm_H	;   uint8_t Table_Det_48_dBm_L	;
747
+  uint8_t Table_Det_49_dBm_H	;   uint8_t Table_Det_49_dBm_L	;
748
+  uint8_t Table_Det_50_dBm_H	;   uint8_t Table_Det_50_dBm_L	;
749
+  uint8_t Table_Det_51_dBm_H	;   uint8_t Table_Det_51_dBm_L	;
750
+  uint8_t Table_Det_52_dBm_H	;   uint8_t Table_Det_52_dBm_L	;
751
+  uint8_t Table_Det_53_dBm_H	;   uint8_t Table_Det_53_dBm_L	;
752
+  uint8_t Table_Det_54_dBm_H	;   uint8_t Table_Det_54_dBm_L	;
753
+  uint8_t Table_Det_55_dBm_H	;   uint8_t Table_Det_55_dBm_L	;
754
+  uint8_t Table_Det_56_dBm_H	;   uint8_t Table_Det_56_dBm_L	;
755
+  uint8_t Table_Det_57_dBm_H	;   uint8_t Table_Det_57_dBm_L	;
756
+  uint8_t Table_Det_58_dBm_H	;   uint8_t Table_Det_58_dBm_L	;
757
+  uint8_t Table_Det_59_dBm_H	;   uint8_t Table_Det_59_dBm_L	;
758
+  uint8_t Table_Det_60_dBm_H	;   uint8_t Table_Det_60_dBm_L	;
664 759
 }DET_TABLEUL_st;
665 760
 
666 761
 typedef struct{
667 762
 
668
-  uint16_t Table_10_Temp;
669
-  uint16_t Table_15_Temp;
670
-  uint16_t Table_20_Temp;
671
-  uint16_t Table_25_Temp;
672
-  uint16_t Table_30_Temp;
673
-  uint16_t Table_35_Temp;
674
-  uint16_t Table_40_Temp;
675
-  uint16_t Table_45_Temp;
676
-  uint16_t Table_50_Temp;
677
-  uint16_t Table_55_Temp;
763
+  uint8_t Table_10_Temp_H;   uint8_t Table_10_Temp_L;
764
+  uint8_t Table_15_Temp_H;   uint8_t Table_15_Temp_L;
765
+  uint8_t Table_20_Temp_H;   uint8_t Table_20_Temp_L;
766
+  uint8_t Table_25_Temp_H;   uint8_t Table_25_Temp_L;
767
+  uint8_t Table_30_Temp_H;   uint8_t Table_30_Temp_L;
768
+  uint8_t Table_35_Temp_H;   uint8_t Table_35_Temp_L;
769
+  uint8_t Table_40_Temp_H;   uint8_t Table_40_Temp_L;
770
+  uint8_t Table_45_Temp_H;   uint8_t Table_45_Temp_L;
771
+  uint8_t Table_50_Temp_H;   uint8_t Table_50_Temp_L;
772
+  uint8_t Table_55_Temp_H;   uint8_t Table_55_Temp_L;
678 773
 }TEMP_TABLE_st;
679 774
 typedef enum{
680 775
   Bluecell_DET_UL1_ADC_INDEX_H = 0,

+ 56 - 32
Bluecell_Inc/eeprom.h

@@ -13,38 +13,62 @@
13 13
 #define EEPROM_Block0_ADDRESS             EEPROM_M24C08_ID
14 14
 #define EEPROM_ATT_BASE					  0x0000
15 15
 
16
-#define EEPROM_ATT_DL1_TABLE_ADDRESDS	  EEPROM_ATT_BASE               + (sizeof(ATT_TABLE_st)            * 2)
17
-#define EEPROM_ATT_DL2_TABLE_ADDRESDS	  EEPROM_ATT_DL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
18
-#define EEPROM_ATT_DL3_TABLE_ADDRESDS	  EEPROM_ATT_DL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
19
-#define EEPROM_ATT_DL4_TABLE_ADDRESDS	  EEPROM_ATT_DL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
16
+#if 1 // PYJ.2020.04.25_BEGIN -- 
17
+#define EEPROM_WINDOW_STATUS_ADDRESDS	 ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st) + 20)) & 0xFFFF) //96byte
18
+#define EEPROM_ATT_DL1_TABLE_ADDRESDS	 (( EEPROM_WINDOW_STATUS_ADDRESDS  + (sizeof(ATT_TABLE_st))  )& 0xFFFF) //128
19
+#define EEPROM_ATT_DL2_TABLE_ADDRESDS	 (( EEPROM_ATT_DL1_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF) 
20
+#define EEPROM_ATT_DL3_TABLE_ADDRESDS	 (( EEPROM_ATT_DL2_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF)
21
+#define EEPROM_ATT_DL4_TABLE_ADDRESDS	 (( EEPROM_ATT_DL3_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF)
22
+#define EEPROM_ATT_UL1_TABLE_ADDRESDS	 (( EEPROM_ATT_DL4_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
23
+#define EEPROM_ATT_UL2_TABLE_ADDRESDS	 (( EEPROM_ATT_UL1_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
24
+#define EEPROM_ATT_UL3_TABLE_ADDRESDS	 (( EEPROM_ATT_UL2_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
25
+#define EEPROM_ATT_UL4_TABLE_ADDRESDS	 (( EEPROM_ATT_UL3_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)//128
26
+#define EEPROM_DET_DL1_TABLE_ADDRESDS	 (( EEPROM_ATT_UL4_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)+ 2))    & 0xFFFF)
27
+#define EEPROM_DET_DL2_TABLE_ADDRESDS	 (( EEPROM_DET_DL1_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)+ 2))    & 0xFFFF)
28
+#define EEPROM_DET_DL3_TABLE_ADDRESDS	 (( EEPROM_DET_DL2_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)+ 2))    & 0xFFFF)
29
+#define EEPROM_DET_DL4_TABLE_ADDRESDS	 (( EEPROM_DET_DL3_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)+ 2))    & 0xFFFF)
30
+#define EEPROM_DET_UL1_TABLE_ADDRESDS	 (( EEPROM_DET_DL4_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st) + 4))     & 0xFFFF)
31
+#define EEPROM_DET_UL2_TABLE_ADDRESDS	 (( EEPROM_DET_UL1_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)+ 4))     & 0xFFFF)
32
+#define EEPROM_DET_UL3_TABLE_ADDRESDS	 (( EEPROM_DET_UL2_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)+ 4))     & 0xFFFF)
33
+#define EEPROM_DET_UL4_TABLE_ADDRESDS	 (( EEPROM_DET_UL3_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)+ 4))     & 0xFFFF)
34
+#define EEPROM_TEMP_DL1_TABLE_ADDRESDS	 (( EEPROM_DET_UL4_TABLE_ADDRESDS  + (sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
35
+#define EEPROM_TEMP_DL2_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
36
+#define EEPROM_TEMP_DL3_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
37
+#define EEPROM_TEMP_DL4_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
38
+#define EEPROM_TEMP_UL1_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL4_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
39
+#define EEPROM_TEMP_UL2_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
40
+#define EEPROM_TEMP_UL3_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
41
+#define EEPROM_TEMP_UL4_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12))     & 0xFFFF)
42
+#else
43
+#define EEPROM_WINDOW_STATUS_ADDRESDS	 ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st))) & 0xFFFF) //96byte
44
+#define EEPROM_ATT_DL1_TABLE_ADDRESDS	 (( EEPROM_WINDOW_STATUS_ADDRESDS  + (sizeof(ATT_TABLE_st))  )& 0xFFFF) //128
45
+#define EEPROM_ATT_DL2_TABLE_ADDRESDS	 (( EEPROM_ATT_DL1_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF) 
46
+#define EEPROM_ATT_DL3_TABLE_ADDRESDS	 (( EEPROM_ATT_DL2_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF)
47
+#define EEPROM_ATT_DL4_TABLE_ADDRESDS	 (( EEPROM_ATT_DL3_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  ) & 0xFFFF)
48
+#define EEPROM_ATT_UL1_TABLE_ADDRESDS	 (( EEPROM_ATT_DL4_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
49
+#define EEPROM_ATT_UL2_TABLE_ADDRESDS	 (( EEPROM_ATT_UL1_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
50
+#define EEPROM_ATT_UL3_TABLE_ADDRESDS	 (( EEPROM_ATT_UL2_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)
51
+#define EEPROM_ATT_UL4_TABLE_ADDRESDS	 (( EEPROM_ATT_UL3_TABLE_ADDRESDS  + (sizeof(ATT_TABLE_st))  )    & 0xFFFF)//128
52
+#define EEPROM_DET_DL1_TABLE_ADDRESDS	 (( EEPROM_ATT_UL4_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)))    & 0xFFFF)
53
+#define EEPROM_DET_DL2_TABLE_ADDRESDS	 (( EEPROM_DET_DL1_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)))    & 0xFFFF)
54
+#define EEPROM_DET_DL3_TABLE_ADDRESDS	 (( EEPROM_DET_DL2_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)))    & 0xFFFF)
55
+#define EEPROM_DET_DL4_TABLE_ADDRESDS	 (( EEPROM_DET_DL3_TABLE_ADDRESDS  + (sizeof(DET_TABLEDL_st)))    & 0xFFFF)
56
+#define EEPROM_DET_UL1_TABLE_ADDRESDS	 (( EEPROM_DET_DL4_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)))     & 0xFFFF)
57
+#define EEPROM_DET_UL2_TABLE_ADDRESDS	 (( EEPROM_DET_UL1_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)))     & 0xFFFF)
58
+#define EEPROM_DET_UL3_TABLE_ADDRESDS	 (( EEPROM_DET_UL2_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)))     & 0xFFFF)
59
+#define EEPROM_DET_UL4_TABLE_ADDRESDS	 (( EEPROM_DET_UL3_TABLE_ADDRESDS  + (sizeof(DET_TABLEUL_st)))     & 0xFFFF)
60
+#define EEPROM_TEMP_DL1_TABLE_ADDRESDS	 (( EEPROM_DET_UL4_TABLE_ADDRESDS  + (sizeof(TEMP_TABLE_st)))     & 0xFFFF)
61
+#define EEPROM_TEMP_DL2_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
62
+#define EEPROM_TEMP_DL3_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
63
+#define EEPROM_TEMP_DL4_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
64
+#define EEPROM_TEMP_UL1_TABLE_ADDRESDS	 (( EEPROM_TEMP_DL4_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
65
+#define EEPROM_TEMP_UL2_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
66
+#define EEPROM_TEMP_UL3_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
67
+#define EEPROM_TEMP_UL4_TABLE_ADDRESDS	 (( EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)))     & 0xFFFF)
68
+
69
+#endif // PYJ.2020.04.25_END -- 
20 70
 
21
-#define EEPROM_ATT_UL1_TABLE_ADDRESDS	  EEPROM_ATT_DL4_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
22
-#define EEPROM_ATT_UL2_TABLE_ADDRESDS	  EEPROM_ATT_UL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
23
-#define EEPROM_ATT_UL3_TABLE_ADDRESDS	  EEPROM_ATT_UL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
24
-#define EEPROM_ATT_UL4_TABLE_ADDRESDS	  EEPROM_ATT_UL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)            * 2)
25 71
 
26
-#define EEPROM_DET_DL1_TABLE_ADDRESDS	  EEPROM_ATT_UL4_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)          * 2)
27
-#define EEPROM_DET_DL2_TABLE_ADDRESDS	  EEPROM_DET_DL1_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)          * 2)
28
-#define EEPROM_DET_DL3_TABLE_ADDRESDS	  EEPROM_DET_DL2_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)          * 2)
29
-#define EEPROM_DET_DL4_TABLE_ADDRESDS	  EEPROM_DET_DL3_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)          * 2)
30
-
31
-#define EEPROM_DET_UL1_TABLE_ADDRESDS	  EEPROM_DET_DL4_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)          * 2)
32
-#define EEPROM_DET_UL2_TABLE_ADDRESDS	  EEPROM_DET_UL1_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)          * 2)
33
-#define EEPROM_DET_UL3_TABLE_ADDRESDS	  EEPROM_DET_UL2_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)          * 2)
34
-#define EEPROM_DET_UL4_TABLE_ADDRESDS	  EEPROM_DET_UL3_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)          * 2)
35
-
36
-#define EEPROM_TEMP_DL1_TABLE_ADDRESDS	  EEPROM_DET_UL4_TABLE_ADDRESDS + (sizeof(TEMP_TABLE_st)           * 2)
37
-#define EEPROM_TEMP_DL2_TABLE_ADDRESDS	  EEPROM_TEMP_DL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
38
-#define EEPROM_TEMP_DL3_TABLE_ADDRESDS	  EEPROM_TEMP_DL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
39
-#define EEPROM_TEMP_DL4_TABLE_ADDRESDS	  EEPROM_TEMP_DL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
40
-
41
-#define EEPROM_TEMP_UL1_TABLE_ADDRESDS	  EEPROM_TEMP_DL4_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
42
-#define EEPROM_TEMP_UL2_TABLE_ADDRESDS	  EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
43
-#define EEPROM_TEMP_UL3_TABLE_ADDRESDS	  EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
44
-#define EEPROM_TEMP_UL4_TABLE_ADDRESDS	  EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)          * 2)
45
-
46
-
47
-#define EEPROM_WINDOW_STATUS_ADDRESDS	  EEPROM_TEMP_UL4_TABLE_ADDRESDS +( sizeof(BLUESTATUS_st)          * 2)
48 72
 
49 73
 #define MAKE_ADDRESS(_addr, _e2)            ((uint8_t)EEPROM_M24C08_ADDR | \
50 74
                                              ((_e2) ? EEPROM_M24C08_ADDR_E2 : 0) | \
@@ -58,8 +82,8 @@
58 82
 
59 83
 #define EEPROM_M24C08_BYTE_ADDR_H           0x06
60 84
 
61
-HAL_StatusTypeDef EEPROM_M24C08_Read(uint16_t devid,uint16_t Address,uint16_t* data,uint8_t size);
62
-HAL_StatusTypeDef EEPROM_M24C08_write(uint16_t devid,uint16_t Address,uint16_t* data,uint8_t size);
85
+HAL_StatusTypeDef EEPROM_M24C08_Read(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size);
86
+HAL_StatusTypeDef EEPROM_M24C08_write(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size);
63 87
 
64 88
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
65 89
 HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);

+ 298 - 186
Bluecell_Src/Bluecell_operate.c

@@ -76,19 +76,74 @@ typedef struct{
76 76
 extern ALL_PE43711_st ALL_ATT;
77 77
 BLUESTATUS_st bluecell_Currdatastatus;
78 78
 BLUESTATUS_st bluecell_Prevdatastatus;
79
+double TableAtteGuarantee(uint8_t* Table,double AttenValue);
80
+uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit);
81
+uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit);
82
+double PE43711_Double(uint8_t high_bit,uint8_t low_bit);
79 83
 
80
-uint8_t PE43711_Calc(uint8_t high_bit,uint8_t low_bit){
84
+
85
+
86
+uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit){
87
+    uint8_t tmp_h = high_bit,tmp_l = low_bit;
88
+    double ret = 0;
89
+    uint8_t val = 0;
90
+    ret = PE43711_Double(high_bit,low_bit);
91
+//    printf("ret1 : %f \r\n",ret); // 2
92
+    ret = TableAtteGuarantee(Table,ret);//Table Guarantee
93
+//    printf("ret2 : %f \r\n",ret);
94
+    val = PE43711_DataToHexConvert(ret);
95
+}
96
+uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit){
97
+    uint16_t tmp_h = high_bit,tmp_l = low_bit;
98
+    double ret = 0;
99
+    uint8_t val = 0;
100
+    ret = PE43711_Double(high_bit,low_bit);
101
+
102
+    val = PE43711_DataToHexConvert(ret);
103
+
104
+}
105
+double PE43711_Double(uint8_t high_bit,uint8_t low_bit){
81 106
     uint16_t tmp_h = 0,tmp_l = 0;
82 107
     double ret = 0;
83 108
     uint8_t val = 0;
84 109
     tmp_h = high_bit;
85 110
     tmp_l = low_bit;
86
-    ret += ((tmp_h << 8) & 0xFF00);
111
+    ret = ((tmp_h << 8) & 0xFF00);
87 112
     ret += (tmp_l & 0x00FF);
113
+    if((((tmp_h << 8) & 0xFF00) & 0xF000) == 0xF000){
114
+//        printf("minus Calc Start\r\n");
115
+        ret = 0xFFFF - ret;
116
+//        printf("0xFFFF - %x\r\n",ret);
117
+        ret += 0x01;
118
+        ret = ret - (2*ret);
119
+//        printf("ret :  %x\r\n",ret);        
120
+    }
121
+//    printf("%s 1: ret : %x\r\n",__func__,ret);
88 122
     ret /= 100;
89
-    val = PE43711_DataToHexConvert(ret);
123
+//    printf("%s 2: ret : %f\r\n",__func__,ret);
124
+    return ret;
90 125
 
91 126
 }
127
+uint8_t GuaranteeData[256];
128
+double TableAtteGuarantee(uint8_t* Table,double AttenValue){
129
+    double ret = 0;
130
+    double ref = 0;
131
+    uint8_t cnt = 0;
132
+    for(double ref = 0; ref < AttenValue; ref += 0.5){
133
+        cnt++;       
134
+    }
135
+    
136
+    Bluecell_StructCpy(&GuaranteeData[0],&Table[0],sizeof(ATT_TABLE_st));
137
+    
138
+//    printf("H  : %x   L : %x \r\n",GuaranteeData[cnt * 2],GuaranteeData[cnt * 2 + 1]);
139
+    ret = PE43711_Double(GuaranteeData[cnt * 2],GuaranteeData[cnt * 2 + 1]);
140
+//    printf("ret3 : %f \r\n",ret); //1
141
+    ret += AttenValue;
142
+//    printf("ret4 : %f \r\n",ret);
143
+    return ret;
144
+
145
+}
146
+
92 147
 
93 148
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
94 149
      uint8_t val = 0;
@@ -96,7 +151,8 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
96 151
      ||Curr.ATT_DL1_L != Prev.ATT_DL1_L){
97 152
         bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
98 153
         bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
99
-        val = PE43711_Calc(Curr.ATT_DL1_H,Curr.ATT_DL1_L);
154
+        
155
+        val = PE43711_Calc(&Att_DL1.Table_0_0_dBm_H,Curr.ATT_DL1_H,Curr.ATT_DL1_L);
100 156
 //        printf("%d val = %x \r\n",__LINE__,val);
101 157
         PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
102 158
     }
@@ -105,7 +161,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
105 161
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)){
106 162
         bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
107 163
         bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
108
-        val = PE43711_Calc(Curr.ATT_DL2_H,Curr.ATT_DL2_L);
164
+        val = PE43711_Calc(&Att_DL2.Table_0_0_dBm_H,Curr.ATT_DL2_H,Curr.ATT_DL2_L);
109 165
 //        printf("%d val = %x \r\n",__LINE__,val);
110 166
         PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
111 167
     }
@@ -114,7 +170,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
114 170
      ||Curr.ATT_DL3_L != Prev.ATT_DL3_L){
115 171
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
116 172
         bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
117
-        val = PE43711_Calc(Curr.ATT_DL3_H,Curr.ATT_DL3_L);
173
+        val = PE43711_Calc(&Att_DL3.Table_0_0_dBm_H,Curr.ATT_DL3_H,Curr.ATT_DL3_L);
118 174
 //        printf("%d val = %x \r\n",__LINE__,val);
119 175
         PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
120 176
     }
@@ -125,7 +181,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
125 181
      ||Curr.ATT_DL4_L != Prev.ATT_DL4_L){
126 182
         bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
127 183
         bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
128
-        val = PE43711_Calc(Curr.ATT_DL4_H,Curr.ATT_DL4_L);
184
+        val = PE43711_Calc(&Att_DL4.Table_0_0_dBm_H,Curr.ATT_DL4_H,Curr.ATT_DL4_L);
129 185
 //        printf("%d val = %x \r\n",__LINE__,val);
130 186
         PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
131 187
     }
@@ -135,7 +191,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
135 191
      ||Curr.ATT_UL1_L != Prev.ATT_UL1_L){
136 192
         bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
137 193
         bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
138
-        val = PE43711_Calc(Curr.ATT_UL1_H,Curr.ATT_UL1_L);
194
+        val = PE43711_Calc(&Att_UL1.Table_0_0_dBm_H,Curr.ATT_UL1_H,Curr.ATT_UL1_L);
139 195
 //        printf("%d val = %x \r\n",__LINE__,val);
140 196
         PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
141 197
     }
@@ -143,7 +199,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
143 199
      ||Curr.ATT_UL2_L != Prev.ATT_UL2_L){
144 200
         bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
145 201
         bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
146
-        val = PE43711_Calc(Curr.ATT_UL2_H,Curr.ATT_UL2_L);
202
+        val = PE43711_Calc(&Att_UL2.Table_0_0_dBm_H,Curr.ATT_UL2_H,Curr.ATT_UL2_L);
147 203
 //        printf("%d val = %x \r\n",__LINE__,val);
148 204
         PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
149 205
     }
@@ -153,7 +209,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
153 209
         bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
154 210
         bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
155 211
         
156
-        val = PE43711_Calc(Curr.ATT_UL3_H,Curr.ATT_UL3_L);
212
+        val = PE43711_Calc(&Att_UL3.Table_0_0_dBm_H,Curr.ATT_UL3_H,Curr.ATT_UL3_L);
157 213
 //        printf("%d val = %x \r\n",__LINE__,val);
158 214
         PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
159 215
     }
@@ -162,7 +218,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
162 218
         bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
163 219
         bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
164 220
         
165
-        val = PE43711_Calc(Curr.ATT_UL4_H,Curr.ATT_UL4_L);
221
+        val = PE43711_Calc(&Att_UL4.Table_0_0_dBm_H,Curr.ATT_UL4_H,Curr.ATT_UL4_L);
166 222
 //        printf("%d val = %x \r\n",__LINE__,val);
167 223
         PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
168 224
     }
@@ -174,7 +230,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
174 230
      
175 231
         bluecell_Prevdatastatus.ATT_ALC1_H = bluecell_Currdatastatus.ATT_ALC1_H;
176 232
         bluecell_Prevdatastatus.ATT_ALC1_L = bluecell_Currdatastatus.ATT_ALC1_L;
177
-        val = PE43711_Calc(Curr.ATT_ALC1_H,Curr.ATT_ALC1_L);
233
+        val = PE43711_Calc(&Att_UL1.Table_0_0_dBm_H,Curr.ATT_ALC1_H,Curr.ATT_ALC1_L);
178 234
 //        val = PE43711_DataToHexConvert(ret);
179 235
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
180 236
 
@@ -183,7 +239,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
183 239
      ||Curr.ATT_ALC2_L != Prev.ATT_ALC2_L){
184 240
         bluecell_Prevdatastatus.ATT_ALC2_H = bluecell_Currdatastatus.ATT_ALC2_H;
185 241
         bluecell_Prevdatastatus.ATT_ALC2_L = bluecell_Currdatastatus.ATT_ALC2_L;
186
-        val = PE43711_Calc(Curr.ATT_ALC2_H,Curr.ATT_ALC2_L);
242
+        val = PE43711_Calc(&Att_UL2.Table_0_0_dBm_H,Curr.ATT_ALC2_H,Curr.ATT_ALC2_L);
187 243
 
188 244
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
189 245
 
@@ -192,17 +248,17 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
192 248
      ||Curr.ATT_ALC3_L != Prev.ATT_ALC3_L){
193 249
         bluecell_Prevdatastatus.ATT_ALC3_H = bluecell_Currdatastatus.ATT_ALC3_H;
194 250
         bluecell_Prevdatastatus.ATT_ALC3_L = bluecell_Currdatastatus.ATT_ALC3_L;
195
-        val = PE43711_Calc(Curr.ATT_ALC3_H,Curr.ATT_ALC3_L);
251
+        val = PE43711_Calc(&Att_UL3.Table_0_0_dBm_H,Curr.ATT_ALC3_H,Curr.ATT_ALC3_L);
196 252
 
197 253
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
198 254
 
199 255
     }
200 256
     if(Curr.ATT_ALC4_H != Prev.ATT_ALC4_H
201 257
      ||Curr.ATT_ALC4_L != Prev.ATT_ALC4_L){
202
-        printf("Curr.ATT_ALC4_H : %x Curr.ATT_ALC4_L : %x\r\n",Curr.ATT_ALC4_H,Curr.ATT_ALC4_L);
258
+//        printf("Curr.ATT_ALC4_H : %x Curr.ATT_ALC4_L : %x\r\n",Curr.ATT_ALC4_H,Curr.ATT_ALC4_L);
203 259
         bluecell_Prevdatastatus.ATT_ALC4_H = bluecell_Currdatastatus.ATT_ALC4_H;
204 260
         bluecell_Prevdatastatus.ATT_ALC4_L = bluecell_Currdatastatus.ATT_ALC4_L;
205
-        val = PE43711_Calc(Curr.ATT_ALC4_H,Curr.ATT_ALC4_L);
261
+        val = PE43711_Calc(&Att_UL4.Table_0_0_dBm_H,Curr.ATT_ALC4_H,Curr.ATT_ALC4_L);
206 262
 
207 263
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
208 264
 
@@ -213,7 +269,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
213 269
      ||Curr.ATT_AGC1_L != Prev.ATT_AGC1_L){
214 270
         bluecell_Prevdatastatus.ATT_AGC1_H = bluecell_Currdatastatus.ATT_AGC1_H;
215 271
         bluecell_Prevdatastatus.ATT_AGC1_L = bluecell_Currdatastatus.ATT_AGC1_L;
216
-        val = PE43711_Calc(Curr.ATT_AGC1_H,Curr.ATT_AGC1_L);
272
+        val = PE43711_Calc(&Att_DL1.Table_0_0_dBm_H,Curr.ATT_AGC1_H,Curr.ATT_AGC1_L);
217 273
 
218 274
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
219 275
 
@@ -222,7 +278,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
222 278
      ||Curr.ATT_AGC2_L != Prev.ATT_AGC2_L){
223 279
         bluecell_Prevdatastatus.ATT_AGC2_H = bluecell_Currdatastatus.ATT_AGC2_H;
224 280
         bluecell_Prevdatastatus.ATT_AGC2_L = bluecell_Currdatastatus.ATT_AGC2_L;
225
-        val = PE43711_Calc(Curr.ATT_AGC2_H,Curr.ATT_AGC2_L);
281
+        val = PE43711_Calc(&Att_DL2.Table_0_0_dBm_H,Curr.ATT_AGC2_H,Curr.ATT_AGC2_L);
226 282
 
227 283
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
228 284
 
@@ -231,7 +287,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
231 287
      ||Curr.ATT_AGC3_L != Prev.ATT_AGC3_L){
232 288
         bluecell_Prevdatastatus.ATT_AGC3_H = bluecell_Currdatastatus.ATT_AGC3_H;
233 289
         bluecell_Prevdatastatus.ATT_AGC3_L = bluecell_Currdatastatus.ATT_AGC3_L;
234
-        val = PE43711_Calc(Curr.ATT_AGC3_H,Curr.ATT_AGC3_L);
290
+        val = PE43711_Calc(&Att_DL3.Table_0_0_dBm_H,Curr.ATT_AGC3_H,Curr.ATT_AGC3_L);
235 291
 
236 292
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
237 293
 
@@ -240,16 +296,13 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
240 296
      ||Curr.ATT_AGC4_L != Prev.ATT_AGC4_L){
241 297
         bluecell_Prevdatastatus.ATT_AGC4_H = bluecell_Currdatastatus.ATT_AGC4_H;
242 298
         bluecell_Prevdatastatus.ATT_AGC4_L = bluecell_Currdatastatus.ATT_AGC4_L;
243
-        val = PE43711_Calc(Curr.ATT_AGC4_H,Curr.ATT_AGC4_L);
299
+        val = PE43711_Calc(&Att_DL4.Table_0_0_dBm_H,Curr.ATT_AGC4_H,Curr.ATT_AGC4_L);
244 300
 
245 301
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
246 302
 
247 303
     }
248 304
 #endif // PYJ.2020.04.21_END -- 
249 305
      
250
-}
251
-void Bluecell_DataCopy(){
252
-
253 306
 }
254 307
 
255 308
 typedef enum{
@@ -307,13 +360,13 @@ TEMP_TABLE_st Temp_UL1;
307 360
 TEMP_TABLE_st Temp_UL2;
308 361
 TEMP_TABLE_st Temp_UL3;
309 362
 TEMP_TABLE_st Temp_UL4;
310
-void Bluecell_StructCopyFunction(uint16_t* dst,uint8_t* src,uint8_t size){
311
-  for(int i = 0; i < size; i++){
363
+void Bluecell_StructCopyFunction(uint16_t* dst,uint8_t* src,uint16_t size){
364
+  for(int i = 0; i < size / 2; i++){
312 365
     dst[i]  = ((src[i * 2] << 8) & 0xFF00);
313 366
     dst[i]  += src[i * 2 + 1] & 0x00FF;
314 367
   }
315 368
 }
316
-void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint8_t size){
369
+void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint16_t size){
317 370
   for(int i = 0; i < size; i++){
318 371
     dst[i]  = src[i];
319 372
   }
@@ -342,7 +395,7 @@ OneByteToTwoByte ConvertTo1Byte(uint16_t data){
342 395
 
343 396
 void Bluecell_Struct2byteCopyFunction(uint8_t* dst,uint16_t* src,uint8_t size){
344 397
   OneByteToTwoByte convert;
345
-  for(int i = 0; i < size; i++){
398
+  for(int i = 0; i < (size / 2); i++){
346 399
     convert = ConvertTo1Byte(src[i]);
347 400
     dst[i * 2]      = convert.High_bit;
348 401
     dst[i * 2 + 1]  = convert.Low_bit;
@@ -350,121 +403,152 @@ void Bluecell_Struct2byteCopyFunction(uint8_t* dst,uint16_t* src,uint8_t size){
350 403
 }
351 404
 void Bluecell_structprintf(uint8_t* dst,uint8_t size){
352 405
   for(int i = 0; i < size; i++){
353
-    printf("%x ",dst[i]);
406
+    printf("Index[%d]%x \r\n",i,dst[i]);
354 407
   }
355 408
 }
356 409
 
410
+
411
+uint8_t DataWrite[512] = {0,};
412
+uint8_t DataRead[512] = {0,};
413
+void Bluecell_DataCopy(uint8_t* dst,uint8_t* src,uint16_t size){
414
+    for(int i = 0; i < size; i++){
415
+      dst[i] = src[i];
416
+    }
417
+
418
+}
357 419
 void Bluecell_TableLoad(uint8_t* data){
358 420
     uint8_t tabletype = data[BLUECELL_DATA];
359 421
 //    OneByteToTwoByte data;
360 422
 //    printf("%s : %x \r\n",__func__,tabletype);
361
-
362 423
     switch(tabletype){
363 424
         case Bluecell_Table_ATT_DL1: 
364
-          EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_BASE,1),&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
365
-          Bluecell_structprintf(&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
366
-          Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
367
-          data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
368
-          break;
369
-        case Bluecell_Table_ATT_UL1: 
370
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
425
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,EEPROM_WINDOW_STATUS_ADDRESDS              ,&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
426
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
427
+//            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
371 428
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
372
-        break;
429
+          break;
373 430
         case Bluecell_Table_ATT_DL2: 
374
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
431
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL1_TABLE_ADDRESDS),&Att_DL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );   
432
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
375 433
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
376 434
             break;
377
-        case Bluecell_Table_ATT_UL2: 
378
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
435
+        case Bluecell_Table_ATT_DL3: 
436
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL2_TABLE_ADDRESDS),&Att_DL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );               
437
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
379 438
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
380 439
             break;
381
-        case Bluecell_Table_ATT_DL3: 
382
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
440
+        case Bluecell_Table_ATT_DL4: 
441
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL3_TABLE_ADDRESDS),&Att_DL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );               
442
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
383 443
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
384 444
             break;
385
-        case Bluecell_Table_ATT_UL3: 
386
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
445
+        case Bluecell_Table_ATT_UL1: 
446
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL4_TABLE_ADDRESDS),&Att_UL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );   
447
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
448
+            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
449
+        break;
450
+        case Bluecell_Table_ATT_UL2: 
451
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL1_TABLE_ADDRESDS),&Att_UL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );   
452
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
387 453
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
388 454
             break;
389
-        case Bluecell_Table_ATT_DL4: 
390
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
455
+        case Bluecell_Table_ATT_UL3: 
456
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL2_TABLE_ADDRESDS),&Att_UL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );   
457
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
391 458
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
392 459
             break;
393 460
         case Bluecell_Table_ATT_UL4: 
394
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st)/ 2);
461
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL3_TABLE_ADDRESDS),&Att_UL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );   
462
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
395 463
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
396 464
             break;
397 465
         case Bluecell_Table_DET_DL1: 
398
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_DL1.Table_Det5_dBm,sizeof(DET_TABLEDL_st)/ 2);
466
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL4_TABLE_ADDRESDS),&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
467
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
399 468
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
400 469
             break;
401
-        case Bluecell_Table_DET_UL1: 
402
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_UL1.Table_Det_15_dBm,sizeof(DET_TABLEUL_st)/ 2);
403
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
404
-            break;
405 470
         case Bluecell_Table_DET_DL2: 
406
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_DL2.Table_Det5_dBm,sizeof(DET_TABLEDL_st)/ 2);
471
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL1_TABLE_ADDRESDS),&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
472
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
407 473
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
408
-            break;
409
-        case Bluecell_Table_DET_UL2: 
410
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_UL2.Table_Det_15_dBm,sizeof(DET_TABLEUL_st)/ 2);
411
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
412
-
413 474
             break;
414 475
         case Bluecell_Table_DET_DL3: 
415
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_DL3.Table_Det5_dBm,sizeof(DET_TABLEDL_st)/ 2);
476
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL2_TABLE_ADDRESDS),&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
477
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
416 478
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
417 479
             break;
418
-        case Bluecell_Table_DET_UL3: 
419
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_UL3.Table_Det_15_dBm,sizeof(DET_TABLEUL_st)/ 2);
420
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
421
-            break;
422 480
         case Bluecell_Table_DET_DL4: 
423
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_DL4.Table_Det5_dBm,sizeof(DET_TABLEDL_st)/ 2);
481
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL3_TABLE_ADDRESDS),&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
482
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
424 483
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
425 484
             break;
485
+        case Bluecell_Table_DET_UL1: 
486
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL4_TABLE_ADDRESDS),&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
487
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
488
+            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
489
+            break;
490
+        case Bluecell_Table_DET_UL2: 
491
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL1_TABLE_ADDRESDS),&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
492
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
493
+            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
494
+        
495
+            break;
496
+        case Bluecell_Table_DET_UL3: 
497
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL2_TABLE_ADDRESDS),&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
498
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
499
+            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
500
+            break;
426 501
         case Bluecell_Table_DET_UL4: 
427
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Det_UL4.Table_Det_15_dBm,sizeof(DET_TABLEUL_st)/ 2);
502
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL3_TABLE_ADDRESDS),&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
503
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
428 504
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
429 505
 
430 506
             break;
431 507
         case Bluecell_Table_TEMP_DL1:
432
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_DL1.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
508
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&Temp_DL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
509
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
433 510
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
434 511
 
435 512
             break;
436
-        case Bluecell_Table_TEMP_UL1:
437
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_UL1.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
513
+        case Bluecell_Table_TEMP_DL2:
514
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL1_TABLE_ADDRESDS),&Temp_DL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
515
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
438 516
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
439 517
 
440 518
             break;
441
-        case Bluecell_Table_TEMP_DL2:
442
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_DL2.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
519
+        case Bluecell_Table_TEMP_DL3:
520
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&Temp_DL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
521
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
443 522
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
444 523
 
445 524
             break;
446
-        case Bluecell_Table_TEMP_UL2:
447
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_UL2.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
448
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
525
+        case Bluecell_Table_TEMP_DL4:
526
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL3_TABLE_ADDRESDS),&Temp_DL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
527
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
528
+        data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
449 529
 
530
+        break;
531
+        case Bluecell_Table_TEMP_UL1:
532
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
533
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
534
+            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
535
+        
450 536
             break;
451
-        case Bluecell_Table_TEMP_DL3:
452
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_DL3.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
537
+        case Bluecell_Table_TEMP_UL2:
538
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL1_TABLE_ADDRESDS),&Temp_UL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
539
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
453 540
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
454
-
541
+        
455 542
             break;
456 543
         case Bluecell_Table_TEMP_UL3:
457
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_UL3.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
544
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL2_TABLE_ADDRESDS),&Temp_UL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
545
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
458 546
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
459
-
547
+        
460 548
             break;
461
-        case Bluecell_Table_TEMP_DL4:
462
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_DL4.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
463
-        data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
464
-
465
-        break;
466 549
         case Bluecell_Table_TEMP_UL4:
467
-            Bluecell_Struct2byteCopyFunction(&data[BLUECELL_DATA + 1],&Temp_UL4.Table_10_Temp,sizeof(TEMP_TABLE_st)/ 2);
550
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL3_TABLE_ADDRESDS),&Temp_UL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );   
551
+            Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st));
468 552
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
469 553
 
470 554
             break;
@@ -479,126 +563,116 @@ void Bluecell_TableSave(uint8_t* data){
479 563
     //printf("%s : %x \r\n",__func__,tabletype);
480 564
     switch(tabletype){
481 565
         case Bluecell_Table_ATT_DL1: 
482
-            Bluecell_StructCopyFunction(&Att_DL1.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);
483
-//            printf("%x\r\n",Att_DL1.Table_0_0_dBm);   
484
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_BASE,1),&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
485
-            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
486
-//            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
487
-//            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
488
-//            EEPROM_M24C08_write(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
489
-//         
490
-//            EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
491
-//            printf("%x\r\n",Att_DL1.Table_0_0_dBm);        
492
-//            EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
493
-        break;
566
+            Bluecell_DataCopy(&Att_DL1.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
567
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS)              ,&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
568
+//            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
569
+//            printf("ADDRESS : %d \r\n",EEPROM_WINDOW_STATUS_ADDRESDS );
570
+//            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
571
+            break;
572
+            
494 573
         case Bluecell_Table_ATT_DL2: 
495
-            Bluecell_StructCopyFunction(&Att_DL2.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);
496
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL1_TABLE_ADDRESDS,1),&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
574
+            Bluecell_DataCopy(&Att_DL2.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
575
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_DL1_TABLE_ADDRESDS),&Att_DL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
576
+//            printf("ADDRESS : %d \r\n",EEPROM_ATT_DL1_TABLE_ADDRESDS );
577
+
497 578
             break;
579
+            
498 580
         case Bluecell_Table_ATT_DL3: 
499
-            Bluecell_StructCopyFunction(&Att_DL3.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);    
500
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL2_TABLE_ADDRESDS,1),&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
581
+            Bluecell_DataCopy(&Att_DL3.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
582
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_DL2_TABLE_ADDRESDS),&Att_DL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
501 583
             break;
584
+            
502 585
         case Bluecell_Table_ATT_DL4: 
503
-            Bluecell_StructCopyFunction(&Att_DL4.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);    
504
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL3_TABLE_ADDRESDS,1),&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
586
+            Bluecell_DataCopy(&Att_DL4.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
587
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_DL3_TABLE_ADDRESDS),&Att_DL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
505 588
             break;
506 589
 
507 590
             
508 591
         case Bluecell_Table_ATT_UL1: 
509
-            Bluecell_StructCopyFunction(&Att_UL1.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);
510
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL4_TABLE_ADDRESDS,1),&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
592
+            Bluecell_DataCopy(&Att_UL1.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
593
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_DL4_TABLE_ADDRESDS),&Att_UL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
511 594
             break;
512 595
         case Bluecell_Table_ATT_UL2: 
513
-            Bluecell_StructCopyFunction(&Att_UL2.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);
514
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_UL1_TABLE_ADDRESDS,1),&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
596
+            Bluecell_DataCopy(&Att_UL2.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
597
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_UL1_TABLE_ADDRESDS),&Att_UL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
515 598
             break;
516 599
         case Bluecell_Table_ATT_UL3: 
517
-            Bluecell_StructCopyFunction(&Att_UL3.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);    
518
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_UL2_TABLE_ADDRESDS,1),&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
600
+            Bluecell_DataCopy(&Att_UL3.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
601
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_UL2_TABLE_ADDRESDS),&Att_UL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
519 602
             break;
520 603
         case Bluecell_Table_ATT_UL4: 
521
-            Bluecell_StructCopyFunction(&Att_UL4.Table_0_0_dBm,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st) / 2);    
522
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_UL3_TABLE_ADDRESDS,1),&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
604
+            Bluecell_DataCopy(&Att_UL4.Table_0_0_dBm_H,&data[BLUECELL_DATA + 1],sizeof(ATT_TABLE_st));
605
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_UL3_TABLE_ADDRESDS),&Att_UL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st));
523 606
             break;
524 607
         case Bluecell_Table_DET_DL1: 
525
-
526
-
527
-
528
-        
529
-            Bluecell_StructCopyFunction(&Det_DL1.Table_Det5_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st)/ 2);    
530
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_UL4_TABLE_ADDRESDS,1),&Det_DL1.Table_Det5_dBm,sizeof(DET_TABLEDL_st));
608
+            Bluecell_DataCopy(&Det_DL1.Table_Det5_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st));
609
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_ATT_UL4_TABLE_ADDRESDS),&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
531 610
             break;
532 611
         case Bluecell_Table_DET_DL2: 
533
-            Bluecell_StructCopyFunction(&Det_DL2.Table_Det5_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st)/ 2);    
534
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_DL1_TABLE_ADDRESDS,1),&Det_DL2.Table_Det5_dBm,sizeof(DET_TABLEDL_st));
612
+            
613
+            Bluecell_DataCopy(&Det_DL2.Table_Det5_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st));
614
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_DL1_TABLE_ADDRESDS),&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
535 615
             break;
536 616
         case Bluecell_Table_DET_DL3: 
537
-            Bluecell_StructCopyFunction(&Det_DL3.Table_Det5_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st)/ 2);    
538
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_DL2_TABLE_ADDRESDS,1),&Det_DL3.Table_Det5_dBm,sizeof(DET_TABLEDL_st));
617
+            Bluecell_DataCopy(&Det_DL3.Table_Det5_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st));
618
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_DL2_TABLE_ADDRESDS),&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
539 619
         case Bluecell_Table_DET_DL4: 
540
-            Bluecell_StructCopyFunction(&Det_DL4.Table_Det5_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st)/ 2);    
541
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_DL3_TABLE_ADDRESDS,1),&Det_DL4.Table_Det5_dBm,sizeof(DET_TABLEDL_st));
620
+            Bluecell_DataCopy(&Det_DL4.Table_Det5_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEDL_st));
621
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_DL3_TABLE_ADDRESDS),&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
542 622
             break;
543
-
544
-
545
-
546 623
             
547 624
         case Bluecell_Table_DET_UL1: 
548
-            Bluecell_StructCopyFunction(&Det_UL1.Table_Det_15_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st)/ 2);    
549
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_DL4_TABLE_ADDRESDS,1),&Det_UL1.Table_Det_15_dBm,sizeof(DET_TABLEUL_st));            
625
+            Bluecell_DataCopy(&Det_UL1.Table_Det_15_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st));
626
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_DL4_TABLE_ADDRESDS),&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));            
550 627
             break;
551 628
         case Bluecell_Table_DET_UL2: 
552
-            Bluecell_StructCopyFunction(&Det_UL2.Table_Det_15_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st)/ 2);    
553
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_UL1_TABLE_ADDRESDS,1),&Det_UL2.Table_Det_15_dBm,sizeof(DET_TABLEUL_st));            
629
+            Bluecell_DataCopy(&Det_UL2.Table_Det_15_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st));
630
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_UL1_TABLE_ADDRESDS),&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));            
554 631
         break;
555
-    case Bluecell_Table_DET_UL3: 
556
-            Bluecell_StructCopyFunction(&Det_UL3.Table_Det_15_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st)/ 2);    
557
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_UL2_TABLE_ADDRESDS,1),&Det_UL3.Table_Det_15_dBm,sizeof(DET_TABLEUL_st));            
632
+        case Bluecell_Table_DET_UL3: 
633
+            Bluecell_DataCopy(&Det_UL3.Table_Det_15_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st));
634
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_UL2_TABLE_ADDRESDS),&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));            
558 635
             break;
559 636
         case Bluecell_Table_DET_UL4: 
560
-            Bluecell_StructCopyFunction(&Det_UL4.Table_Det_15_dBm,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st)/ 2);    
561
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_UL3_TABLE_ADDRESDS,1),&Det_UL4.Table_Det_15_dBm,sizeof(DET_TABLEUL_st));            
562
-
637
+            Bluecell_DataCopy(&Det_UL4.Table_Det_15_dBm_H,&data[BLUECELL_DATA + 1],sizeof(DET_TABLEUL_st));
638
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_UL3_TABLE_ADDRESDS),&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));            
563 639
             break;
564
-
565
-
566
-
567
-            
568 640
         case Bluecell_Table_TEMP_DL1:
569
-            Bluecell_StructCopyFunction(&Temp_DL1.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
570
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_DET_UL4_TABLE_ADDRESDS,1),&Temp_DL1.Table_10_Temp,sizeof(TEMP_TABLE_st));                    
641
+            Bluecell_DataCopy(&Temp_DL1.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
642
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&Temp_DL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                    
571 643
             break;
572 644
         case Bluecell_Table_TEMP_DL2:
573
-            Bluecell_StructCopyFunction(&Temp_DL2.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
574
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_DL1_TABLE_ADDRESDS,1),&Temp_DL2.Table_10_Temp,sizeof(TEMP_TABLE_st));                    
645
+            Bluecell_DataCopy(&Temp_DL2.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
646
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL1_TABLE_ADDRESDS),&Temp_DL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                    
647
+
575 648
 
576 649
             break;
577 650
         case Bluecell_Table_TEMP_DL3:
578
-            Bluecell_StructCopyFunction(&Temp_DL3.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
579
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_DL2_TABLE_ADDRESDS,1),&Temp_DL3.Table_10_Temp,sizeof(TEMP_TABLE_st));                    
580
-
651
+            Bluecell_DataCopy(&Temp_DL3.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
652
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&Temp_DL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                    
653
+            
581 654
             break;
582 655
         case Bluecell_Table_TEMP_DL4:
583
-            Bluecell_StructCopyFunction(&Temp_DL4.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
584
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_DL3_TABLE_ADDRESDS,1),&Temp_DL4.Table_10_Temp,sizeof(TEMP_TABLE_st));                    
585
-
656
+            Bluecell_DataCopy(&Temp_DL4.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
657
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL3_TABLE_ADDRESDS),&Temp_DL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                    
586 658
             break;
587 659
         case Bluecell_Table_TEMP_UL1:
588
-            Bluecell_StructCopyFunction(&Temp_UL1.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
589
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_DL4_TABLE_ADDRESDS,1),&Temp_UL1.Table_10_Temp,sizeof(TEMP_TABLE_st));                            
660
+            Bluecell_DataCopy(&Temp_UL1.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
661
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                            
662
+            EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                                    
663
+            Bluecell_structprintf(&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st));        
590 664
             break;
591 665
         case Bluecell_Table_TEMP_UL2:
592
-            Bluecell_StructCopyFunction(&Temp_UL2.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
593
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_UL1_TABLE_ADDRESDS,1),&Temp_UL2.Table_10_Temp,sizeof(TEMP_TABLE_st));                            
666
+            Bluecell_DataCopy(&Temp_UL2.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
667
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL1_TABLE_ADDRESDS),&Temp_UL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                            
594 668
             break;
595 669
         case Bluecell_Table_TEMP_UL3:
596
-            Bluecell_StructCopyFunction(&Temp_UL3.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
597
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_UL2_TABLE_ADDRESDS,1),&Temp_UL3.Table_10_Temp,sizeof(TEMP_TABLE_st));                            
670
+            Bluecell_DataCopy(&Temp_UL3.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
671
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL2_TABLE_ADDRESDS),&Temp_UL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                            
598 672
             break;
599 673
         case Bluecell_Table_TEMP_UL4:
600
-            Bluecell_StructCopyFunction(&Temp_UL4.Table_10_Temp,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st)/ 2);    
601
-            EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_UL3_TABLE_ADDRESDS,1),&Temp_UL4.Table_10_Temp,sizeof(TEMP_TABLE_st));                                
674
+            Bluecell_DataCopy(&Temp_UL4.Table_10_Temp_H,&data[BLUECELL_DATA + 1],sizeof(TEMP_TABLE_st));
675
+            EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL3_TABLE_ADDRESDS),&Temp_UL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st));                                
602 676
             break;
603 677
     }
604 678
         
@@ -868,7 +942,7 @@ bool Bluecell_Operate(uint8_t* data){
868 942
         DataStatusSet();
869 943
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
870 944
         Txdata[Txdata[BLUECELL_LENGTH] + 1] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
871
-#if 1 // PYJ.2020.04.22_BEGIN -- 
945
+#if 0 // PYJ.2020.04.22_BEGIN -- 
872 946
         for(int i = 0 ; i < Txdata[BLUECELL_LENGTH] + 3; i++ ){
873 947
             printf("%x ",Txdata[i]);
874 948
         }
@@ -878,8 +952,8 @@ bool Bluecell_Operate(uint8_t* data){
878 952
         break;
879 953
     case Bluecell_StatusSave:
880 954
 //        printf("Copy Complete");
881
-        EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_TEMP_UL4_TABLE_ADDRESDS,1),&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
882
-        Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
955
+        EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL4_TABLE_ADDRESDS),&DataWrite[0],sizeof(BLUESTATUS_st));
956
+        Bluecell_StructCpy(&Txdata[0],&DataWrite[0],sizeof(BLUESTATUS_st));
883 957
         Txdata[Txdata[BLUECELL_LENGTH] + 1] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
884 958
         Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
885 959
         break;
@@ -1051,75 +1125,113 @@ bool MBIC_Operate(uint8_t* data){
1051 1125
 
1052 1126
 extern volatile uint32_t ADC1_Average_value[4];
1053 1127
 extern volatile uint32_t ADC3_Average_value[5];
1128
+uint16_t ADC1Ret[4];
1129
+uint16_t ADC3Ret[5];
1054 1130
 
1055 1131
 void ADC_Check(void){
1056 1132
     static uint8_t Cnt = 0;
1057 1133
     double Volt_Calc_val = 3.3 / 4095;
1058
-    uint16_t ret = 0;
1134
+    double ret = 0;
1059 1135
 //    if(AdcTimerCnt > 10){
1060 1136
     
1061
-    if(adc3cnt > 100){
1062
-        for(int i = 0; i < 6; i++){
1063
-            ADC3value[i] = ADC3_Average_value[i] / adc3cnt;
1137
+    if(adc3cnt >= 100){
1138
+        for(int i = 0; i < 5; i++){
1139
+            ADC3Ret[i] = ADC3_Average_value[i] / adc3cnt;
1140
+            ADC3_Average_value[i] = 0;
1141
+//            printf("ADC3value[%d] : %d        UL4 : %f\r\n",i,ADC3value[i],ret * Volt_Calc_val);
1142
+            
1064 1143
         }
1065 1144
         adc3cnt = 0;
1066 1145
         bluecell_Currdatastatus.DET_DL1_IN_H 
1067
-            = (uint16_t)((ADC3value[1] & 0xFF00) >> 8);
1146
+            = ((ADC3Ret[1] & 0xFF00) >> 8);
1068 1147
         bluecell_Currdatastatus.DET_DL1_IN_L 
1069
-            = (uint16_t)((ADC3value[1] & 0x00FF));
1148
+            = ((ADC3Ret[1] & 0x00FF));
1070 1149
         
1071 1150
 
1072 1151
         bluecell_Currdatastatus.DET_DL2_IN_H 
1073
-            = (uint16_t)((ADC3value[2] & 0xFF00) >> 8);
1152
+            = ((ADC3Ret[2] & 0xFF00) >> 8);
1074 1153
         bluecell_Currdatastatus.DET_DL2_IN_L 
1075
-            = (uint16_t)((ADC3value[2] & 0x00FF) );
1154
+            = ((ADC3Ret[2] & 0x00FF) );
1076 1155
 
1077 1156
             
1078 1157
         bluecell_Currdatastatus.DET_DL3_IN_H 
1079
-            = (uint16_t)((ADC3value[3] & 0xFF00) >> 8);
1158
+            = ((ADC3Ret[3] & 0xFF00) >> 8);
1080 1159
         bluecell_Currdatastatus.DET_DL3_IN_L 
1081
-            = (uint16_t)((ADC3value[3] & 0x00FF) );
1160
+            = ((ADC3Ret[3] & 0x00FF) );
1082 1161
 
1083 1162
             
1084 1163
         bluecell_Currdatastatus.DET_DL4_IN_H 
1085
-            = (uint16_t)((ADC3value[4] & 0xFF00) >> 8);
1164
+            = ((ADC3Ret[4] & 0xFF00) >> 8);
1086 1165
         bluecell_Currdatastatus.DET_DL4_IN_L 
1087
-            = (uint16_t)((ADC3value[4] & 0x00FF) );
1166
+            = ((ADC3Ret[4] & 0x00FF) );
1167
+
1168
+            
1088 1169
         bluecell_Currdatastatus.DET_UL4_IN_H 
1089
-            = (uint16_t)((ADC3value[0] & 0xFF00) >> 8);
1170
+            = ((ADC3Ret[0] & 0xFF00) >> 8);
1090 1171
         bluecell_Currdatastatus.DET_UL4_IN_L 
1091
-            = (uint16_t)((ADC3value[0] & 0x00FF) );
1172
+            = ((ADC3Ret[0] & 0x00FF) );
1173
+
1174
+#if 0 // PYJ.2020.04.26_BEGIN -- 
1175
+        ret = (ADC3Ret[0]) * Volt_Calc_val;
1176
+        printf("ADC3Ret[0] : %d        UL4 : %f\r\n",ADC3Ret[0],ret);
1177
+        ret = (ADC3Ret[1]) * Volt_Calc_val;
1178
+        printf("ADC3Ret[1] : %d        DL1 : %f\r\n",ADC3Ret[1],ret);
1179
+        ret = (ADC3Ret[2]) * Volt_Calc_val;
1180
+        printf("ADC3Ret[2] : %d        DL2 : %f\r\n",ADC3Ret[2],ret);
1181
+        ret = (ADC3Ret[3]) * Volt_Calc_val;
1182
+        printf("ADC3Ret[3] : %d        DL3 : %f\r\n",ADC3Ret[3],ret);
1183
+        ret = (ADC3Ret[4]) * Volt_Calc_val;
1184
+        printf("ADC3Ret[4] : %d        DL4 : %f\r\n",ADC3Ret[4],ret);
1185
+#endif // PYJ.2020.04.26_END -- 
1186
+
1187
+
1188
+
1189
+
1190
+
1092 1191
     }
1093
-    if(adc1cnt > 100){ 
1094
-        for(int i = 0; i < 5; i++){
1095
-            ADC1value[i] = ADC1_Average_value[i] / adc1cnt;
1192
+    if(adc1cnt >= 100){ 
1193
+        for(int i = 0; i < 4; i++){
1194
+            ADC1Ret[i] = ADC1_Average_value[i] / adc1cnt;
1195
+            ADC1_Average_value[i] = 0;
1096 1196
         }
1097 1197
         adc1cnt = 0;
1098 1198
         bluecell_Currdatastatus.DET_UL1_IN_H 
1099
-            = (uint16_t)((ADC1value[0] & 0xFF00) >> 8);
1199
+            = ((ADC1Ret[0] & 0xFF00) >> 8);
1100 1200
         bluecell_Currdatastatus.DET_UL1_IN_L 
1101
-            = (uint16_t)((ADC1value[0] & 0x00FF) );
1201
+            = ((ADC1Ret[0] & 0x00FF) );
1102 1202
 
1103 1203
             
1104 1204
         bluecell_Currdatastatus.DET_UL2_IN_H 
1105
-            = (uint16_t)((ADC1value[1] & 0xFF00) >> 8);
1205
+            = ((ADC1Ret[1] & 0xFF00) >> 8);
1106 1206
         bluecell_Currdatastatus.DET_UL2_IN_L 
1107
-            = (uint16_t)((ADC1value[1] & 0x00FF) );
1207
+            = ((ADC1Ret[1] & 0x00FF) );
1108 1208
 
1109 1209
             
1110 1210
         bluecell_Currdatastatus.DET_UL3_IN_H 
1111
-            = (uint16_t)((ADC1value[2] & 0xFF00) >> 8);
1211
+            = ((ADC1Ret[2] & 0xFF00) >> 8);
1112 1212
         bluecell_Currdatastatus.DET_UL3_IN_L 
1113
-            = (uint16_t)((ADC1value[2] & 0x00FF) );
1213
+            = ((ADC1Ret[2] & 0x00FF) );
1114 1214
 
1115 1215
             
1116 1216
 
1117 1217
             
1118 1218
         bluecell_Currdatastatus.DET_TEMP_H  
1119
-            =(uint16_t)((ADC1value[3] & 0xFF00) >> 8);
1219
+            =((ADC1Ret[3] & 0xFF00) >> 8);
1120 1220
         bluecell_Currdatastatus.DET_TEMP_L  
1121
-            =(uint16_t)((ADC1value[3] & 0x00FF) );
1122
-       
1221
+            =((ADC1Ret[3] & 0x00FF) );
1222
+
1223
+
1224
+#if 0 // PYJ.2020.04.26_BEGIN -- 
1225
+                ret = (ADC1Ret[0]) * Volt_Calc_val;
1226
+                printf("ADC1Ret[0] : %d        UL1 : %f\r\n",ADC1Ret[0],ret);
1227
+                ret = (ADC1Ret[1]) * Volt_Calc_val;
1228
+                printf("ADC1Ret[1] : %d        UL2 : %f\r\n",ADC1Ret[1],ret);
1229
+                ret = (ADC1Ret[2]) * Volt_Calc_val;
1230
+                printf("ADC1Ret[2] : %d        UL3 : %f\r\n",ADC1Ret[2],ret);
1231
+                ret = (ADC1Ret[3]) * Volt_Calc_val;
1232
+                printf("ADC1Ret[3] : %d        TEMP : %f\r\n",ADC1Ret[3],ret);
1233
+#endif // PYJ.2020.04.26_END -- 
1234
+
1123 1235
     }
1124 1236
 #if 0 // PYJ.2020.04.22_BEGIN -- 
1125 1237
     if(Cnt >= 250){

+ 378 - 75
Bluecell_Src/eeprom.c

@@ -8,57 +8,66 @@
8 8
 #include "eeprom.h"
9 9
 #include "Bluecell_operate.h"
10 10
 #include "stm32f1xx_hal.h"
11
+#include "stm32f1xx_hal_gpio.h"
12
+
11 13
 /* Includes ------------------------------------------------------------------*/   
12 14
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
13 15
 
14 16
 
15 17
 
18
+unsigned char E2promWriteByte( uint16_t addr, uint8_t data );
19
+
20
+/////////////////////////////////////////////////////////////
21
+
22
+unsigned char E2promReadByte( uint16_t addr );
16 23
 
17 24
 
25
+bool		EEPROM24XX_Save(uint16_t Address,void *data,size_t size_of_data);
26
+bool		EEPROM24XX_Load(uint16_t Address,void *data,size_t size_of_data);
18 27
 
19 28
 
20 29
 
21 30
 
22 31
 
23 32
 void EEPROM_M24C08_Init(void){
24
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_BASE,&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
25
-//    printf("%x\r\n",Att_DL1.Table_0_0_dBm);
26
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_DL1_TABLE_ADDRESDS,&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
27
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_DL2_TABLE_ADDRESDS,&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
28
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_DL3_TABLE_ADDRESDS,&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
33
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_WINDOW_STATUS_ADDRESDS,&Att_DL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
34
+//    printf("%x\r\n",Att_DL1.Table_0_0_dBm_H);
35
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL1_TABLE_ADDRESDS,&Att_DL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
36
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL2_TABLE_ADDRESDS,&Att_DL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
37
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL3_TABLE_ADDRESDS,&Att_DL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
29 38
 
30
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_DL4_TABLE_ADDRESDS,&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
31
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_UL1_TABLE_ADDRESDS,&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
32
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_UL2_TABLE_ADDRESDS,&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
33
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_UL3_TABLE_ADDRESDS,&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );
39
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_DL4_TABLE_ADDRESDS,&Att_UL1.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
40
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_UL1_TABLE_ADDRESDS,&Att_UL2.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
41
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_UL2_TABLE_ADDRESDS,&Att_UL3.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
42
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_UL3_TABLE_ADDRESDS,&Att_UL4.Table_0_0_dBm_H,sizeof(ATT_TABLE_st) );
34 43
 
35
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_ATT_UL4_TABLE_ADDRESDS,&Det_DL1.Table_Det5_dBm,sizeof(DET_TABLEDL_st) );
36
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_DL1_TABLE_ADDRESDS,&Det_DL2.Table_Det5_dBm,sizeof(DET_TABLEDL_st) );
37
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_DL2_TABLE_ADDRESDS,&Det_DL3.Table_Det5_dBm,sizeof(DET_TABLEDL_st) );
38
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_DL3_TABLE_ADDRESDS,&Det_DL4.Table_Det5_dBm,sizeof(DET_TABLEDL_st) );
44
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_ATT_UL4_TABLE_ADDRESDS,&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );
45
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_DL1_TABLE_ADDRESDS,&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );
46
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_DL2_TABLE_ADDRESDS,&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );
47
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_DL3_TABLE_ADDRESDS,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );
39 48
 
40 49
 
41
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_DL4_TABLE_ADDRESDS,&Det_UL1.Table_Det_15_dBm,sizeof(DET_TABLEUL_st) );
42
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_UL1_TABLE_ADDRESDS,&Det_UL2.Table_Det_15_dBm,sizeof(DET_TABLEUL_st) );
43
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_UL2_TABLE_ADDRESDS,&Det_UL3.Table_Det_15_dBm,sizeof(DET_TABLEUL_st) );
44
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_UL3_TABLE_ADDRESDS,&Det_UL4.Table_Det_15_dBm,sizeof(DET_TABLEUL_st) );
50
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_DL4_TABLE_ADDRESDS,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );
51
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_UL1_TABLE_ADDRESDS,&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );
52
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_UL2_TABLE_ADDRESDS,&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );
53
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_UL3_TABLE_ADDRESDS,&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );
45 54
 
46 55
 
47
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_DET_UL4_TABLE_ADDRESDS,&Temp_DL1.Table_10_Temp,sizeof(TEMP_TABLE_st) );
48
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_DL1_TABLE_ADDRESDS,&Temp_DL2.Table_10_Temp,sizeof(TEMP_TABLE_st) );
49
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_DL2_TABLE_ADDRESDS,&Temp_DL3.Table_10_Temp,sizeof(TEMP_TABLE_st) );
50
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_DL3_TABLE_ADDRESDS,&Temp_DL4.Table_10_Temp,sizeof(TEMP_TABLE_st) );
56
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_DET_UL4_TABLE_ADDRESDS,&Temp_DL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
57
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_DL1_TABLE_ADDRESDS,&Temp_DL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
58
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_DL2_TABLE_ADDRESDS,&Temp_DL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
59
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_DL3_TABLE_ADDRESDS,&Temp_DL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
51 60
 
52 61
 
53
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_DL4_TABLE_ADDRESDS,&Temp_UL1.Table_10_Temp,sizeof(TEMP_TABLE_st) );
54
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_UL1_TABLE_ADDRESDS,&Temp_UL2.Table_10_Temp,sizeof(TEMP_TABLE_st) );
55
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_UL2_TABLE_ADDRESDS,&Temp_UL3.Table_10_Temp,sizeof(TEMP_TABLE_st) );
56
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_UL3_TABLE_ADDRESDS,&Temp_UL4.Table_10_Temp,sizeof(TEMP_TABLE_st) );
62
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_DL4_TABLE_ADDRESDS,&Temp_UL1.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
63
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL1_TABLE_ADDRESDS,&Temp_UL2.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
64
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL2_TABLE_ADDRESDS,&Temp_UL3.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
65
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL3_TABLE_ADDRESDS,&Temp_UL4.Table_10_Temp_H,sizeof(TEMP_TABLE_st) );
57 66
 
58
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,EEPROM_TEMP_UL4_TABLE_ADDRESDS,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
59
-    printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
60
-    printf("bluecell_Currdatastatus.ATT_DL1_L : %x\r\n",bluecell_Currdatastatus.ATT_DL1_L);        
61
-    
67
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL4_TABLE_ADDRESDS,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
68
+//    printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
69
+//    printf("bluecell_Currdatastatus.ATT_DL1_L : %x\r\n",bluecell_Currdatastatus.ATT_DL1_L);        
70
+//    
62 71
     printf("EEPROM INIT COMPLETE\r\n");
63 72
 
64 73
 }
@@ -93,62 +102,77 @@ void eepromtest(){
93 102
 }
94 103
 #endif // PYJ.2020.04.23_END -- 
95 104
 
105
+#define MAXEEPROM_LENG 32
96 106
 
97
-
98
-HAL_StatusTypeDef EEPROM_M24C08_Read(uint16_t devid,uint16_t Address,uint16_t* data,uint8_t size){
107
+HAL_StatusTypeDef EEPROM_M24C08_Read(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size){
99 108
    HAL_StatusTypeDef ret = HAL_ERROR;
100
-#if 0 // PYJ.2020.04.23_BEGIN -- 
101
-   for(uint16_t i = 0; i < size / 2; i++){
102
-//       ret = HAL_I2C_Mem_Read(&hi2c2, devid,(Address + (i * 2)), I2C_MEMADD_SIZE_16BIT, &data[i], 2, 512);
109
+   uint16_t sizecnt = 0,sizeremain = 0; 
110
+   uint16_t addrees_inc = 0;
111
+//   ret = HAL_I2C_Mem_Read(&hi2c2, devid | ((Address & 0x0300) >> 7),((Address )),  I2C_MEMADD_SIZE_8BIT, &data[0], size, 1024);
112
+
113
+   ret = HAL_I2C_Mem_Read(&hi2c2, devid ,((Address )),  I2C_MEMADD_SIZE_16BIT, &data[0], size, 1024);
114
+//      EEPROM24XX_Load( Address,data, size);
103 115
 
104
-//       printf("READdata[%d] : %x \r\n",i,data[i]);
105
-       if(ret == HAL_ERROR){
106
-         printf("Read ERR\r\n");
107
-       }
108
-     HAL_Delay(10);
109
-#else
110
-//      ret = HAL_I2C_Mem_Read(&hi2c2, devid,Address, I2C_MEMADD_SIZE_16BIT, data, size, 512);
111
-////       printf("READdata[%d] : %x \r\n",i,data[i]);
112
-//      if(ret == HAL_ERROR){
113
-//        printf("Read ERR\r\n");
114
-//      }
115
-//    HAL_Delay(10);
116
-    ret = HAL_I2C_Mem_Read(&hi2c2, devid, Address, I2C_MEMADD_SIZE_16BIT, data, size, 512);
117 116
       if(ret == HAL_ERROR)
118 117
             printf("Write ERR\r\n");
119
-
120
-    HAL_Delay(10);
121
-     return ret; 
122
-
123
-
124
-#endif // PYJ.2020.04.23_END -- 
118
+        else
119
+        HAL_Delay(20);
125 120
 
126 121
     return ret;   
127 122
 }
128
-HAL_StatusTypeDef EEPROM_M24C08_write(uint16_t devid,uint16_t Address,uint16_t* data,uint8_t size){
123
+HAL_StatusTypeDef EEPROM_M24C08_write(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size){
129 124
     HAL_StatusTypeDef ret = HAL_ERROR;
130
-#if 0 // PYJ.2020.04.23_BEGIN -- 
131
-    for(int i = 0; i < size / 2; i++){
132
-        ret = HAL_I2C_Mem_Write(&hi2c2, devid,(Address + (i * 2)),  I2C_MEMADD_SIZE_16BIT, &data[i], 2, 512);
133
-        if(ret == HAL_ERROR)
134
-            printf("Write ERR\r\n");
135
-//        printf("Writedata[%d] : %x \r\n",i,data[i]);
136
-        HAL_Delay(10);
137
-    }
125
+    uint8_t sizecnt = 0,sizeremain = 0; 
126
+    uint16_t addrees_inc = 0;
127
+    sizecnt = size /MAXEEPROM_LENG;
128
+    sizeremain = size % MAXEEPROM_LENG;
129
+    addrees_inc = 0;
130
+#if 0 // PYJ.2020.04.25_BEGIN -- 
131
+       for(int i = 0 ; i <sizecnt; i++ ){
132
+            addrees_inc = i * 16;
133
+            ret = HAL_I2C_Mem_Write(&hi2c2, devid | (((Address  + addrees_inc) & 0x0300) >> 7),((Address + addrees_inc)) ,  I2C_MEMADD_SIZE_8BIT, &data[addrees_inc], 16, 1024);
134
+            if(ret == HAL_ERROR)
135
+                printf("Write ERR\r\n");
136
+            else
137
+                HAL_Delay(20);
138
+       }
139
+       addrees_inc += 16;
140
+           ret = HAL_I2C_Mem_Write(&hi2c2, devid | (((Address  + addrees_inc) & 0x0300) >> 7),((Address + addrees_inc)) ,  I2C_MEMADD_SIZE_8BIT, &data[addrees_inc], sizeremain, 1024);
141
+            //       EEPROM24XX_Save( Address,data, size);
142
+            if(ret == HAL_ERROR)
143
+                printf("Write ERR\r\n");
144
+            else
145
+                HAL_Delay(20);
138 146
 #else
139
-//    ret = HAL_I2C_Mem_Write(&hi2c2, devid,Address,  I2C_MEMADD_SIZE_16BIT, data, size, 1024);
140
-//    if(ret == HAL_ERROR)
141
-//        printf("Write ERR\r\n");
142
-////        printf("Writedata[%d] : %x \r\n",i,data[i]);
143
-//    HAL_Delay(10);
144
-     ret = HAL_I2C_Mem_Write(&hi2c2, devid, Address,  I2C_MEMADD_SIZE_16BIT, data, size, 512);
145
-       if(ret == HAL_ERROR)
146
-             printf("Write ERR\r\n");
147
-
148
-     HAL_Delay(10);
147
+//    printf("size : %d sizecnt = %d sizeremain : %d\r\n",size,sizecnt,sizeremain);
148
+    if(sizecnt > 0){
149
+        for(int i = 0 ; i < sizecnt; i++ ){
150
+             addrees_inc = i * MAXEEPROM_LENG;
151
+             ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc) & 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[addrees_inc], MAXEEPROM_LENG, 1024);
152
+
153
+             if(ret == HAL_ERROR)
154
+                 printf("Write ERR\r\n");
155
+             else
156
+                 HAL_Delay(20);
157
+        }
158
+        addrees_inc += MAXEEPROM_LENG;
159
+    }
149 160
 
161
+//    printf("Remain Data Index : %d \r\n",sizeremain);
162
+    
163
+    if(sizeremain > 0){
164
+         printf("Remain Data Write Start ");
165
+        for(int i = 0; i < sizeremain; i++){
166
+            ret = HAL_I2C_Mem_Write(&hi2c2, devid  ,((Address + addrees_inc + i)& 0xFFFF) ,  I2C_MEMADD_SIZE_16BIT, &data[addrees_inc + i], 1, 1024);
167
+         //       EEPROM24XX_Save( Address,data, size);
168
+         if(ret == HAL_ERROR)
169
+             printf("Write ERR\r\n");
170
+         else
171
+             HAL_Delay(20);
172
+        }
173
+    }
150 174
 
151
-#endif // PYJ.2020.04.23_END -- 
175
+#endif // PYJ.2020.04.25_END -- 
152 176
     return ret;
153 177
 }
154 178
 
@@ -158,37 +182,316 @@ HAL_StatusTypeDef EEPROM_M24C08_write(uint16_t devid,uint16_t Address,uint16_t*
158 182
 
159 183
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
160 184
    HAL_StatusTypeDef ret = HAL_ERROR;
185
+#if 0 // PYJ.2020.04.24_BEGIN -- 
161 186
    for(int i = 0; i < size; i++){
162 187
      ret = HAL_I2C_Mem_Read(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1, 1024);
188
+//     ret = HAL_I2C_Mem_Read(&hi2c2, devid|(((Address + i)&0x0700>>7)),((Address + i)&0xff),  I2C_MEMADD_SIZE_16BIT, &data[i], 1, 1024);     
163 189
        if(ret == HAL_ERROR)
164 190
         printf("Write ERR\r\n");
165 191
 //     ret = HAL_I2C_Mem_Read_IT(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1);
166 192
      HAL_Delay(10);
167 193
    }
194
+#endif // PYJ.2020.04.24_END -- 
168 195
     return ret;   
169 196
 }
197
+uint8_t I2CWrite[1024];
170 198
 HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
171 199
     HAL_StatusTypeDef ret = HAL_ERROR;
200
+#if 0 // PYJ.2020.04.24_BEGIN -- 
201
+
172 202
     for(int i = 0; i < size; i++){
173 203
         ret = HAL_I2C_Mem_Write(&hi2c2, devid, Address + i,  I2C_MEMADD_SIZE_8BIT, &data[i], 1, 1024);
204
+//        ret = HAL_I2C_Mem_Write(&hi2c2, devid|(((Address + i)&0x0700>>7)),((Address + i)&0xff),  I2C_MEMADD_SIZE_16BIT, &data[i], 1, 1024);
205
+
174 206
         if(ret == HAL_ERROR)
175
-              printf("Write ERR\r\n");
207
+            printf("Write ERR\r\n");
208
+        else
209
+            HAL_Delay(7);
176 210
 //        ret = HAL_I2C_Mem_Write_IT(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1);
177
-        HAL_Delay(7);
178 211
     }
212
+#endif // PYJ.2020.04.24_END -- 
179 213
     return ret;
180 214
 }
181 215
 
182 216
 
183 217
 
184 218
 
219
+#define _EEPROM_SIZE_KBIT 8
220
+
221
+bool EEPROM24XX_IsConnected(void)
222
+{
223
+	#if	(_EEPROM_USE_WP_PIN==1)
224
+	#endif
225
+	if(HAL_I2C_IsDeviceReady(&hi2c2,0xa0,1,100)==HAL_OK)
226
+		return true;
227
+	else
228
+		return false;	
229
+}
230
+//##########################################################################
231
+bool		EEPROM24XX_Save(uint16_t Address,void *data,size_t size_of_data)
232
+{
233
+	#if ((_EEPROM_SIZE_KBIT==1) || (_EEPROM_SIZE_KBIT==2))
234
+	if(size_of_data > 8)
235
+		return false;
236
+	#elif ((_EEPROM_SIZE_KBIT==4) || (_EEPROM_SIZE_KBIT==8) || (_EEPROM_SIZE_KBIT==16))
237
+	if(size_of_data > 16)
238
+		return false;
239
+	#else 
240
+	if(size_of_data > 32)
241
+		return false;
242
+	#endif
243
+	
244
+	#if	(_EEPROM_USE_WP_PIN==1)
245
+	HAL_GPIO_WritePin(_EEPROM_WP_GPIO,_EEPROM_WP_PIN,GPIO_PIN_RESET);
246
+	#endif
247
+	
248
+	#if ((_EEPROM_SIZE_KBIT==1) || (_EEPROM_SIZE_KBIT==2))
249
+	if(HAL_I2C_Mem_Write(&hi2c2,0xa0,Address,I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
250
+	#elif	(_EEPROM_SIZE_KBIT==4)
251
+	if(HAL_I2C_Mem_Write(&hi2c2,0xa0|((Address&0x0100>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
252
+	#elif	(_EEPROM_SIZE_KBIT==8)
253
+	if(HAL_I2C_Mem_Write(&hi2c2,0xa0|((Address&0x0300>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
254
+	#elif	(_EEPROM_SIZE_KBIT==16)
255
+	if(HAL_I2C_Mem_Write(&hi2c2,0xa0|((Address&0x0700>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)		
256
+	#else
257
+	if(HAL_I2C_Mem_Write(&hi2c2,0xa0,Address,I2C_MEMADD_SIZE_16BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
258
+	#endif
259
+	{
260
+		HAL_Delay(7);
261
+	}
262
+	else
263
+	{
264
+	}
265
+}
266
+//##########################################################################
267
+bool		EEPROM24XX_Load(uint16_t Address,void *data,size_t size_of_data)
268
+{
269
+	#if	(_EEPROM_USE_WP_PIN==1)
270
+	HAL_GPIO_WritePin(_EEPROM_WP_GPIO,_EEPROM_WP_PIN,GPIO_PIN_SET);
271
+	#endif
272
+	#if ((_EEPROM_SIZE_KBIT==1) || (_EEPROM_SIZE_KBIT==2))
273
+	if(HAL_I2C_Mem_Read(&hi2c2,0xa0,Address,I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
274
+	#elif (_EEPROM_SIZE_KBIT==4)
275
+	if(HAL_I2C_Mem_Read(&hi2c2,0xa0|((Address&0x0100>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
276
+	#elif (_EEPROM_SIZE_KBIT==8)
277
+	if(HAL_I2C_Mem_Read(&hi2c2,0xa0|((Address&0x0300>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
278
+	#elif (_EEPROM_SIZE_KBIT==16)
279
+	if(HAL_I2C_Mem_Read(&hi2c2,0xa0|((Address&0x0700>>7)),(Address&0xff),I2C_MEMADD_SIZE_8BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
280
+	#else
281
+	if(HAL_I2C_Mem_Read(&hi2c2,0xa0,Address,I2C_MEMADD_SIZE_16BIT,(uint8_t*)data,size_of_data,100) == HAL_OK)
282
+	#endif
283
+		return true;
284
+	else
285
+		return false;		
286
+}
287
+
288
+
289
+
290
+
291
+
292
+
185 293
 
186 294
 
295
+// EEPROM 24lcXXX 
296
+/// ST에서 제공하는 I2C 소스는 뭘 해도 안된다.. 내가 잘못한건지 뭔지 참..
297
+/// while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); ??????????
298
+/// 중국애들?이 제공하는 소스로 하니 바로 되버리는 이 현상은 뭘까...
299
+///////////////////////// 
300
+///// i2c gpio 직접 제어 코드..
301
+
302
+#define E2PROM_SDA EEPROM_SCL_Pin
303
+#define E2PROM_SCL EEPROM_SDA_Pin
304
+
305
+#define E2PROM_CMD_WRITE 0xA0
306
+#define E2PROM_CMD_READ 0xA1
307
+#define I2C_PageSize     16
308
+
309
+void I2CStart( void )
310
+{
311
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SDA ,GPIO_PIN_SET );
312
+  HAL_Delay(10);
313
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_SET );
314
+  HAL_Delay(10);
315
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SDA,GPIO_PIN_RESET );
316
+  HAL_Delay(10);
317
+
318
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL ,GPIO_PIN_RESET);
319
+}
187 320
 
188 321
 
322
+void I2CStop( void )
323
+{
324
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SDA,GPIO_PIN_RESET );
325
+  HAL_Delay(10);
326
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL ,GPIO_PIN_SET);
327
+  HAL_Delay(10);
328
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SDA ,GPIO_PIN_SET);
329
+  HAL_Delay(10);
189 330
 
331
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_RESET );
332
+}
333
+
334
+
335
+unsigned char I2CSlaveAck( void )
336
+{
337
+  GPIO_InitTypeDef GPIO_InitStruct;
338
+  unsigned int TimeOut;
339
+  unsigned char RetValue;
340
+
341
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;  /*?里一定要?成?入上拉,否?不能?出?据*/
342
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
343
+  GPIO_InitStruct.Pin = E2PROM_SDA;
344
+
345
+
346
+  
347
+  HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );
348
+
349
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_SET );
350
+  TimeOut = 10000;
351
+  while( TimeOut-- > 0 )
352
+  {
353
+    if( SET == HAL_GPIO_ReadPin( GPIOB, E2PROM_SDA ) )
354
+    {
355
+      RetValue = RESET;
356
+      break;
357
+    }
358
+    else
359
+    {
360
+      RetValue = SET;
361
+    }
362
+  }
363
+  HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_RESET );
364
+  
365
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
366
+  HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );
367
+  return RetValue;
368
+}
369
+
370
+void I2CWriteByte( unsigned char byte )
371
+{
372
+  unsigned char i;
373
+
374
+  for( i=0; i<8; i++ )
375
+  {
376
+    if( 0X80 & byte )
377
+      HAL_GPIO_WritePin( GPIOB, E2PROM_SDA ,GPIO_PIN_SET);
378
+    else
379
+      HAL_GPIO_WritePin( GPIOB, E2PROM_SDA,GPIO_PIN_RESET );
380
+    byte <<= 1;
381
+    HAL_Delay(10);
382
+
383
+    HAL_GPIO_WritePin( GPIOB, E2PROM_SCL ,GPIO_PIN_SET);
384
+    HAL_Delay(10);
385
+    HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_RESET );
386
+    HAL_Delay(10);
387
+  }
388
+}
389
+
390
+
391
+unsigned char I2CReadByte( void )
392
+{
393
+  unsigned char i;
394
+  unsigned char ReadValue = 0;
395
+  GPIO_InitTypeDef GPIO_InitStruct;
396
+  unsigned char bit;
397
+
398
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;  
399
+  GPIO_InitStruct.Pin = E2PROM_SDA;
400
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
401
+  HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );
402
+  for( i=0; i<8; i++ )
403
+  {
404
+    HAL_GPIO_WritePin( GPIOB, E2PROM_SCL ,GPIO_PIN_SET);
405
+    HAL_Delay(10);
406
+    if( SET == HAL_GPIO_ReadPin( GPIOB, E2PROM_SDA ) )
407
+      bit = 0X01;
408
+    else
409
+      bit = 0x00;
410
+      
411
+    ReadValue = (ReadValue<<1)|bit;
412
+    HAL_GPIO_WritePin( GPIOB, E2PROM_SCL,GPIO_PIN_RESET );
413
+    HAL_Delay(10);
414
+  }
415
+
416
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
417
+  HAL_GPIO_Init( GPIOB, &GPIO_InitStruct );
418
+  return ReadValue;
419
+}
420
+
421
+
422
+unsigned char E2promWriteByte( uint16_t addr, uint8_t data )
423
+{
424
+
425
+  I2CStart();
426
+
427
+  I2CWriteByte( E2PROM_CMD_WRITE );
428
+  if( RESET == I2CSlaveAck() )
429
+  {
430
+    return RESET;
431
+  }
432
+
433
+  I2CWriteByte((unsigned char)(addr>>8));
434
+  if( RESET == I2CSlaveAck() )
435
+  {
436
+    return RESET;
437
+  }
438
+  I2CWriteByte((uint8_t)(addr));
439
+  if( RESET == I2CSlaveAck() )
440
+  {
441
+    return RESET;
442
+  }
443
+
444
+  I2CWriteByte( data );
445
+  if( RESET == I2CSlaveAck() )
446
+  {
447
+    return RESET;
448
+  }
449
+  I2CStop();
450
+  //asm("CPSIE I");  //?中?
451
+
452
+  return SET;
453
+}
454
+
455
+/////////////////////////////////////////////////////////////
456
+
457
+unsigned char E2promReadByte( uint16_t addr )
458
+{
459
+  unsigned char ReadValue;
460
+
461
+  I2CStart();
462
+
463
+  I2CWriteByte( E2PROM_CMD_WRITE );
464
+  if( RESET == I2CSlaveAck() )
465
+  {
466
+    return RESET;
467
+  }
468
+
469
+  I2CWriteByte((unsigned char)(addr>>8));
470
+  if( RESET == I2CSlaveAck() )
471
+  {
472
+    return RESET;
473
+  }
474
+  I2CWriteByte((uint8_t)(addr));
475
+  if( RESET == I2CSlaveAck() )
476
+  {
477
+    return RESET;
478
+  }
479
+
480
+  I2CStart();
481
+  I2CWriteByte( E2PROM_CMD_READ );
482
+  if( RESET == I2CSlaveAck() )
483
+  {
484
+    return RESET;
485
+  }
486
+  ReadValue = I2CReadByte();
487
+  I2CStop();
488
+
489
+  return ReadValue;  
490
+}
190 491
 
492
+ 
191 493
 
494
+  
192 495
 
193 496
 
194 497
 

+ 0 - 2
Inc/stm32f1xx_it.h

@@ -61,8 +61,6 @@ void DMA1_Channel4_IRQHandler(void);
61 61
 void DMA1_Channel5_IRQHandler(void);
62 62
 void ADC1_2_IRQHandler(void);
63 63
 void TIM2_IRQHandler(void);
64
-void I2C2_EV_IRQHandler(void);
65
-void I2C2_ER_IRQHandler(void);
66 64
 void USART1_IRQHandler(void);
67 65
 void USART2_IRQHandler(void);
68 66
 void ADC3_IRQHandler(void);

+ 1 - 3
STM32F103ZET_JDASMBIC.ioc

@@ -170,8 +170,6 @@ NVIC.DMA2_Channel4_5_IRQn=true\:0\:0\:false\:true\:true\:8\:false\:true
170 170
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
171 171
 NVIC.ForceEnableDMAVector=true
172 172
 NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
173
-NVIC.I2C2_ER_IRQn=true\:0\:0\:false\:true\:true\:5\:true\:true
174
-NVIC.I2C2_EV_IRQn=true\:0\:0\:false\:true\:true\:4\:true\:true
175 173
 NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
176 174
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
177 175
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
@@ -425,7 +423,7 @@ ProjectManager.StackSize=0x400
425 423
 ProjectManager.TargetToolchain=TrueSTUDIO
426 424
 ProjectManager.ToolChainLocation=
427 425
 ProjectManager.UnderRoot=true
428
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_I2C2_Init-I2C2-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_ADC1_Init-ADC1-false-HAL-true,7-MX_ADC3_Init-ADC3-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true
426
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_ADC3_Init-ADC3-false-HAL-true,7-MX_USART2_UART_Init-USART2-false-HAL-true,8-MX_TIM6_Init-TIM6-false-HAL-true,9-MX_CRC_Init-CRC-false-HAL-true
429 427
 RCC.ADCFreqValue=14000000
430 428
 RCC.ADCPresc=RCC_ADCPCLK2_DIV4
431 429
 RCC.AHBFreq_Value=56000000

+ 127 - 60
Src/main.c

@@ -77,13 +77,13 @@ volatile uint32_t LDTimerCnt = 0;
77 77
 void SystemClock_Config(void);
78 78
 static void MX_GPIO_Init(void);
79 79
 static void MX_DMA_Init(void);
80
-static void MX_I2C2_Init(void);
81 80
 static void MX_USART1_UART_Init(void);
82 81
 static void MX_ADC1_Init(void);
83 82
 static void MX_ADC3_Init(void);
84 83
 static void MX_USART2_UART_Init(void);
85 84
 static void MX_TIM6_Init(void);
86 85
 static void MX_CRC_Init(void);
86
+static void MX_I2C2_Init(void);
87 87
 static void MX_NVIC_Init(void);
88 88
 /* USER CODE BEGIN PFP */
89 89
 
@@ -113,24 +113,76 @@ uint8_t adc3cnt = 0 ;
113 113
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
114 114
 {
115 115
 //?��?��?�� 코드 ?��?��
116
-//만약 ?��?�� adc?���?? �???��?�� ?�� ?��?���?? ?��?���?? ?��?��?? 같이 조건�?? ?��?��
116
+//諤嵸烄 ?嚙踝蕭?嚙踝蕭 adc?嚙踝蕭嚙??? 嚙????嚙踝蕭?嚙踝蕭 ?嚙踝蕭 ?嚙踝蕭?嚙踝蕭嚙??? ?嚙踝蕭?嚙踝蕭嚙??? ?嚙踝蕭?嚙踝蕭?? 穈軤𦚯 魽國探嚙??? ?嚙踝蕭?嚙踝蕭
117 117
 
118 118
     if(hadc->Instance == hadc1.Instance)
119 119
     {
120
-        for(int i = 0; i < 5; i++){
121
-            ADC1_Average_value[i] += ADC1value[i]  ;
120
+        if(adc1cnt < 100){
121
+            for(int i = 0; i < 4; i++){
122
+                ADC1_Average_value[i] += ADC1value[i]  ;
123
+            }
124
+            adc1cnt++;
122 125
         }
123
-        adc1cnt++;
124 126
     }
125 127
     if(hadc->Instance == hadc3.Instance)
126 128
     {
127
-        for(int i = 0; i < 6; i++){
128
-            ADC3_Average_value[i] += ADC3value[i]  ;
129
+        if(adc3cnt < 100){
130
+            for(int i = 0; i < 5; i++){
131
+                ADC3_Average_value[i] += ADC3value[i]  ;
132
+            }
133
+            adc3cnt++;
129 134
         }
130
-        adc3cnt++;
131 135
     }
132 136
 
133 137
 }
138
+#if 0 // PYJ.2020.04.24_BEGIN -- 
139
+void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
140
+{
141
+
142
+  GPIO_InitTypeDef GPIO_InitStruct;
143
+  if(i2cHandle->Instance==I2C1)
144
+  {
145
+  /* USER CODE BEGIN I2C1_MspInit 0 */
146
+	__HAL_RCC_I2C1_CLK_ENABLE();
147
+  /* USER CODE END I2C1_MspInit 0 */
148
+  
149
+    /**I2C1 GPIO Configuration    
150
+    PB6     ------> I2C1_SCL
151
+    PB7     ------> I2C1_SDA 
152
+    */
153
+    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
154
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
155
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
156
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
157
+
158
+    /* Peripheral clock enable */
159
+    __HAL_RCC_I2C1_CLK_ENABLE();
160
+  /* USER CODE BEGIN I2C1_MspInit 1 */
161
+
162
+  /* USER CODE END I2C1_MspInit 1 */
163
+  }
164
+  else if(i2cHandle->Instance==I2C2)
165
+  {
166
+  /* USER CODE BEGIN I2C2_MspInit 0 */
167
+	__HAL_RCC_I2C2_CLK_ENABLE();
168
+  /* USER CODE END I2C2_MspInit 0 */
169
+  
170
+    /**I2C2 GPIO Configuration    
171
+    PB10     ------> I2C2_SCL
172
+    PB11     ------> I2C2_SDA 
173
+    */
174
+    GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
175
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
176
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
177
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
178
+
179
+    /* Peripheral clock enable */
180
+    __HAL_RCC_I2C2_CLK_ENABLE();
181
+  /* USER CODE BEGIN I2C2_MspInit 1 */
182
+
183
+  /* USER CODE END I2C2_MspInit 1 */
184
+  }
185
+#endif // PYJ.2020.04.24_END -- 
134 186
 
135 187
 #if 0 // PYJ.2020.04.23_BEGIN -- 
136 188
 uint8_t eepdata[100];
@@ -153,52 +205,71 @@ void eepromtest(){
153 205
 uint8_t i2ctest[10] = {22,};
154 206
 uint8_t i2cTestData[1] = {44};
155 207
 #endif // PYJ.2020.04.23_END -- 
156
-uint16_t eepromtestarray[1024];
157
-uint16_t eepromtestReadarray[1024];
208
+uint8_t eepromtestarray[1024 * 3];
209
+uint8_t eepromtestReadarray[1024 * 3];
158 210
 uint8_t eepromtestarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
159 211
 uint8_t eepromtestReadarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
160
-
212
+#define TESTINDEX  sizeof(TEMP_TABLE_st) 
161 213
 void EEPROMTEST_J(){
162
-    int aa = 256;
163
-    for(int i = 0; i< 512; i++)
164
-        eepromtestarray[i] = i;
165
-    EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE     ,1),&eepromtestarray[0],0xFF);
166
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE      ,1),&eepromtestReadarray[0],0xFF);
167
-//    EEPROM_M24C08_ByteRead(0xa0|0x01 ),MAKE_ADDRESS(EEPROM_ATT_BASE + 150,0),&eepromtestReadarray[150],150);
168
-    for(int i = 0; i< 128; i++)
169
-        printf("index [%d]: %d \r\n",i,eepromtestReadarray[i]);
170
-    EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE + aa    ,1),&eepromtestarray[128],0xFF);
171
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE  + aa       ,1),&eepromtestReadarray[128],0xFF);
172
-    for(int i = 128; i< 256; i++)
173
-        printf("index [%d]: %d \r\n",i,eepromtestReadarray[i]);
174
-    EEPROM_M24C08_Bytewrite(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE + aa * 2    ,1),&eepromtestarray[256],0xFF);
175
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID,MAKE_ADDRESS(EEPROM_ATT_BASE  + aa * 2       ,1),&eepromtestReadarray[256],0xFF);
176
-    for(int i = 256; i< 384; i++)
177
-        printf("index [%d]: %d \r\n",i,eepromtestReadarray[i]);
178
-#if 0 // PYJ.2020.04.23_BEGIN -- 
179
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL2_TABLE_ADDRESDS,0),&eepromtestReadarray[0],EEPROM_WINDOW_STATUS_ADDRESDS);
180
-    for(int i = 0; i< EEPROM_WINDOW_STATUS_ADDRESDS; i++)
181
-        printf("%d ",eepromtestReadarray[i]);
182
-       printf("\r\n");    
183
-    EEPROM_M24C08_ByteRead(EEPROM_M24C08_ID ,MAKE_ADDRESS(EEPROM_ATT_DL3_TABLE_ADDRESDS,0),&eepromtestReadarray[0],EEPROM_WINDOW_STATUS_ADDRESDS);
184
-    for(int i = 0; i< EEPROM_WINDOW_STATUS_ADDRESDS; i++)
185
-        printf("%d ",eepromtestReadarray[i]);
186
-           printf("\r\n");
187
-#endif // PYJ.2020.04.23_END -- 
214
+#if 1 // PYJ.2020.04.25_BEGIN -- 
215
+      for(int i = 0; i< TESTINDEX; i++)
216
+          eepromtestarray[i] = i;
217
+      printf("Value %x\r\n",eepromtestarray[1]);
218
+    
219
+//        EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&eepromtestarray[0],TESTINDEX);   
220
+          EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&eepromtestarray[0],sizeof(TEMP_TABLE_st));                            
221
+          EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&eepromtestReadarray[0],sizeof(TEMP_TABLE_st));                                    
222
+
223
+//        EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&eepromtestReadarray[0],TESTINDEX);   
224
+    
225
+        for(int i = 0; i< TESTINDEX; i++)
226
+            printf("%d ",eepromtestReadarray[i]);
227
+               printf("\r\n");
228
+#endif // PYJ.2020.04.25_END -- 
229
+
188 230
 
189 231
 }
190 232
 #if 1 // PYJ.2020.04.23_BEGIN -- 
191 233
 void eepromtest_j1(){
192
-  for(int i = 0; i< 128; i++)
234
+uint8_t ret  = 0;
235
+  for(int i = 0; i < 128; i++)
193 236
       eepromtestarray[i] = i;
194
-
195
-  EEPROM_M24C08_write(EEPROM_M24C08_ID ,0,eepromtestarray,128);
196
-
197
-  EEPROM_M24C08_Read(EEPROM_M24C08_ID ,0,eepromtestReadarray,128);
198
-  
199
-   for(int i = 0; i< 128; i++)
200
-       printf("%d ",eepromtestReadarray[i]);
201
-          printf("\r\n");
237
+  printf("Value %x\r\n",eepromtestarray[1]);
238
+  printf("Address Start %x\r\n",EEPROM_WINDOW_STATUS_ADDRESDS);
239
+
240
+#if 0 // PYJ.2020.04.25_BEGIN -- 
241
+  EEPROM_M24C08_write(EEPROM_M24C08_ID ,
242
+                      (EEPROM_ATT_BASE),
243
+                      &eepromtestarray[0],
244
+                      TESTINDEX);
245
+
246
+                      
247
+//  EEPROM_M24C08_write(EEPROM_M24C08_ID ,
248
+//                     (EEPROM_ATT_DL1_TABLE_ADDRESDS),
249
+//                     &eepromtestarray[sizeof(ATT_TABLE_st)],
250
+//                      sizeof(ATT_TABLE_st));
251
+
252
+   EEPROM_M24C08_Read(EEPROM_M24C08_ID ,
253
+                      EEPROM_ATT_BASE             ,
254
+                      &eepromtestReadarray[0],
255
+                      TESTINDEX);
256
+#endif // PYJ.2020.04.25_END -- 
257
+//    EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&eepromtestarray[0],sizeof(TEMP_TABLE_st));                    
258
+    //    EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&eepromtestReadarray[0],sizeof(TEMP_TABLE_st) );           
259
+#if 0 // PYJ.2020.04.25_BEGIN -- 
260
+    EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS),&eepromtestarray[0],sizeof(ATT_TABLE_st) );
261
+
262
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS),&eepromtestReadarray[0],sizeof(ATT_TABLE_st) );
263
+#else
264
+    EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS & 0xFFFF),eepromtestarray,128 );
265
+
266
+    EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS & 0xFFFF),eepromtestReadarray,128 );
267
+
268
+#endif // PYJ.2020.04.25_END -- 
269
+
270
+    for(int i = 0; i< 128 ; i++)
271
+        printf("%x ",eepromtestReadarray[i]);
272
+           printf("\r\n");
202 273
 
203 274
 }
204 275
 #endif // PYJ.2020.04.23_END -- 
@@ -250,13 +321,13 @@ int main(void)
250 321
   /* Initialize all configured peripherals */
251 322
   MX_GPIO_Init();
252 323
   MX_DMA_Init();
253
-  MX_I2C2_Init();
254 324
   MX_USART1_UART_Init();
255 325
   MX_ADC1_Init();
256 326
   MX_ADC3_Init();
257 327
   MX_USART2_UART_Init();
258 328
   MX_TIM6_Init();
259 329
   MX_CRC_Init();
330
+  MX_I2C2_Init();
260 331
 
261 332
   /* Initialize interrupts */
262 333
   MX_NVIC_Init();
@@ -265,13 +336,11 @@ int main(void)
265 336
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
266 337
   HAL_ADC_Start_DMA(&hadc3, (uint16_t*)ADC3value, 5);
267 338
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
268
-
269 339
   InitUartQueue(&TerminalQueue);
270 340
   setbuf(stdout, NULL);
271 341
   PE43711_PinInit();
272
-//  EEPROM_M24C08_Init();
273
-//  Bluecell_DataInit();
274
-
342
+  EEPROM_M24C08_Init();
343
+  Bluecell_DataInit();
275 344
 #if 0 // PYJ.2020.04.22_BEGIN -- 
276 345
   EEPROM_M24C08_write(0xA0,0,i2cTestData,1);
277 346
   printf("i2c Test Data1 %d\r\n",i2ctest[0]);
@@ -283,14 +352,17 @@ int main(void)
283 352
 
284 353
   /* Infinite loop */
285 354
   /* USER CODE BEGIN WHILE */
286
-    uint16_t ret = 0;
287
-
355
+//    uint16_t ret = 0;
288 356
 //    EEPROMTEST_J();
357
+//    eepromtest_j1();
358
+//        eepromtest_j1();
359
+
360
+
289 361
     
290 362
     
291 363
 
292 364
 
293
-    printf("Project Start\r\n");
365
+  printf("Project Start\r\n");
294 366
   while (1)
295 367
   {
296 368
 //	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
@@ -362,12 +434,6 @@ static void MX_NVIC_Init(void)
362 434
   /* DMA1_Channel5_IRQn interrupt configuration */
363 435
   HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
364 436
   HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
365
-  /* I2C2_EV_IRQn interrupt configuration */
366
-  HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0);
367
-  HAL_NVIC_EnableIRQ(I2C2_EV_IRQn);
368
-  /* I2C2_ER_IRQn interrupt configuration */
369
-  HAL_NVIC_SetPriority(I2C2_ER_IRQn, 0, 0);
370
-  HAL_NVIC_EnableIRQ(I2C2_ER_IRQn);
371 437
   /* USART1_IRQn interrupt configuration */
372 438
   HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
373 439
   HAL_NVIC_EnableIRQ(USART1_IRQn);
@@ -575,6 +641,7 @@ static void MX_I2C2_Init(void)
575 641
   hi2c2.Instance = I2C2;
576 642
   hi2c2.Init.ClockSpeed = 400000;
577 643
   hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
644
+  
578 645
   hi2c2.Init.OwnAddress1 = 0;
579 646
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
580 647
   hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;

+ 0 - 3
Src/stm32f1xx_hal_msp.c

@@ -355,9 +355,6 @@ void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
355 355
     */
356 356
     HAL_GPIO_DeInit(GPIOB, EEPROM_SCL_Pin|EEPROM_SDA_Pin);
357 357
 
358
-    /* I2C2 interrupt DeInit */
359
-    HAL_NVIC_DisableIRQ(I2C2_EV_IRQn);
360
-    HAL_NVIC_DisableIRQ(I2C2_ER_IRQn);
361 358
   /* USER CODE BEGIN I2C2_MspDeInit 1 */
362 359
 
363 360
   /* USER CODE END I2C2_MspDeInit 1 */

+ 0 - 29
Src/stm32f1xx_it.c

@@ -60,7 +60,6 @@ extern DMA_HandleTypeDef hdma_adc1;
60 60
 extern DMA_HandleTypeDef hdma_adc3;
61 61
 extern ADC_HandleTypeDef hadc1;
62 62
 extern ADC_HandleTypeDef hadc3;
63
-extern I2C_HandleTypeDef hi2c2;
64 63
 extern TIM_HandleTypeDef htim6;
65 64
 extern DMA_HandleTypeDef hdma_usart1_rx;
66 65
 extern DMA_HandleTypeDef hdma_usart1_tx;
@@ -278,34 +277,6 @@ void TIM2_IRQHandler(void)
278 277
   /* USER CODE END TIM2_IRQn 1 */
279 278
 }
280 279
 
281
-/**
282
-  * @brief This function handles I2C2 event interrupt.
283
-  */
284
-void I2C2_EV_IRQHandler(void)
285
-{
286
-  /* USER CODE BEGIN I2C2_EV_IRQn 0 */
287
-
288
-  /* USER CODE END I2C2_EV_IRQn 0 */
289
-  HAL_I2C_EV_IRQHandler(&hi2c2);
290
-  /* USER CODE BEGIN I2C2_EV_IRQn 1 */
291
-
292
-  /* USER CODE END I2C2_EV_IRQn 1 */
293
-}
294
-
295
-/**
296
-  * @brief This function handles I2C2 error interrupt.
297
-  */
298
-void I2C2_ER_IRQHandler(void)
299
-{
300
-  /* USER CODE BEGIN I2C2_ER_IRQn 0 */
301
-
302
-  /* USER CODE END I2C2_ER_IRQn 0 */
303
-  HAL_I2C_ER_IRQHandler(&hi2c2);
304
-  /* USER CODE BEGIN I2C2_ER_IRQn 1 */
305
-
306
-  /* USER CODE END I2C2_ER_IRQn 1 */
307
-}
308
-
309 280
 /**
310 281
   * @brief This function handles USART1 global interrupt.
311 282
   */