Hanna
Sourcecode Batteriemanagementsystem |
Konstanten, Filter und Commands für den Temperatursensor MCP 9843. Mehr ...
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
#define | MCP9843_CONF_HYST_00_MSB_bm 0x00 |
bit 10-9 TUPPER and TLOWER Limit Hysteresis (THYST): 00 = 0°C (power-up default) | |
#define | MCP9843_CONF_HYST_15_MSB_bm 0x02 |
bit 10-9 01 = 1.5°C | |
#define | MCP9843_CONF_HYST_30_MSB_bm 0x04 |
bit 10-9 10 = 3.0°C | |
#define | MCP9843_CONF_HYST_60_MSB_bm 0x06 |
bit 10-9 11 = 6.0°C | |
TWI (I2C) Einstellungen | |
#define | TWI_BAUDRATE 100000 |
100 KHz Takt für I2C-Bus | |
#define | TWI_BAUDSETTING TWI_BAUD(F_CPU, TWI_BAUDRATE) |
#define | TWI_TEMPERATUR_MASTER_PORT PORTE |
#define | TWI_TEMPERATUR TWIE |
Adresseinstellungen MCP9834 | |
#define | MCP9843_BASE_ADDR 0x18 |
Basisadresse für I2C-Bus (7bit, ohne W/R) | |
#define | Temp_MP 0x00 |
#define | MCP9843_A0 1 |
Adresspin, MCP9843 ermöglicht 8 Adressen auf einem I2C-Bus. | |
#define | MCP9843_A1 2 |
Adresspin, MCP9843 ermöglicht 8 Adressen auf einem I2C-Bus. | |
#define | MCP9843_A2 3 |
Adresspin, MCP9843 ermöglicht 8 Adressen auf einem I2C-Bus. | |
EEPROM (wird derzeit nicht verwendet) | |
#define | EEPROM 0xA0 |
EEPROM wird nicht verwendet. | |
#define | EEPROM_1 ( EEPROM | (1<<MCP9843_A0) ) |
EEPROM wird nicht verwendet. | |
Commands | |
#define | SHDNStatus_bm 0x80 |
Command. | |
#define | tOUT_Range_bm 0x40 |
Command. | |
#define | VHV_bm 0x20 |
Command. | |
#define | Resolution_bm 0x18 |
Command. | |
#define | Range_bm 0x04 |
Command. | |
#define | Accuracy_bm 0x02 |
Command. | |
#define | Event_bm 0x01 |
Command. | |
Registeradressen | |
#define | MCP9843_CAP_REG 0x00 |
Registeradresse. | |
#define | MCP9843_CONFIG_REG 0x01 |
Registeradresse. | |
#define | MCP9843_TUPPER_REG 0x02 |
Registeradresse. | |
#define | MCP9843_TLOWER_REG 0x03 |
Registeradresse. | |
#define | MCP9843_TCRIT_REG 0x04 |
Registeradresse. | |
#define | MCP9843_TEMP_REG 0x05 |
Registeradresse. | |
#define | MCP9843_MANUFACTURER_ID_REG 0x06 |
Registeradresse. | |
#define | MCP9843_DEVICE_ID_REG 0x07 |
Registeradresse. | |
#define | MCP9843_RESOLUTION_REG 0x08 |
Registeradresse. | |
CONFIG Register | |
#define | MCP9843_CONF_INT_CLEAR_LSB_bm 0x16 |
Bit5 = 1 Clear interrupt output. Nach jedem Interrupt muss das Signal vom User gesetzt werden. | |
#define | MCP9843_CONF_INIT_ALL_LSB_bm 0x01 |
Bit0 = 1 Initialisierung: Keine Locks; Events für Tcrit, Tupper, Tlower; Event Active Low; Event Interrupt. | |
#define | MCP9843_CONF_INIT_TCRIT_LSB_bm 0x05 |
Bit0 und Bit 2 = 1 Initialisierung: Keine Locks; Events nur Tcrit; Event Active Low; Event Interrupt. | |
#define | MCP9843_CONF_RESET_EVENT_LSB_bm ( MCP9843_CONF_INT_CLEAR_LSB_bm | MCP9843_CONF_INIT_TCRIT_LSB_bm ) |
RESOLUTION Register | |
#define | MCP9843_RES_MED_bm 0x02 |
10 = LSB = 0.125 °C (tCONV = 130 ms typical) | |
#define | MCP9843_RES_HIGH_bm 0x03 |
11 = LSB = 0.0625°C (tCONV = 260 ms typical) | |
Testbetrieb | |
Temperaturgrenzen festlegen Rechenlogik (nur für positive Grenzwerte):
| |
#define | MCP9843_TCRIT_MSB 0x02 |
32°C | |
#define | MCP9843_TCRIT_LSB 0x00 |
32°C | |
#define | MCP9843_TUPPER_MSB 0x01 |
30°C | |
#define | MCP9843_TUPPER_LSB 0xE0 |
30°C | |
#define | MCP9843_TLOWER_MSB 0x00 |
0°C | |
#define | MCP9843_TLOWER_LSB 0x00 |
0°C | |
Umrechnungskonstante für die Temperatur | |
#define | MCP9843_BASE_VALUE 0.0625 |
The LSB value (bit 0) is 0.0625 °C. Temperature (°C) = Temperature_code * 0.0625. | |
Filter zur Auswertung (siehe Header-Kommentar) | |
#define | MCP9843_TEMPERATURE_FLT_bm 0x1FFF |
Temperatur ist ein 13bit-Wert,. | |
#define | MCP9843_TEMPERATURE_SGN_bm 0x1000 |
Bit 12 ist das Vorzeichenbit. | |
#define | MCP9843_TEMP_GT_TCRIT_bm 0x8000 |
Bit 15 zeigt, ob die Temperatur über der kritischen Temperatur liegt. | |
#define | MCP9843_TEMP_GT_TUPPER_bm 0x4000 |
Bit 14 zeigt, ob die Temperatur über der Obergrenze TUpper liegt. | |
#define | MCP9843_TEMP_LT_TLOWER_bm 0x2000 |
Bit 13 zeigt, ob die Temperatur unter der Untergrenze TLower liegt. | |
Funktionen | |
void | determineTemp (void) |
int | mcp9843_calculate_value (uint16_t bitcode) |
Messwert berechnen und Zweier-Komplement-Berechnung starten. Mehr ... | |
void | MCP9843_config (unsigned char Sensor_Nummer) |
Standardeinstellungen des Sensors einstellen. Mehr ... | |
void | mcp9843_get_data (void) |
Die Daten des Temperatursensors werden ausgelesen. Mehr ... | |
void | MCP9843_init () |
Einstellungen des µC für die Arbeit mit MCP9843. Mehr ... | |
int | mcp9843_temp (void) |
Variablen | |
uint8_t | sendRegData [] |
bool | tcrit_flag [] |
int | temp [] |
bool | tlower_flag [] |
bool | tupper_flag [] |
TWI_Master_t | twi_TEMP_RTC |
TWI (I2C) Mastervariable, steuert die Register und speichert Daten. | |
Konstanten, Filter und Commands für den Temperatursensor MCP 9843.
$Revision: 363 $ $Date: 2016-03-21 21:28:33 +0100 (Mon, 21 Mar 2016) $
Bitmuster für Filter in 16bit-Darstellung
Definiert in Datei temp_mcp9843.h.
int mcp9843_calculate_value | ( | uint16_t | bitcode | ) |
Messwert berechnen und Zweier-Komplement-Berechnung starten.
Zweier-Komplement
bitcode | Die 16bit-Zahl, die vom Sensor zurückgegeben wird |
bitcode_filter | Filter, mit dem die Zahl auf die relevante Länge gekürzt wird (z.B. 12bit gültige Stellen => 0x0FFF) |
signbit_filter | Filter, mit dem ermittelt wird, ob das Vorzeichenbit 1 (negativ) oder 0 (positiv) ist (z.B. 12bit gültige Stellen => 0x0800) |
Messwert berechnen
base_value |
Definiert in Zeile 154 der Datei temp_mcp9843.c.
void MCP9843_config | ( | unsigned char | Sensor_nummer | ) |
Standardeinstellungen des Sensors einstellen.
Sensor_nummer | Die Standardeinstellungen des Sensors werden hier konfiguriert:
|
Definiert in Zeile 64 der Datei temp_mcp9843.c.
void mcp9843_get_data | ( | void | ) |
Die Daten des Temperatursensors werden ausgelesen.
sensor_nr | Nummer des Sensors, der ausgelesen werden soll. |
Definiert in Zeile 185 der Datei temp_mcp9843.c.
void MCP9843_init | ( | ) |
Einstellungen des µC für die Arbeit mit MCP9843.
Einstellungen des µC für die Arbeit mit MCP9843.
Insbesondere Interrupts und Eingang für den Event Pin werden aktiviert.
Definiert in Zeile 100 der Datei temp_mcp9843.c.