浏览代码

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
 }BLUESTATUS_st;
516
 }BLUESTATUS_st;
517
 typedef struct{
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
 }ATT_TABLE_st;
646
 }ATT_TABLE_st;
583
 typedef struct{
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
 }DET_TABLEDL_st;
711
 }DET_TABLEDL_st;
617
 typedef struct{
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
 }DET_TABLEUL_st;
759
 }DET_TABLEUL_st;
665
 
760
 
666
 typedef struct{
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
 }TEMP_TABLE_st;
773
 }TEMP_TABLE_st;
679
 typedef enum{
774
 typedef enum{
680
   Bluecell_DET_UL1_ADC_INDEX_H = 0,
775
   Bluecell_DET_UL1_ADC_INDEX_H = 0,

+ 56 - 32
Bluecell_Inc/eeprom.h

@@ -13,38 +13,62 @@
13
 #define EEPROM_Block0_ADDRESS             EEPROM_M24C08_ID
13
 #define EEPROM_Block0_ADDRESS             EEPROM_M24C08_ID
14
 #define EEPROM_ATT_BASE					  0x0000
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
 #define MAKE_ADDRESS(_addr, _e2)            ((uint8_t)EEPROM_M24C08_ADDR | \
73
 #define MAKE_ADDRESS(_addr, _e2)            ((uint8_t)EEPROM_M24C08_ADDR | \
50
                                              ((_e2) ? EEPROM_M24C08_ADDR_E2 : 0) | \
74
                                              ((_e2) ? EEPROM_M24C08_ADDR_E2 : 0) | \
@@ -58,8 +82,8 @@
58
 
82
 
59
 #define EEPROM_M24C08_BYTE_ADDR_H           0x06
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
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
88
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
65
 HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
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
 extern ALL_PE43711_st ALL_ATT;
76
 extern ALL_PE43711_st ALL_ATT;
77
 BLUESTATUS_st bluecell_Currdatastatus;
77
 BLUESTATUS_st bluecell_Currdatastatus;
78
 BLUESTATUS_st bluecell_Prevdatastatus;
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
     uint16_t tmp_h = 0,tmp_l = 0;
106
     uint16_t tmp_h = 0,tmp_l = 0;
82
     double ret = 0;
107
     double ret = 0;
83
     uint8_t val = 0;
108
     uint8_t val = 0;
84
     tmp_h = high_bit;
109
     tmp_h = high_bit;
85
     tmp_l = low_bit;
110
     tmp_l = low_bit;
86
-    ret += ((tmp_h << 8) & 0xFF00);
111
+    ret = ((tmp_h << 8) & 0xFF00);
87
     ret += (tmp_l & 0x00FF);
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
     ret /= 100;
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
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
148
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
94
      uint8_t val = 0;
149
      uint8_t val = 0;
@@ -96,7 +151,8 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
96
      ||Curr.ATT_DL1_L != Prev.ATT_DL1_L){
151
      ||Curr.ATT_DL1_L != Prev.ATT_DL1_L){
97
         bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
152
         bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
98
         bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
156
 //        printf("%d val = %x \r\n",__LINE__,val);
101
         PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
157
         PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
102
     }
158
     }
@@ -105,7 +161,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
105
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)){
161
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)){
106
         bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
162
         bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
107
         bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
165
 //        printf("%d val = %x \r\n",__LINE__,val);
110
         PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
166
         PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
111
     }
167
     }
@@ -114,7 +170,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
114
      ||Curr.ATT_DL3_L != Prev.ATT_DL3_L){
170
      ||Curr.ATT_DL3_L != Prev.ATT_DL3_L){
115
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
171
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
116
         bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
174
 //        printf("%d val = %x \r\n",__LINE__,val);
119
         PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
175
         PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
120
     }
176
     }
@@ -125,7 +181,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
125
      ||Curr.ATT_DL4_L != Prev.ATT_DL4_L){
181
      ||Curr.ATT_DL4_L != Prev.ATT_DL4_L){
126
         bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
182
         bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
127
         bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
185
 //        printf("%d val = %x \r\n",__LINE__,val);
130
         PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
186
         PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
131
     }
187
     }
@@ -135,7 +191,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
135
      ||Curr.ATT_UL1_L != Prev.ATT_UL1_L){
191
      ||Curr.ATT_UL1_L != Prev.ATT_UL1_L){
136
         bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
192
         bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
137
         bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
195
 //        printf("%d val = %x \r\n",__LINE__,val);
140
         PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
196
         PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
141
     }
197
     }
@@ -143,7 +199,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
143
      ||Curr.ATT_UL2_L != Prev.ATT_UL2_L){
199
      ||Curr.ATT_UL2_L != Prev.ATT_UL2_L){
144
         bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
200
         bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
145
         bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
203
 //        printf("%d val = %x \r\n",__LINE__,val);
148
         PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
204
         PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
149
     }
