Explorar o código

Timer Start / Clock 변경 /Warning 수정

PYJ %!s(int64=5) %!d(string=hai) anos
pai
achega
945cdfde05

+ 27 - 24
Bluecell_Src/Bluecell_operate.c

@@ -11,8 +11,9 @@ extern volatile uint32_t LedTimerCnt;
11
 extern volatile uint32_t AdcTimerCnt;
11
 extern volatile uint32_t AdcTimerCnt;
12
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
12
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
13
 extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
13
 extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
14
-nt8_t AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
15
-
14
+int8_t AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
15
+void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint16_t size);
16
+void DataStatusSet(void);
16
 uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
17
 uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
17
 //uint8_t data123[10000];
18
 //uint8_t data123[10000];
18
 uint8_t ResultData[1024] = {0,};
19
 uint8_t ResultData[1024] = {0,};
@@ -272,29 +273,30 @@ void Boot_LED_Toggle(void){
272
 
273
 
273
 
274
 
274
 uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit,uint8_t offset_h,uint8_t offset_l){
275
 uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit,uint8_t offset_h,uint8_t offset_l){
275
-    uint8_t tmp_h = high_bit,tmp_l = low_bit;
276
+
276
     double ret = 0;
277
     double ret = 0;
277
-    uint8_t val = 0;
278
+
278
     ret = PE43711_Double(high_bit,low_bit);
279
     ret = PE43711_Double(high_bit,low_bit);
279
     ret += PE43711_Double(offset_h,offset_l);
280
     ret += PE43711_Double(offset_h,offset_l);
280
 //    printf("ret1 : %f \r\n",ret); // 2
281
 //    printf("ret1 : %f \r\n",ret); // 2
281
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
282
     ret = TableAtteGuarantee(Table,ret);//Table Guarantee
282
 //    printf("ret2 : %f \r\n",ret);
283
 //    printf("ret2 : %f \r\n",ret);
283
-    val = PE43711_DataToHexConvert(ret);
284
+     PE43711_DataToHexConvert(ret);
285
+    return 0;
284
 }
286
 }
285
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit){
287
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit){
286
-    uint16_t tmp_h = high_bit,tmp_l = low_bit;
288
+
287
     double ret = 0;
289
     double ret = 0;
288
-    uint8_t val = 0;
289
-    ret = PE43711_Double(high_bit,low_bit);
290
 
290
 
291
-    val = PE43711_DataToHexConvert(ret);
291
+    ret = PE43711_Double(high_bit,low_bit);
292
 
292
 
293
+    PE43711_DataToHexConvert(ret);
294
+    return 0;
293
 }
295
 }
