Changeset 26 for trunk/firmware/Debug125A/self_discharge_PP.c
- Timestamp:
- Sep 8, 2025, 6:57:30 PM (7 weeks ago)
- File:
-
- 1 edited
-
trunk/firmware/Debug125A/self_discharge_PP.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware/Debug125A/self_discharge_PP.c
r6 r26 1 # 1 "D:\\projekte\\ecs _smartSwitch\\trunk\\firmware\\Src\\self_discharge.c"1 # 1 "D:\\projekte\\ecsSmartPro\\trunk\\firmware\\Src\\self_discharge.c" 2 2 # 1 "<built-in>" 1 3 3 # 1 "<built-in>" 3 … … 5 5 # 1 "<command line>" 1 6 6 # 1 "<built-in>" 2 7 # 1 "D:\\projekte\\ecs_smartSwitch\\trunk\\firmware\\Src\\self_discharge.c" 2 8 9 # 1 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 1 10 # 15 "D:/projekte/ecs_smartSwitch/trunk/firmware/Inc\\sysdata.h" 11 # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 1 3 12 # 20 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3 7 # 1 "D:\\projekte\\ecsSmartPro\\trunk\\firmware\\Src\\self_discharge.c" 2 8 # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 1 3 9 # 20 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 13 10 # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 1 3 14 11 # 17 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\__SEGGER_RTL.h" 3 … … 666 663 int __SEGGER_RTL_mb_cur_max (void); 667 664 void __SEGGER_RTL_init_heap (void *__ptr, unsigned int __size); 668 # 21 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 2 3 665 # 21 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 2 3 666 # 72 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 667 typedef unsigned int size_t; 668 669 670 671 672 typedef long fpos_t; 673 674 675 676 677 typedef struct __SEGGER_RTL_FILE_impl FILE; 678 679 680 681 682 typedef struct __SEGGER_RTL_POSIX_locale_s *locale_t; 683 # 97 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 684 extern FILE *stdin; 685 extern FILE *stdout; 686 extern FILE *stderr; 687 # 108 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdio.h" 3 688 int putchar (int __c); 689 int getchar (void); 690 int puts (const char *__s); 691 char * gets (char *__s); 692 int sprintf (char *__s, const char *__format, ...); 693 int sprintf_l (char *__s, locale_t __loc, const char *__format, ...); 694 int snprintf (char *__s, size_t __n, const char *__format, ...); 695 int snprintf_l (char *__s, size_t __n, locale_t __loc, const char *__format, ...); 696 int vsnprintf (char *__s, size_t __n, const char *__format, __builtin_va_list __arg); 697 int vsnprintf_l (char *__s, size_t __n, locale_t __loc, const char *__format, __builtin_va_list __arg); 698 int printf (const char *__format, ...); 699 int printf_l (locale_t __loc, const char *__format, ...); 700 int vprintf (const char *__format, __builtin_va_list __arg); 701 int vprintf_l (locale_t __loc, const char *__format, __builtin_va_list __arg); 702 int vsprintf (char *__s, const char *__format, __builtin_va_list __arg); 703 int vsprintf_l (char *__s, locale_t __loc, const char *__format, __builtin_va_list __arg); 704 int vasprintf (char **__strp, const char *__format, __builtin_va_list __ap); 705 int vasprintf_l (char **__strp, locale_t __loc, const char *__format, __builtin_va_list __ap); 706 int asprintf (char **__strp, const char *__format, ...); 707 int asprintf_l (char **__strp, locale_t __loc, const char *__format, ...); 708 709 int scanf (const char *__format, ...); 710 int scanf_l (locale_t __loc, const char *__format, ...); 711 int sscanf (const char *__s, const char *__format, ...); 712 int sscanf_l (const char *__s, locale_t __loc, const char *__format, ...); 713 int vscanf (const char *__format, __builtin_va_list __arg); 714 int vscanf_l (locale_t __loc, const char *__format, __builtin_va_list __arg); 715 int vsscanf (const char *__s, const char *__format, __builtin_va_list __arg); 716 int vsscanf_l (const char *__s, locale_t __loc, const char *__format, __builtin_va_list __arg); 717 718 void clearerr (FILE *); 719 int fclose (FILE *); 720 int feof (FILE *); 721 int ferror (FILE *); 722 int fflush (FILE *); 723 int fgetc (FILE *); 724 int fgetpos (FILE *, fpos_t *); 725 char * fgets (char *, int, FILE *); 726 int fileno (FILE *); 727 FILE * fopen (const char *, const char *); 728 int fprintf (FILE *, const char *, ...); 729 int fprintf_l (FILE *, locale_t, const char *, ...); 730 int vfprintf (FILE *__stream, const char *__format, __builtin_va_list __arg); 731 int vfprintf_l (FILE *__stream, locale_t loc, const char *__format, __builtin_va_list __arg); 732 int fputc (int, FILE *); 733 int fputs (const char *, FILE *); 734 size_t fread (void *, size_t, size_t, FILE *); 735 FILE * freopen (const char *, const char *, FILE *); 736 int fscanf (FILE *, const char *, ...); 737 int fscanf_l (FILE *, locale_t, const char *, ...); 738 int vfscanf (FILE *, const char *, __builtin_va_list); 739 int vfscanf_l (FILE *, locale_t, const char *, __builtin_va_list); 740 int fseek (FILE *, long, int); 741 int fsetpos (FILE *, const fpos_t *); 742 long ftell (FILE *); 743 size_t fwrite (const void *, size_t, size_t, FILE *); 744 int getc (FILE *); 745 void perror (const char *); 746 int putc (int, FILE *); 747 int remove (const char *); 748 int rename (const char *, const char *); 749 void rewind (FILE *); 750 void setbuf (FILE *, char *); 751 int setvbuf (FILE *, char *, int, size_t); 752 FILE * tmpfile (void); 753 char * tmpnam (char *); 754 int ungetc (int, FILE *); 755 756 757 758 759 760 int dprintf (int, const char *, ...); 761 int vdprintf (int, const char *, __builtin_va_list); 762 FILE * fdopen (int, const char *); 763 # 2 "D:\\projekte\\ecsSmartPro\\trunk\\firmware\\Src\\self_discharge.c" 2 764 # 1 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\sysdata.h" 1 765 # 15 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\sysdata.h" 766 # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 1 3 669 767 # 272 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\stdint.h" 3 670 768 typedef signed char int8_t; … … 700 798 typedef long long int intmax_t; 701 799 typedef long long unsigned int uintmax_t; 702 # 16 "D:/projekte/ecs _smartSwitch/trunk/firmware/Inc\\sysdata.h" 2703 # 25 "D:/projekte/ecs _smartSwitch/trunk/firmware/Inc\\sysdata.h"800 # 16 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\sysdata.h" 2 801 # 25 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\sysdata.h" 704 802 typedef union 705 803 { … … 918 1016 919 1017 void SYS_DATA_Init(void); 920 # 3 "D:\\projekte\\ecs _smartSwitch\\trunk\\firmware\\Src\\self_discharge.c" 2921 # 1 "D:/projekte/ecs _smartSwitch/trunk/firmware/Inc\\self_discharge.h" 11018 # 3 "D:\\projekte\\ecsSmartPro\\trunk\\firmware\\Src\\self_discharge.c" 2 1019 # 1 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\self_discharge.h" 1 922 1020 # 1 "C:/Program Files/SEGGER/SEGGER Embedded Studio 8.22a/include\\inttypes.h" 1 3 923 # 2 "D:/projekte/ecs _smartSwitch/trunk/firmware/Inc\\self_discharge.h" 21021 # 2 "D:/projekte/ecsSmartPro/trunk/firmware/Inc\\self_discharge.h" 2 924 1022 925 1023 int16_t SELF_DISCHARGE_Exec(void); 926 # 4 "D:\\projekte\\ecs _smartSwitch\\trunk\\firmware\\Src\\self_discharge.c" 21024 # 4 "D:\\projekte\\ecsSmartPro\\trunk\\firmware\\Src\\self_discharge.c" 2 927 1025 928 1026 … … 933 1031 934 1032 const double batt_float_voltage_tol = 0.03; 935 const doublebatt_voltage_holding_tol = 10;1033 const int32_t batt_voltage_holding_tol = 10; 936 1034 int32_t max_u = sys_data.s.parameter.uBatFull * ( 1 + batt_float_voltage_tol); 937 1035 int32_t min_u = sys_data.s.parameter.uBatFull * ( 1 - batt_float_voltage_tol); … … 971 1069 u_hold = 0; 972 1070 holding_counter = 0; 1071 973 1072 return -2; 974 1073 } … … 979 1078 u_hold = 0; 980 1079 holding_counter = 0; 1080 981 1081 return -2; 982 1082 } 983 1083 1084 1085 if (sys_data.s.values.batteryCurrent < sys_data.s.parameter.extraDischargeStrom_mA) 1086 { 1087 1088 u_hold = 0; 1089 holding_counter = 0; 1090 1091 return -3; 1092 } 1093 984 1094 holding_counter++; 985 if (holding_counter > ( 3 * 3600 ))1095 if (holding_counter > (10800 )) 986 1096 { 987 sys_data.s.values.selfDischarge = sys_data.s.values.batteryCurrent ;1097 sys_data.s.values.selfDischarge = sys_data.s.values.batteryCurrent - sys_data.s.parameter.extraDischargeStrom_mA; 988 1098 } 989 1099 990 1100 991 1101 992 993 static uint32_t last_days; 994 static unsigned long avgsum = 0; 995 996 997 uint32_t days = sys_data.s.values.onTime / (24U * 3600U); 998 999 1000 if (days != last_days) 1102 if (sys_data.s.values.selfDischarge > 0) 1001 1103 { 1002 last_days = days; 1003 1004 uint32_t avgval; 1005 1006 avgsum -= avgsum/64; 1007 avgsum += sys_data.s.values.selfDischarge; 1008 avgval = avgsum / 64; 1009 1010 sys_data.s.values.selfDischargeAvg = avgval; 1104 1105 1106 static uint32_t last_days; 1107 static unsigned long avgsum = 0; 1108 1109 1110 uint32_t days = sys_data.s.values.onTime / (24U * 3600U); 1111 1112 1113 if (days != last_days) 1114 { 1115 last_days = days; 1116 1117 uint32_t avgval; 1118 1119 avgsum -= avgsum/64; 1120 avgsum += sys_data.s.values.selfDischarge; 1121 avgval = avgsum / 64; 1122 1123 sys_data.s.values.selfDischargeAvg = avgval; 1124 } 1125 1011 1126 } 1012 1127 1013 1128 1014 1129 1015 1016 1017 1130 return 0; 1018 1131
Note: See TracChangeset
for help on using the changeset viewer.