205
     }
@@ -153,7 +209,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
153
         bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
209
         bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
154
         bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
213
 //        printf("%d val = %x \r\n",__LINE__,val);
158
         PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
214
         PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
159
     }
215
     }
@@ -162,7 +218,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
162
         bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
218
         bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
163
         bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
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
 //        printf("%d val = %x \r\n",__LINE__,val);
222
 //        printf("%d val = %x \r\n",__LINE__,val);
167
         PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
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
         bluecell_Prevdatastatus.ATT_ALC1_H = bluecell_Currdatastatus.ATT_ALC1_H;
231
         bluecell_Prevdatastatus.ATT_ALC1_H = bluecell_Currdatastatus.ATT_ALC1_H;
176
         bluecell_Prevdatastatus.ATT_ALC1_L = bluecell_Currdatastatus.ATT_ALC1_L;
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
 //        val = PE43711_DataToHexConvert(ret);
234
 //        val = PE43711_DataToHexConvert(ret);
179
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
235
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
180
 
236
 
@@ -183,7 +239,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
183
      ||Curr.ATT_ALC2_L != Prev.ATT_ALC2_L){
239
      ||Curr.ATT_ALC2_L != Prev.ATT_ALC2_L){
184
         bluecell_Prevdatastatus.ATT_ALC2_H = bluecell_Currdatastatus.ATT_ALC2_H;
240
         bluecell_Prevdatastatus.ATT_ALC2_H = bluecell_Currdatastatus.ATT_ALC2_H;
185
         bluecell_Prevdatastatus.ATT_ALC2_L = bluecell_Currdatastatus.ATT_ALC2_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
244
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
189
 
245
 
@@ -192,17 +248,17 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
192
      ||Curr.ATT_ALC3_L != Prev.ATT_ALC3_L){
248
      ||Curr.ATT_ALC3_L != Prev.ATT_ALC3_L){
193
         bluecell_Prevdatastatus.ATT_ALC3_H = bluecell_Currdatastatus.ATT_ALC3_H;
249
         bluecell_Prevdatastatus.ATT_ALC3_H = bluecell_Currdatastatus.ATT_ALC3_H;
194
         bluecell_Prevdatastatus.ATT_ALC3_L = bluecell_Currdatastatus.ATT_ALC3_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
253
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
198
 
254
 
199
     }
255
     }
200
     if(Curr.ATT_ALC4_H != Prev.ATT_ALC4_H
256
     if(Curr.ATT_ALC4_H != Prev.ATT_ALC4_H
201
      ||Curr.ATT_ALC4_L != Prev.ATT_ALC4_L){
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
         bluecell_Prevdatastatus.ATT_ALC4_H = bluecell_Currdatastatus.ATT_ALC4_H;
259
         bluecell_Prevdatastatus.ATT_ALC4_H = bluecell_Currdatastatus.ATT_ALC4_H;
204
         bluecell_Prevdatastatus.ATT_ALC4_L = bluecell_Currdatastatus.ATT_ALC4_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
263
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
208
 
264
 
@@ -213,7 +269,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
213
      ||Curr.ATT_AGC1_L != Prev.ATT_AGC1_L){
269
      ||Curr.ATT_AGC1_L != Prev.ATT_AGC1_L){
214
         bluecell_Prevdatastatus.ATT_AGC1_H = bluecell_Currdatastatus.ATT_AGC1_H;
270
         bluecell_Prevdatastatus.ATT_AGC1_H = bluecell_Currdatastatus.ATT_AGC1_H;
215
         bluecell_Prevdatastatus.ATT_AGC1_L = bluecell_Currdatastatus.ATT_AGC1_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
274
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
219
 
275
 
@@ -222,7 +278,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
222
      ||Curr.ATT_AGC2_L != Prev.ATT_AGC2_L){
278
      ||Curr.ATT_AGC2_L != Prev.ATT_AGC2_L){
223
         bluecell_Prevdatastatus.ATT_AGC2_H = bluecell_Currdatastatus.ATT_AGC2_H;
279
         bluecell_Prevdatastatus.ATT_AGC2_H = bluecell_Currdatastatus.ATT_AGC2_H;
224
         bluecell_Prevdatastatus.ATT_AGC2_L = bluecell_Currdatastatus.ATT_AGC2_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
283
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
228
 
284
 
@@ -231,7 +287,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
231
      ||Curr.ATT_AGC3_L != Prev.ATT_AGC3_L){
287
      ||Curr.ATT_AGC3_L != Prev.ATT_AGC3_L){
232
         bluecell_Prevdatastatus.ATT_AGC3_H = bluecell_Currdatastatus.ATT_AGC3_H;
288
         bluecell_Prevdatastatus.ATT_AGC3_H = bluecell_Currdatastatus.ATT_AGC3_H;
233
         bluecell_Prevdatastatus.ATT_AGC3_L = bluecell_Currdatastatus.ATT_AGC3_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
292
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
237
 
293
 
@@ -240,16 +296,13 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
240
      ||Curr.ATT_AGC4_L != Prev.ATT_AGC4_L){
296
      ||Curr.ATT_AGC4_L != Prev.ATT_AGC4_L){
241
         bluecell_Prevdatastatus.ATT_AGC4_H = bluecell_Currdatastatus.ATT_AGC4_H;
297
         bluecell_Prevdatastatus.ATT_AGC4_H = bluecell_Currdatastatus.ATT_AGC4_H;
242
         bluecell_Prevdatastatus.ATT_AGC4_L = bluecell_Currdatastatus.ATT_AGC4_L;
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
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
301
 //        PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
246
 
302
 
247
     }
303
     }