294
 double PE43711_Double(uint8_t high_bit,uint8_t low_bit){
296
 double PE43711_Double(uint8_t high_bit,uint8_t low_bit){
295
     uint16_t tmp_h = 0,tmp_l = 0;
297
     uint16_t tmp_h = 0,tmp_l = 0;
296
     double ret = 0;
298
     double ret = 0;
297
-    uint8_t val = 0;
299
+
298
     tmp_h = high_bit;
300
     tmp_h = high_bit;
299
     tmp_l = low_bit;
301
     tmp_l = low_bit;
300
     ret = ((tmp_h << 8) & 0xFF00);
302
     ret = ((tmp_h << 8) & 0xFF00);
@@ -316,7 +318,7 @@ double PE43711_Double(uint8_t high_bit,uint8_t low_bit){
316
 uint8_t GuaranteeData[256];
318
 uint8_t GuaranteeData[256];
317
 double TableAtteGuarantee(uint8_t* Table,double AttenValue){
319
 double TableAtteGuarantee(uint8_t* Table,double AttenValue){
318
     double ret = 0;
320
     double ret = 0;
319
-    double ref = 0;
321
+    //double ref = 0;
320
     uint8_t cnt = 0;
322
     uint8_t cnt = 0;
321
     for(double ref = 0; ref < AttenValue; ref += 0.5){
323
     for(double ref = 0; ref < AttenValue; ref += 0.5){
322
         cnt++;       
324
         cnt++;       
@@ -666,6 +668,7 @@ void Bluecell_StructCopyFunction(uint16_t* dst,uint8_t* src,uint16_t size){
666
     dst[i]  += src[i * 2 + 1] & 0x00FF;
668
     dst[i]  += src[i * 2 + 1] & 0x00FF;
667
   }
669
   }
668
 }
670
 }
671
+
669
 void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint16_t size){
672
 void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint16_t size){
670
   for(int i = 0; i < size; i++){
673
   for(int i = 0; i < size; i++){
671
     dst[i]  = src[i];
674
     dst[i]  = src[i];
@@ -984,9 +987,9 @@ extern HAL_StatusTypeDef EEPROM_M24C08_Zerowrite(uint8_t devid,uint16_t Address)
984
 bool Bluecell_Operate(uint8_t* data){
987
 bool Bluecell_Operate(uint8_t* data){
985
   uint8_t datatype = data[BLUECELL_TYPE];
988
   uint8_t datatype = data[BLUECELL_TYPE];
986
 
989
 
987
-  uint16_t tmp_h = 0,tmp_l = 0;
988
-  double ret = 0 ,tmp = 0.1;
989
-  uint8_t val = 0;
990
+
991
+  //double ret = 0 ,tmp = 0.1;
992
+
990
   uint8_t i = 0;
993
   uint8_t i = 0;
991
   switch(datatype){
994
   switch(datatype){
992
     case BLUECELL_SOFTWARERESET:
995
     case BLUECELL_SOFTWARERESET:
@@ -1593,15 +1596,15 @@ bool MBIC_Operate(uint8_t* data){
1593
               |((data[MBIC_PROT_SUB_DATA_INDEX + 1] << 8) & 0x00FF) );
1596
               |((data[MBIC_PROT_SUB_DATA_INDEX + 1] << 8) & 0x00FF) );
1594
     uint8_t Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
1597
     uint8_t Length = (data[MBIC_PROT_SUB_DATA_INDEX + 2]);
1595
     uint8_t cmd = 0;
1598
     uint8_t cmd = 0;
1596
-    uint8_t SubData[256] = {0,};
1599
+
1597
     uint16_t Temp_ADC = 0;
1600
     uint16_t Temp_ADC = 0;
1598
     uint16_t i = 0;
1601
     uint16_t i = 0;
1599
     double temp = 0;
1602
     double temp = 0;
1600
     int16_t Level = 0;
1603
     int16_t Level = 0;
1601
     /*AID*/
1604
     /*AID*/
1602
-    for(int i = 0; i < Length; i++){
1605
+  /* for(int i = 0; i < Length; i++){
1603
         SubData[i] = (data[MBIC_PROT_SUB_DATA_INDEX + 3 + i]);
1606
         SubData[i] = (data[MBIC_PROT_SUB_DATA_INDEX + 3 + i]);
1604
-    }
1607
+    }*/
1605
     //    SubData     임시 데이터 변수 선언 Subdata로 데이터 전송 
1608
     //    SubData     임시 데이터 변수 선언 Subdata로 데이터 전송 
1606
     if(cmd == MBIC_GET){
1609
     if(cmd == MBIC_GET){
1607
         /*ALARM FLAG*/
1610
         /*ALARM FLAG*/
@@ -1660,7 +1663,7 @@ bool MBIC_Operate(uint8_t* data){
1660
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank1_Image_BuildTime6;
1663
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank1_Image_BuildTime6;
1661
 
1664
 
1662
         for(int a = 0; a < 32; a++){
1665
         for(int a = 0; a < 32; a++){
1663
-            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank1_Image_Name[i];        
1666
+            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank1_Image_Name[a];
1664
         }
1667
         }
1665
 
1668
 
1666
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_Version1;
1669
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_Version1;
@@ -1675,7 +1678,7 @@ bool MBIC_Operate(uint8_t* data){
1675
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_BuildTime6;
1678
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_BuildTime6;
1676
 
1679
 
1677
        for(int a = 0; a < 32; a++){
1680
        for(int a = 0; a < 32; a++){
1678
-            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_Name[i];        
1681
+            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.CPU_Bank2_Image_Name[a];
1679
        }
1682
        }
1680
 
1683
 
1681
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.S_W_Reset;
1684
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.S_W_Reset;
@@ -1694,7 +1697,7 @@ bool MBIC_Operate(uint8_t* data){
1694
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.PCB_Version[0];
1697
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.PCB_Version[0];
1695
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.PCB_Version[1];
1698
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.PCB_Version[1];
1696
         for(int a = 0; a < 20; a++){
1699
         for(int a = 0; a < 20; a++){
1697
-            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Serial_Number[i];
1700
+            data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Serial_Number[a];
1698
         }
1701
         }
1699
 
1702
 
1700
         
1703
         
@@ -2464,9 +2467,9 @@ uint16_t ADC1Ret[4];
2464
 uint16_t ADC3Ret[5];
2467
 uint16_t ADC3Ret[5];
2465
 
2468
 
2466
 void ADC_Check(void){
2469
 void ADC_Check(void){
2467
-    static uint8_t Cnt = 0;
2468
-    double Volt_Calc_val = 3.3 / 4095;
2469
-    double ret = 0;
2470
+    //static uint8_t Cnt = 0;
2471
+
2472
+   // double ret = 0;
2470
     uint16_t MIN_ADC[ADC3_CNT] = {0,};
2473
     uint16_t MIN_ADC[ADC3_CNT] = {0,};
2471
     uint16_t cnt[ADC3_CNT] = {0,};
2474
     uint16_t cnt[ADC3_CNT] = {0,};
2472
 //    if(AdcTimerCnt > 10){
2475
 //    if(AdcTimerCnt > 10){
@@ -2736,7 +2739,7 @@ int32_t MinusConvert(uint8_t Temp_h, int32_t Value){
2736
 void ALC_Function(){ //DL 
2739
 void ALC_Function(){ //DL 
2737
     double Volt_Calc_val = 3.3 / 4095;
2740
     double Volt_Calc_val = 3.3 / 4095;
2738
     double ret = 0;
2741
     double ret = 0;
2739
-    double CurrnALCValue = 0;
2742
+   // double CurrnALCValue = 0;
2740
     double CurrentATTENVALUE = 0;
2743
     double CurrentATTENVALUE = 0;
2741
     int32_t CurrnALC_MAX_SettingValue = 0;    
2744
     int32_t CurrnALC_MAX_SettingValue = 0;    
2742
     int32_t CurrnALC_MIN_SettingValue = 0;        
2745
     int32_t CurrnALC_MIN_SettingValue = 0;        

+ 6 - 3
Bluecell_Src/eeprom.c

@@ -4,6 +4,7 @@
4
  *  Created on: 2020. 4. 22.
4
  *  Created on: 2020. 4. 22.
5
  *      Author: parkyj
5
  *      Author: parkyj
6
  */
6
  */
7
+#include <stdio.h>
7
 #include "main.h"
8
 #include "main.h"
8
 #include "eeprom.h"
9
 #include "eeprom.h"
9
 #include "Bluecell_operate.h"
10
 #include "Bluecell_operate.h"
@@ -109,8 +110,9 @@ void eepromtest(){
109
 
110
 
110
 HAL_StatusTypeDef EEPROM_M24C08_Read(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size){
111
 HAL_StatusTypeDef EEPROM_M24C08_Read(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size){
111
    HAL_StatusTypeDef ret = HAL_ERROR;
112
    HAL_StatusTypeDef ret = HAL_ERROR;
112
-   uint16_t sizecnt = 0,sizeremain = 0; 
113
-   uint16_t addrees_inc = 0;
113
+ //  uint16_t sizecnt = 0,
114
+   //uint16_t sizeremain = 0;
115
+  // uint16_t addrees_inc = 0;
114
 //   ret = HAL_I2C_Mem_Read(&hi2c2, devid | ((Address & 0x0300) >> 7),((Address )),  I2C_MEMADD_SIZE_8BIT, &data[0], size, 1024);
116
 //   ret = HAL_I2C_Mem_Read(&hi2c2, devid | ((Address & 0x0300) >> 7),((Address )),  I2C_MEMADD_SIZE_8BIT, &data[0], size, 1024);
115
 
117
 
116
    ret = HAL_I2C_Mem_Read(&hi2c2, devid ,((Address )),  I2C_MEMADD_SIZE_16BIT, &data[0], size, 1024);
118
    ret = HAL_I2C_Mem_Read(&hi2c2, devid ,((Address )),  I2C_MEMADD_SIZE_16BIT, &data[0], size, 1024);
@@ -181,7 +183,7 @@ HAL_StatusTypeDef EEPROM_M24C08_write(uint8_t devid,uint16_t Address,uint8_t* da
181
 
183
 
182
 HAL_StatusTypeDef EEPROM_M24C08_Zerowrite(uint8_t devid,uint16_t Address){
184
 HAL_StatusTypeDef EEPROM_M24C08_Zerowrite(uint8_t devid,uint16_t Address){
183
     HAL_StatusTypeDef ret = HAL_ERROR;
185
     HAL_StatusTypeDef ret = HAL_ERROR;
184
-    uint8_t sizecnt = 0,sizeremain = 0; 
186
+   // uint8_t sizeremain = 0;
185
     uint16_t addrees_inc = 0;
187
     uint16_t addrees_inc = 0;
186
     addrees_inc = 0;
188
     addrees_inc = 0;
187
     uint8_t data[4096] = {0,};
189
     uint8_t data[4096] = {0,};
@@ -286,6 +288,7 @@ bool		EEPROM24XX_Save(uint16_t Address,void *data,size_t size_of_data)
286
 	else
288
 	else
287
 	{
289
 	{
288
 	}
290
 	}
291
+	return 0;
289
 }
292
 }
290
 //##########################################################################
293
 //##########################################################################
291
 bool		EEPROM24XX_Load(uint16_t Address,void *data,size_t size_of_data)
294
 bool		EEPROM24XX_Load(uint16_t Address,void *data,size_t size_of_data)

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 50 - 42
STM32F103ZET_JDASMBIC.elf.launch


+ 1 - 1
STM32F103ZET_JDASMBIC.ioc

@@ -489,7 +489,7 @@ SH.ADCx_IN6.0=ADC1_IN6,IN6
489
 SH.ADCx_IN6.ConfNb=1
489
 SH.ADCx_IN6.ConfNb=1
490
 TIM6.IPParameters=Prescaler,Period
490
 TIM6.IPParameters=Prescaler,Period
491
 TIM6.Period=10
491
 TIM6.Period=10
492
-TIM6.Prescaler=5600 - 1
492
+TIM6.Prescaler=7200 - 1
493
 USART1.BaudRate=921600
493
 USART1.BaudRate=921600
494
 USART1.IPParameters=VirtualMode,BaudRate
494
 USART1.IPParameters=VirtualMode,BaudRate
495
 USART1.VirtualMode=VM_ASYNC
495
 USART1.VirtualMode=VM_ASYNC

+ 1 - 1
STM32F103ZE_FLASH.ld

@@ -62,7 +62,7 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
62
 MEMORY
62
 MEMORY
63
 {
63
 {
64
 RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 64K
64
 RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 64K
65
-FLASH (rx)      : ORIGIN = 0x8004000, LENGTH = 512K - 16K
65
+FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 512K
66
 }
66
 }
67
 
67
 
68
 /* Define output sections */
68
 /* Define output sections */

+ 7 - 4
Src/main.c

@@ -118,7 +118,7 @@ uint16_t adc3cnt = 0 ;
118
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
118
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
119
 {
119
 {
120
 //?��?��?�� 코드 ?��?��
120
 //?��?��?�� 코드 ?��?��
121
-//만약 ?��?�� adc?���???????? �?????????��?�� ?�� ?��?���???????? ?��?���???????? ?��?��?? 같이 조건�???????? ?��?��
121
+//만약 ?��?�� adc?���???????????????????��?�� ?�� ?��?���????????? ?��?���????????? ?��?��?? 같이 조건�????????? ?��?��
122
 
122
 
123
     if(hadc->Instance == hadc1.Instance)
123
     if(hadc->Instance == hadc1.Instance)
124
     {
124
     {
@@ -274,7 +274,8 @@ void eepromtest_j1(){
274
 #endif // PYJ.2020.04.23_END -- 
274
 #endif // PYJ.2020.04.23_END -- 
275
 
275
 
276
 extern void ALC_Function();
276
 extern void ALC_Function();
277
-
277
+extern void Boot_LED_Toggle(void);
278
+extern void ADC_Check(void);
278
 /* USER CODE END 0 */
279
 /* USER CODE END 0 */
279
 
280
 
280
 /**
281
 /**
@@ -320,12 +321,12 @@ int main(void)
320
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
321
   while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
321
   HAL_ADC_Start_DMA(&hadc3, (uint16_t*)ADC3value, 5);
322
   HAL_ADC_Start_DMA(&hadc3, (uint16_t*)ADC3value, 5);
322
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
323
   HAL_ADC_Start_DMA(&hadc1, (uint16_t*)ADC1value, 4);
324
+  HAL_TIM_Base_Start_IT(&htim6);
323
   InitUartQueue(&TerminalQueue);
325
   InitUartQueue(&TerminalQueue);
324
   setbuf(stdout, NULL);
326
   setbuf(stdout, NULL);
325
   PE43711_PinInit();
327
   PE43711_PinInit();
326
   EEPROM_M24C08_Init();
328
   EEPROM_M24C08_Init();
327
   Bluecell_DataInit();
329
   Bluecell_DataInit();
328
-
329
 #if 0 // PYJ.2020.04.22_BEGIN -- 
330
 #if 0 // PYJ.2020.04.22_BEGIN -- 
330
   EEPROM_M24C08_write(0xA0,0,i2cTestData,1);
331
   EEPROM_M24C08_write(0xA0,0,i2cTestData,1);
331
   printf("i2c Test Data1 %d\r\n",i2ctest[0]);
332
   printf("i2c Test Data1 %d\r\n",i2ctest[0]);
@@ -353,6 +354,8 @@ int main(void)
353
   while (1)
354
   while (1)
354
   {
355
   {
355
 //	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
356
 //	  HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
357
+  //   printf("data %d\r\n",LedTimerCnt);
358
+
356
     Boot_LED_Toggle();
359
     Boot_LED_Toggle();
357
     Uart_Check();
360
     Uart_Check();
358
     ADC_Check();
361
     ADC_Check();
@@ -645,7 +648,7 @@ static void MX_TIM6_Init(void)
645
 
648
 
646
   /* USER CODE END TIM6_Init 1 */
649
   /* USER CODE END TIM6_Init 1 */
647
   htim6.Instance = TIM6;
650
   htim6.Instance = TIM6;
648
-  htim6.Init.Prescaler = 5600 - 1;
651
+  htim6.Init.Prescaler = 7200 - 1;
649
   htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
652
   htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
650
   htim6.Init.Period = 10;
653
   htim6.Init.Period = 10;
651
   htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
654
   htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;

+ 1 - 1
Src/system_stm32f1xx.c

@@ -92,7 +92,7 @@
92
 /*!< Uncomment the following line if you need to relocate your vector Table in
92
 /*!< Uncomment the following line if you need to relocate your vector Table in
93
      Internal SRAM. */ 
93
      Internal SRAM. */ 
94
 /* #define VECT_TAB_SRAM */
94
 /* #define VECT_TAB_SRAM */
95
-#define VECT_TAB_OFFSET  0x4000 /* Original Value : 0x00000000U*/ /*!< Vector Table base offset field.
95
+#define VECT_TAB_OFFSET  0x0000 /* Original Value : 0x00000000U*/ /*!< Vector Table base offset field.
96
                                   This value must be a multiple of 0x200. */
96
                                   This value must be a multiple of 0x200. */
97
 
97
 
98
 
98