Hanna
Sourcecode Batteriemanagementsystem
main.c
gehe zur Dokumentation dieser Datei
1 
14 #include <board_init.h>
15 #include <gfx.h>
16 
17 #include <stdio.h>
18 #include <string.h>
19 #include <stddef.h>
20 #include <stdlib.h>
21 #include <avr/io.h>
22 #include <avr/interrupt.h>
23 #include <avr/pgmspace.h>
24 
25 #include "usb_cdc.h"
26 #include "usb_stdio.h"
27 
28 /* Include symbols and bitmaps */
29 #include "lib_icons.h"
30 #include "sysfont.h"
31 #include "lib_gfx_bms.h"
32 
33 #include "SD-Card/sdcard_demo.h"
34 #include "SD-Card/sdcard_bms.h"
35 #include "config_clock.h"
37 #include "screens_gfx.h"
38 #include "Hardware/taster.h"
39 #include "Hardware/com74HC595.h"
40 #include "Hardware/temp_mcp9843.h"
41 #include "Hardware/ds1388_rtc.h"
42 #include "Hardware/ventilator.h"
43 #include "Hardware/bms_mosfet.h"
44 #include "Hardware/ad7997.h"
45 #include "BMS-Basic.h"
46 #include "display_ausgabe.h"
47 
53 uint8_t zeit_counter = 10;
54 
55 int main ( void )
56 {
57 
58  board_init ();
60 
61 // sdcard_bms_read_state();
62 // SOC[0]=100;
63 // SOC[1]=200;
64 // SOC[2]=300;
65 // SOC[3]=400;
66 // sdcard_bms_write_state();
67 // while(1);
68 
69 // main_usb();
70 // while(1);
71 
72  control_check ();
73 
74  while ( 1 )
75  {
76  if ( zeit_counter >= WARTEZEIT ) // Alle WARTEZEIT Sekunden wird das gesamte Programm durchlaufen.
77  {
78  if ( betriebsart == BETRIEB )
79  {
80  entlade_steuerung ();
81  }
82  else if ( betriebsart == LADEN )
83  lade_steuerung ();
84  else if ( betriebsart == LEERLAUF ) leerlauf_steuerung ();
85  zeit_counter = 0;
86  state_counter++;
87  }
88 
89  bildschirm_ausgabe (); // Bildschirmausgabe jede Sekunde.
90  zeit_counter++;
91 
92  _delay_ms ( 1000 ); // 1s Wartezeit.
93  }
94 
95 }
96 
97 //int main_usb ( void );
98 //int main_usb ( void )
99 //{
100 // // Terminal mit 6220800 Baud
101 // while ( 1 )
102 // {
103 //
104 // uint8_t ch;
105 // while ( true )
106 // {
107 //
108 // fscanf ( &usbin, "%c", &ch ); // get one input character
109 //
110 // if ( ch )
111 // {
112 // fprintf ( &usbout, "\x1B[2;1HTerminalverbindung - Testprogramm\n\r" );
113 // fprintf ( &usbout, "\x1B[34m===================================\x1B[0m\n\r" );
114 // fprintf ( &usbout, "Antwort von Xmega:\n\r" );
115 // fprintf ( &usbout, "%c\n\r", ch ); // echo to output
116 // printf ( "USB\r\n" );
117 // }
118 // ch = 0;
119 // }
120 //
121 // }
122 // return 0;
123 //}
Konstanten, Filter und Commands für den Temperatursensor MCP 9843.
Header, Definition der Konstanten und Commands für DS1388.
Standard board header file. Diese Datei enthält die Standardparameter und Pinbelegungen für das BMS B...
Standardheader.
Bibliothek zur USB-Kommunikation von Jürgen W.
Standardheader.
void bildschirm_ausgabe()
Belegung der Icon-Parameter für die Displayausgabe und Aufruf der verschiedenen Screens.
Graphical System Font system.
Standard Header Datei, Definition der Batteriekonstanten und Grenzwerte.
Standardheader und Auswahl der Übertragungsgeschwindigkeit.
Standardheader.
void board_init(void)
BMS Board Initialisierung.
Definition: board_init.c:46
Graphical library API header file.
Standardheader. Definition der Iconfarben.
Standardheader.
Definition der Schalterstellungen für die einzelnen MOSFETs.
Standardheader. Datenmanagement für BMS-Daten mit SD Card Reader.
void mosfet_safeschaltung(void)
Sicherheitsschaltung der BMS-Platine, alle Funktionen sind aus.
Definition: bms_mosfet.c:37
Standardheader.
Standardheader.
Standardheader und Positionen der Zeilen und Spalten auf den jeweiligen Screens.
uint8_t zeit_counter
Main.
Definition: main.c:53
Bibliothek zur USB-Kommunikation von Jürgen W.
Header für ADC AD7997, Definition der Register und Commands.