248
 #endif // PYJ.2020.04.21_END -- 
304
 #endif // PYJ.2020.04.21_END -- 
249
      
305
      
250
-}
251
-void Bluecell_DataCopy(){
252
-
253
 }
306
 }
254
 
307
 
255
 typedef enum{
308
 typedef enum{
@@ -307,13 +360,13 @@ TEMP_TABLE_st Temp_UL1;
307
 TEMP_TABLE_st Temp_UL2;
360
 TEMP_TABLE_st Temp_UL2;
308
 TEMP_TABLE_st Temp_UL3;
361
 TEMP_TABLE_st Temp_UL3;
309
 TEMP_TABLE_st Temp_UL4;
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
     dst[i]  = ((src[i * 2] << 8) & 0xFF00);
365
     dst[i]  = ((src[i * 2] << 8) & 0xFF00);
313
     dst[i]  += src[i * 2 + 1] & 0x00FF;
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
   for(int i = 0; i < size; i++){
370
   for(int i = 0; i < size; i++){
318
     dst[i]  = src[i];
371
     dst[i]  = src[i];
319
   }
372
   }
@@ -342,7 +395,7 @@ OneByteToTwoByte ConvertTo1Byte(uint16_t data){
342
 
395
 
343
 void Bluecell_Struct2byteCopyFunction(uint8_t* dst,uint16_t* src,uint8_t size){
396
 void Bluecell_Struct2byteCopyFunction(uint8_t* dst,uint16_t* src,uint8_t size){
344
   OneByteToTwoByte convert;
397
   OneByteToTwoByte convert;
345
-  for(int i = 0; i < size; i++){
398
+  for(int i = 0; i < (size / 2); i++){
346
     convert = ConvertTo1Byte(src[i]);
399
     convert = ConvertTo1Byte(src[i]);
347
     dst[i * 2]      = convert.High_bit;
400
     dst[i * 2]      = convert.High_bit;
348
     dst[i * 2 + 1]  = convert.Low_bit;
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
 void Bluecell_structprintf(uint8_t* dst,uint8_t size){
404
 void Bluecell_structprintf(uint8_t* dst,uint8_t size){
352
   for(int i = 0; i < size; i++){
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
 void Bluecell_TableLoad(uint8_t* data){
419
 void Bluecell_TableLoad(uint8_t* data){
358
     uint8_t tabletype = data[BLUECELL_DATA];
420
     uint8_t tabletype = data[BLUECELL_DATA];
359
 //    OneByteToTwoByte data;
421
 //    OneByteToTwoByte data;
360
 //    printf("%s : %x \r\n",__func__,tabletype);
422
 //    printf("%s : %x \r\n",__func__,tabletype);
361
-
362
     switch(tabletype){
423
     switch(tabletype){
363
         case Bluecell_Table_ATT_DL1: 
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
428
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
372
-        break;
429
+          break;
373
         case Bluecell_Table_ATT_DL2: 
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
433
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
376
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
438
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
380
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
443
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
384
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
453
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
388
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
458
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
392
             break;
459
             break;
393
         case Bluecell_Table_ATT_UL4: 
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
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
463
             data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
396
             break;
464
             break;
397
         case Bluecell_Table_DET_DL1: 
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
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
468
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
400
             break;
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
         case Bluecell_Table_DET_DL2: 
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
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
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
             break;
474
             break;
414
         case Bluecell_Table_DET_DL3: 
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
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
478
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
417
             break;
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
         case Bluecell_Table_DET_DL4: 
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
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
483
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
425
             break;
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
         case Bluecell_Table_DET_UL4: 
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
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
504
             data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
429
 
505
 
430
             break;
506
             break;
431
         case Bluecell_Table_TEMP_DL1:
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
510
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
434
 
511
 
435
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
516
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
439
 
517
 
440
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
522
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
444
 
523
 
445
             break;
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
             break;
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
540
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
454
-
541
+        
455
             break;
542
             break;
456
         case Bluecell_Table_TEMP_UL3:
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
546
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
459
-
547
+        
460
             break;
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
         case Bluecell_Table_TEMP_UL4:
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
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
552
             data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
469
 
553
 
470
             break;
554
             break;
@@ -479,126 +563,116 @@ void Bluecell_TableSave(uint8_t* data){
479
     //printf("%s : %x \r\n",__func__,tabletype);
563
     //printf("%s : %x \r\n",__func__,tabletype);
480
     switch(tabletype){
564
     switch(tabletype){
481
         case Bluecell_Table_ATT_DL1: 
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
         case Bluecell_Table_ATT_DL2: 
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
             break;
578
             break;
579
+            
498
         case Bluecell_Table_ATT_DL3: 
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
             break;
583
             break;
584
+            
502
         case Bluecell_Table_ATT_DL4: 
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
             break;
588
             break;
506
 
589
 
507
             
590
             
508
         case Bluecell_Table_ATT_UL1: 
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
             break;
594
             break;
512
         case Bluecell_Table_ATT_UL2: 
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
             break;
598
             break;
516
         case Bluecell_Table_ATT_UL3: 
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
             break;
602
             break;
520
         case Bluecell_Table_ATT_UL4: 
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
             break;
606
             break;
524
         case Bluecell_Table_DET_DL1: 
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
             break;
610
             break;
532
         case Bluecell_Table_DET_DL2: 
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
             break;
615
             break;
536
         case Bluecell_Table_DET_DL3: 
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
         case Bluecell_Table_DET_DL4: 
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
             break;
622
             break;
543
-
544
-
545
-
546
             
623
             
547
         case Bluecell_Table_DET_UL1: 
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
             break;
627
             break;
551
         case Bluecell_Table_DET_UL2: 
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
         break;
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
             break;
635
             break;
559
         case Bluecell_Table_DET_UL4: 
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
             break;
639
             break;
564
-
565
-
566
-
567
-            
568
         case Bluecell_Table_TEMP_DL1:
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
             break;
643
             break;
572
         case Bluecell_Table_TEMP_DL2:
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
             break;
649
             break;
577
         case Bluecell_Table_TEMP_DL3:
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
             break;
654
             break;
582
         case Bluecell_Table_TEMP_DL4:
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
             break;
658
             break;
587
         case Bluecell_Table_TEMP_UL1:
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
             break;
664
             break;
591
         case Bluecell_Table_TEMP_UL2:
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
             break;
668
             break;
595
         case Bluecell_Table_TEMP_UL3:
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
             break;
672
             break;
599
         case Bluecell_Table_TEMP_UL4:
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
             break;
676
             break;
603
     }
677
     }
604
         
678
         
@@ -868,7 +942,7 @@ bool Bluecell_Operate(uint8_t* data){
868
         DataStatusSet();
942
         DataStatusSet();
869
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
943
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
870
         Txdata[Txdata[BLUECELL_LENGTH] + 1] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
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
         for(int i = 0 ; i < Txdata[BLUECELL_LENGTH] + 3; i++ ){
946
         for(int i = 0 ; i < Txdata[BLUECELL_LENGTH] + 3; i++ ){
873
             printf("%x ",Txdata[i]);
947
             printf("%x ",Txdata[i]);
874
         }
948
         }
@@ -878,8 +952,8 @@ bool Bluecell_Operate(uint8_t* data){
878
         break;
952
         break;
879
     case Bluecell_StatusSave:
953
     case Bluecell_StatusSave:
880
 //        printf("Copy Complete");
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
         Txdata[Txdata[BLUECELL_LENGTH] + 1] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
957
         Txdata[Txdata[BLUECELL_LENGTH] + 1] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
884
         Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
958
         Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
885
         break;
959
         break;
@@ -1051,75 +1125,113 @@ bool MBIC_Operate(uint8_t* data){
1051
 
1125
 
1052
 extern volatile uint32_t ADC1_Average_value[4];
1126
 extern volatile uint32_t ADC1_Average_value[4];
1053
 extern volatile uint32_t ADC3_Average_value[5];
1127
 extern volatile uint32_t ADC3_Average_value[5];
1128
+uint16_t ADC1Ret[4];
1129
+uint16_t ADC3Ret[5];
1054
 
1130
 
1055
 void ADC_Check(void){
1131
 void ADC_Check(void){
1056
     static uint8_t Cnt = 0;
1132
     static uint8_t Cnt = 0;
1057
     double Volt_Calc_val = 3.3 / 4095;
1133
     double Volt_Calc_val = 3.3 / 4095;
1058
-    uint16_t ret = 0;
1134
+    double ret = 0;
1059
 //    if(AdcTimerCnt > 10){
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
         adc3cnt = 0;
1144
         adc3cnt = 0;
1066
         bluecell_Currdatastatus.DET_DL1_IN_H 
1145
         bluecell_Currdatastatus.DET_DL1_IN_H 
1067
-            = (uint16_t)((ADC3value[1] & 0xFF00) >> 8);
1146
+            = ((ADC3Ret[1] & 0xFF00) >> 8);
1068
         bluecell_Currdatastatus.DET_DL1_IN_L 
1147
         bluecell_Currdatastatus.DET_DL1_IN_L 
1069
-            = (uint16_t)((ADC3value[1] & 0x00FF));
1148
+            = ((ADC3Ret[1] & 0x00FF));
1070
         
1149
         
1071
 
1150
 
1072
         bluecell_Currdatastatus.DET_DL2_IN_H 
1151
         bluecell_Currdatastatus.DET_DL2_IN_H 
1073
-            = (uint16_t)((ADC3value[2] & 0xFF00) >> 8);
1152
+            = ((ADC3Ret[2] & 0xFF00) >> 8);
1074
         bluecell_Currdatastatus.DET_DL2_IN_L 
1153
         bluecell_Currdatastatus.DET_DL2_IN_L 
1075
-            = (uint16_t)((ADC3value[2] & 0x00FF) );
1154
+            = ((ADC3Ret[2] & 0x00FF) );
1076
 
1155
 
1077
             
1156
             
1078
         bluecell_Currdatastatus.DET_DL3_IN_H 
1157
         bluecell_Currdatastatus.DET_DL3_IN_H 
1079
-            = (uint16_t)((ADC3value[3] & 0xFF00) >> 8);
1158
+            = ((ADC3Ret[3] & 0xFF00) >> 8);
1080
         bluecell_Currdatastatus.DET_DL3_IN_L 
1159
         bluecell_Currdatastatus.DET_DL3_IN_L 
1081
-            = (uint16_t)((ADC3value[3] & 0x00FF) );
1160
+            = ((ADC3Ret[3] & 0x00FF) );
1082
 
1161
 
1083
             
1162
             
1084
         bluecell_Currdatastatus.DET_DL4_IN_H 
1163
         bluecell_Currdatastatus.DET_DL4_IN_H 
1085
-            = (uint16_t)((ADC3value[4] & 0xFF00) >> 8);
1164
+            = ((ADC3Ret[4] & 0xFF00) >> 8);
1086
         bluecell_Currdatastatus.DET_DL4_IN_L 
1165
         bluecell_Currdatastatus.DET_DL4_IN_L 
1087
-            = (uint16_t)((ADC3value[4] & 0x00FF) );
1166
+            = ((ADC3Ret[4] & 0x00FF) );
1167
+
1168
+            
1088
         bluecell_Currdatastatus.DET_UL4_IN_H 
1169
         bluecell_Currdatastatus.DET_UL4_IN_H 
1089
-            = (uint16_t)((ADC3value[0] & 0xFF00) >> 8);
1170
+            = ((ADC3Ret[0] & 0xFF00) >> 8);
1090
         bluecell_Currdatastatus.DET_UL4_IN_L 
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
         adc1cnt = 0;
1197
         adc1cnt = 0;
1098
         bluecell_Currdatastatus.DET_UL1_IN_H 
1198
         bluecell_Currdatastatus.DET_UL1_IN_H 
1099
-            = (uint16_t)((ADC1value[0] & 0xFF00) >> 8);
1199
+            = ((ADC1Ret[0] & 0xFF00) >> 8);
1100
         bluecell_Currdatastatus.DET_UL1_IN_L 
1200
         bluecell_Currdatastatus.DET_UL1_IN_L 
1101
-            = (uint16_t)((ADC1value[0] & 0x00FF) );
1201
+            = ((ADC1Ret[0] & 0x00FF) );
1102
 
1202
 
1103
             
1203
             
1104
         bluecell_Currdatastatus.DET_UL2_IN_H 
1204
         bluecell_Currdatastatus.DET_UL2_IN_H 
1105
-            = (uint16_t)((ADC1value[1] & 0xFF00) >> 8);
1205
+            = ((ADC1Ret[1] & 0xFF00) >> 8);
1106
         bluecell_Currdatastatus.DET_UL2_IN_L 
1206
         bluecell_Currdatastatus.DET_UL2_IN_L 
1107
-            = (uint16_t)((ADC1value[1] & 0x00FF) );
1207
+            = ((ADC1Ret[1] & 0x00FF) );
1108
 
1208
 
1109
             
1209
             
1110
         bluecell_Currdatastatus.DET_UL3_IN_H 
1210
         bluecell_Currdatastatus.DET_UL3_IN_H 
1111
-            = (uint16_t)((ADC1value[2] & 0xFF00) >> 8);
1211
+            = ((ADC1Ret[2] & 0xFF00) >> 8);
1112
         bluecell_Currdatastatus.DET_UL3_IN_L 
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
         bluecell_Currdatastatus.DET_TEMP_H  
1218
         bluecell_Currdatastatus.DET_TEMP_H  
1119
-            =(uint16_t)((ADC1value[3] & 0xFF00) >> 8);
1219
+            =((ADC1Ret[3] & 0xFF00) >> 8);
1120
         bluecell_Currdatastatus.DET_TEMP_L  
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
 #if 0 // PYJ.2020.04.22_BEGIN -- 
1236
 #if 0 // PYJ.2020.04.22_BEGIN -- 
1125
     if(Cnt >= 250){
1237
     if(Cnt >= 250){

+ 378 - 75
Bluecell_Src/eeprom.c

@@ -8,57 +8,66 @@
8
 #include "eeprom.h"
8
 #include "eeprom.h"
9
 #include "Bluecell_operate.h"
9
 #include "Bluecell_operate.h"
10
 #include "stm32f1xx_hal.h"
10
 #include "stm32f1xx_hal.h"
11
+#include "stm32f1xx_hal_gpio.h"
12
+
11
 /* Includes ------------------------------------------------------------------*/   
13
 /* Includes ------------------------------------------------------------------*/   
12
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
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
 void EEPROM_M24C08_Init(void){
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
     printf("EEPROM INIT COMPLETE\r\n");
71
     printf("EEPROM INIT COMPLETE\r\n");
63
 
72
 
64
 }
73
 }
@@ -93,62 +102,77 @@ void eepromtest(){
93
 }
102
 }
94
 #endif // PYJ.2020.04.23_END -- 
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
    HAL_StatusTypeDef ret = HAL_ERROR;
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
       if(ret == HAL_ERROR)
116
       if(ret == HAL_ERROR)
118
             printf("Write ERR\r\n");
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
     return ret;   
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
     HAL_StatusTypeDef ret = HAL_ERROR;
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
 #else
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
     return ret;
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
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
183
 HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
160
    HAL_StatusTypeDef ret = HAL_ERROR;
184
    HAL_StatusTypeDef ret = HAL_ERROR;
185
+#if 0 // PYJ.2020.04.24_BEGIN -- 
161
    for(int i = 0; i < size; i++){
186
    for(int i = 0; i < size; i++){
162
      ret = HAL_I2C_Mem_Read(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1, 1024);
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
        if(ret == HAL_ERROR)
189
        if(ret == HAL_ERROR)
164
         printf("Write ERR\r\n");
190
         printf("Write ERR\r\n");
165
 //     ret = HAL_I2C_Mem_Read_IT(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1);
191
 //     ret = HAL_I2C_Mem_Read_IT(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1);
166
      HAL_Delay(10);
192
      HAL_Delay(10);
167
    }
193
    }
194
+#endif // PYJ.2020.04.24_END -- 
168
     return ret;   
195
     return ret;   
169
 }
196
 }
197
+uint8_t I2CWrite[1024];
170
 HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
198
 HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size){
171
     HAL_StatusTypeDef ret = HAL_ERROR;
199
     HAL_StatusTypeDef ret = HAL_ERROR;
200
+#if 0 // PYJ.2020.04.24_BEGIN -- 
201
+
172
     for(int i = 0; i < size; i++){
202
     for(int i = 0; i < size; i++){
173
         ret = HAL_I2C_Mem_Write(&hi2c2, devid, Address + i,  I2C_MEMADD_SIZE_8BIT, &data[i], 1, 1024);
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
         if(ret == HAL_ERROR)
206
         if(ret == HAL_ERROR)
175
-              printf("Write ERR\r\n");
207
+            printf("Write ERR\r\n");
208
+        else
209
+            HAL_Delay(7);
176
 //        ret = HAL_I2C_Mem_Write_IT(&hi2c2, devid, Address + i, I2C_MEMADD_SIZE_8BIT, &data[i], 1);
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
     return ret;
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
 void DMA1_Channel5_IRQHandler(void);
61
 void DMA1_Channel5_IRQHandler(void);
62
 void ADC1_2_IRQHandler(void);
62
 void ADC1_2_IRQHandler(void);
63
 void TIM2_IRQHandler(void);
63
 void TIM2_IRQHandler(void);
64
-void I2C2_EV_IRQHandler(void);
65
-void I2C2_ER_IRQHandler(void);
66
 void USART1_IRQHandler(void);
64
 void USART1_IRQHandler(void);
67
 void USART2_IRQHandler(void);
65
 void USART2_IRQHandler(void);
68
 void ADC3_IRQHandler(void);
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
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
170
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
171
 NVIC.ForceEnableDMAVector=true
171
 NVIC.ForceEnableDMAVector=true
172
 NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
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
 NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
173
 NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
176
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
174
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
177
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
175
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
@@ -425,7 +423,7 @@ ProjectManager.StackSize=0x400
425
 ProjectManager.TargetToolchain=TrueSTUDIO
423
 ProjectManager.TargetToolchain=TrueSTUDIO
426
 ProjectManager.ToolChainLocation=
424
 ProjectManager.ToolChainLocation=
427
 ProjectManager.UnderRoot=true
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
 RCC.ADCFreqValue=14000000
427
 RCC.ADCFreqValue=14000000
430
 RCC.ADCPresc=RCC_ADCPCLK2_DIV4
428
 RCC.ADCPresc=RCC_ADCPCLK2_DIV4
431
 RCC.AHBFreq_Value=56000000
429
 RCC.AHBFreq_Value=56000000

+ 127 - 60
Src/main.c

@@ -77,13 +77,13 @@ volatile uint32_t LDTimerCnt = 0;
77
 void SystemClock_Config(void);
77
 void SystemClock_Config(void);
78
 static void MX_GPIO_Init(void);
78
 static void MX_GPIO_Init(void);
79
 static void MX_DMA_Init(void);
79
 static void MX_DMA_Init(void);
80
-static void MX_I2C2_Init(void);
81
 static void MX_USART1_UART_Init(void);
80
 static void MX_USART1_UART_Init(void);
82
 static void MX_ADC1_Init(void);
81
 static void MX_ADC1_Init(void);
83
 static void MX_ADC3_Init(void);
82
 static void MX_ADC3_Init(void);
84
 static void MX_USART2_UART_Init(void);
83
 static void MX_USART2_UART_Init(void);
85
 static void MX_TIM6_Init(void);
84
 static void MX_TIM6_Init(void);
86
 static void MX_CRC_Init(void);
85
 static void MX_CRC_Init(void);
86
+static void MX_I2C2_Init(void);
87
 static void MX_NVIC_Init(void);
87
 static void MX_NVIC_Init(void);
88
 /* USER CODE BEGIN PFP */
88
 /* USER CODE BEGIN PFP */
89
 
89
 
@@ -113,24 +113,76 @@ uint8_t adc3cnt = 0 ;
113
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
113
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
114
 {
114
 {
115
 //?��?��?�� 코드 ?��?��
115
 //?��?��?�� 코드 ?��?��
116
-//만약 ?��?�� adc?���?? �???��?�� ?�� ?��?���?? ?��?���?? ?��?��?? 같이 조건�?? ?��?��
116
+//諤嵸烄 ?嚙踝蕭?嚙踝蕭 adc?嚙踝蕭嚙??? 嚙????嚙踝蕭?嚙踝蕭 ?嚙踝蕭 ?嚙踝蕭?嚙踝蕭嚙??? ?嚙踝蕭?嚙踝蕭嚙??? ?嚙踝蕭?嚙踝蕭?? 穈軤𦚯 魽國探嚙??? ?嚙踝蕭?嚙踝蕭
117
 
117
 
118
     if(hadc->Instance == hadc1.Instance)
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
     if(hadc->Instance == hadc3.Instance)
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
 #if 0 // PYJ.2020.04.23_BEGIN -- 
187
 #if 0 // PYJ.2020.04.23_BEGIN -- 
136
 uint8_t eepdata[100];
188
 uint8_t eepdata[100];
@@ -153,52 +205,71 @@ void eepromtest(){
153
 uint8_t i2ctest[10] = {22,};
205
 uint8_t i2ctest[10] = {22,};
154
 uint8_t i2cTestData[1] = {44};
206
 uint8_t i2cTestData[1] = {44};
155
 #endif // PYJ.2020.04.23_END -- 
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
 uint8_t eepromtestarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
210
 uint8_t eepromtestarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
159
 uint8_t eepromtestReadarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
211
 uint8_t eepromtestReadarray1[EEPROM_WINDOW_STATUS_ADDRESDS];
160
-
212
+#define TESTINDEX  sizeof(TEMP_TABLE_st) 
161
 void EEPROMTEST_J(){
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
 #if 1 // PYJ.2020.04.23_BEGIN -- 
232
 #if 1 // PYJ.2020.04.23_BEGIN -- 
191
 void eepromtest_j1(){
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
       eepromtestarray[i] = i;
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
 #endif // PYJ.2020.04.23_END -- 
275
 #endif // PYJ.2020.04.23_END -- 
@@ -250,13 +321,13 @@ int main(void)
250
   /* Initialize all configured peripherals */
321
   /* Initialize all configured peripherals */
251
   MX_GPIO_Init();
322
   MX_GPIO_Init();
252
   MX_DMA_Init();
323
   MX_DMA_Init();
253
-  MX_I2C2_Init();
254
   MX_USART1_UART_Init();
324
   MX_USART1_UART_Init();
255
   MX_ADC1_Init();
325
   MX_ADC1_Init();
256
   MX_ADC3_Init();
326
   MX_ADC3_Init();
257
   MX_USART2_UART_Init();
327
   MX_USART2_UART_Init();
258
   MX_TIM6_Init();
328
   MX_TIM6_Init();
259
   MX_CRC_Init();
329
   MX_CRC_Init();
330
+  MX_I2C2_Init();
260
 
331
 
261
   /* Initialize interrupts */
332
   /* Initialize interrupts */
262
   MX_NVIC_Init();
333
   MX_NVIC_Init();
@@ -265,13 +336,11 @@ int main(void)
265
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
336
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
266
   HAL_ADC_Start_DMA(&hadc3, (uint16_t*)ADC3value, 5);
337
   HAL_ADC_Start_DMA(&hadc3, (uint16_t*)ADC3value, 5);
267
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
338
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
268
-
269
   InitUartQueue(&TerminalQueue);
339
   InitUartQueue(&TerminalQueue);
270
   setbuf(stdout, NULL);
340
   setbuf(stdout, NULL);
271
   PE43711_PinInit();
341
   PE43711_PinInit();
272
-//  EEPROM_M24C08_Init();
273
-//  Bluecell_DataInit();
274
-
342
+  EEPROM_M24C08_Init();
343
+  Bluecell_DataInit();
275
 #if 0 // PYJ.2020.04.22_BEGIN -- 
344
 #if 0 // PYJ.2020.04.22_BEGIN -- 
276
   EEPROM_M24C08_write(0xA0,0,i2cTestData,1);
345
   EEPROM_M24C08_write(0xA0,0,i2cTestData,1);
277
   printf("i2c Test Data1 %d\r\n",i2ctest[0]);
346
   printf("i2c Test Data1 %d\r\n",i2ctest[0]);
@@ -283,14 +352,17 @@ int main(void)
283
 
352
 
284
   /* Infinite loop */
353
   /* Infinite loop */
285
   /* USER CODE BEGIN WHILE */
354
   /* USER CODE BEGIN WHILE */
286
-    uint16_t ret = 0;
287
-
355
+//    uint16_t ret = 0;
288
 //    EEPROMTEST_J();
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
   while (1)
366
   while (1)
295
   {
367
   {
296
 //	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
368
 //	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
@@ -362,12 +434,6 @@ static void MX_NVIC_Init(void)
362
   /* DMA1_Channel5_IRQn interrupt configuration */
434
   /* DMA1_Channel5_IRQn interrupt configuration */
363
   HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
435
   HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
364
   HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
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
   /* USART1_IRQn interrupt configuration */
437
   /* USART1_IRQn interrupt configuration */
372
   HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
438
   HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
373
   HAL_NVIC_EnableIRQ(USART1_IRQn);
439
   HAL_NVIC_EnableIRQ(USART1_IRQn);
@@ -575,6 +641,7 @@ static void MX_I2C2_Init(void)
575
   hi2c2.Instance = I2C2;
641
   hi2c2.Instance = I2C2;
576
   hi2c2.Init.ClockSpeed = 400000;
642
   hi2c2.Init.ClockSpeed = 400000;
577
   hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
643
   hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
644
+  
578
   hi2c2.Init.OwnAddress1 = 0;
645
   hi2c2.Init.OwnAddress1 = 0;
579
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
646
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
580
   hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
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
     HAL_GPIO_DeInit(GPIOB, EEPROM_SCL_Pin|EEPROM_SDA_Pin);
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
   /* USER CODE BEGIN I2C2_MspDeInit 1 */
358
   /* USER CODE BEGIN I2C2_MspDeInit 1 */
362
 
359
 
363
   /* USER CODE END I2C2_MspDeInit 1 */
360
   /* USER CODE END I2C2_MspDeInit 1 */

+ 0 - 29
Src/stm32f1xx_it.c

@@ -60,7 +60,6 @@ extern DMA_HandleTypeDef hdma_adc1;
60
 extern DMA_HandleTypeDef hdma_adc3;
60
 extern DMA_HandleTypeDef hdma_adc3;
61
 extern ADC_HandleTypeDef hadc1;
61
 extern ADC_HandleTypeDef hadc1;
62
 extern ADC_HandleTypeDef hadc3;
62
 extern ADC_HandleTypeDef hadc3;
63
-extern I2C_HandleTypeDef hi2c2;
64
 extern TIM_HandleTypeDef htim6;
63
 extern TIM_HandleTypeDef htim6;
65
 extern DMA_HandleTypeDef hdma_usart1_rx;
64
 extern DMA_HandleTypeDef hdma_usart1_rx;
66
 extern DMA_HandleTypeDef hdma_usart1_tx;
65
 extern DMA_HandleTypeDef hdma_usart1_tx;
@@ -278,34 +277,6 @@ void TIM2_IRQHandler(void)
278
   /* USER CODE END TIM2_IRQn 1 */
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
   * @brief This function handles USART1 global interrupt.
281
   * @brief This function handles USART1 global interrupt.
311
   */
282
   */