LTC具温度电压和电流测量功能的多节电池电量测量芯片
《LTC具温度电压和电流测量功能的多节电池电量测量芯片》由会员分享,可在线阅读,更多相关《LTC具温度电压和电流测量功能的多节电池电量测量芯片(32页珍藏版)》请在装配图网上搜索。
1、LTC2943-具温度、电压和电流测量功能的多节电池电量测量芯片特点可测量累积的电池充电和放电电量3.6V至20V工作范围可适合多种电池应用14位ADC负责测量电池电压、电流和温度1%电压、电流和充电准确度50mV检测电压范围高压侧检测适合任何电池化学组成和容量的通用测量I2C/SMBus接口可配置警报输出/充电完成输入静态电流小于120卩A小外形8引脚3mmx3mmDFN圭寸装典型应用描述LTC?2943可测量便携式产品应用中的电池充电状态、电池电压、电池电流及其自身温度。其具有宽输入电压范围,因而可与高达20V的多节电池配合使用。一个精准的库仑计量器负责对流经位于电池正端子和负载或充电器之
2、间的一个检测电阻器电流进行积分运算。电池电压、电流和温度利用一个内部14位无延迟增量累加(NoLatency史)ADC来测量。测量结果被存储于可通过内置I2C/SMBus接口进行存取的内部寄存器中。LTC2943具有针对所有4种测量物理量的可编程高门限和低门限。如果超过了某个编程门限,则该器件将采用SMBus警报协议或通过在内部状态寄存器中设定一个标记来传送警报信号。LTC2943仅需采用单个低阻值检测电阻器以设定测量电流范围。应用电动工具电动自行车便携式医疗设备视频摄像机程序:#include#include#includeLinduino.h#includeLT_I2C.h#include
3、UserInterface.h#includeQuikEval_EEPROM.h#includeLTC2943.h#include/FunctionDeclarationvoidprint_title();/Printthetitleblockvoidprint_prompt();/PrintthePromptvoidstore_alert_settings();/StorethealertsettingstotheEEPROMint8_trestore_alert_settings();/ReadthealertsettingsfromEEPROM#defineAUTOMATIC_MODE_
4、DISPLAY_DELAY1000/!Thedelaybetweenreadingsinautomaticmode#defineSCAN_MODE_DISPLAY_DELAY10000/!Thedelaybetweenreadingsinscanmodeconstfloatresistor=.100;/!resistorvalueondemoboard/Errorstringconstcharack_error=Error:NoAcknowledge.CheckI2CAddress.;/!Errormessage/Globalvariablesstaticint8_tdemo_board_co
5、nnected;/!Setto1iftheboardisconnectedstaticuint8_talert_code=0;/!ValuestoredorreadfromALERTregister.Sharedbetweenloop()andrestore_alert_settings()/!InitializeLinduinovoidsetup()chardemo_name=DC1812;/!DemoBoardNamestoredinQuikEvalEEPROMquikeval_I2C_init();/!ConfiguretheEEPROMI2Cportfor100kHzquikeval_
6、I2C_connect();/!ConnectstomainI2CportSerial.begin(115200);/!InitializetheserialporttothePCprint_title();demo_board_connected=discover_demo_board(demo_name);if(demo_board_connected)print_prompt();elsedemo_board_connected=true;Serial.println(DidnotreadIDString,attemptingtoproceedanyway.nPleaseensureI2
7、ClinesofLinduinoareconnectedtotheLTCdevice);/!RepeatsLinduinoloopvoidloop()int8_tack=0;indicator/!I2Cacknowledgestaticuint8_tuser_command;command/!Theuserinputstaticuint8_tmAh_or_Coulombs=0;staticuint8_tcelcius_or_kelvin=0;staticuint16_tprescalar_mode=LTC2943_PRESCALAR_M_4096;staticuint16_tprescalar
8、Value=4096;staticuint16_talcc_mode=LTC2943_ALERT_MODE;if(demo_board_connected)thedemoboardisnotconnected/!Donothingifif(Serial.available()serialisnotavailable/!Donothingifuser_command=read_int();command/!Readuserinputif(user_command!=m)Serial.println(user_command);Serial.println();ack=0;switch(user_
9、command)appropriatesubmenu/!Printsthecase1:ack|=menu_1_automatic_mode(mAh_or_Coulombs,celcius_or_kelvin,prescalar_mode,prescalarValue,alcc_mode);/!AutomaticModebreak;case2:ack|=menu_2_scan_mode(mAh_or_Coulombs,celcius_or_kelvin,prescalar_mode,prescalarValue,alcc_mode);/!ScanModebreak;case3:ack|=menu
10、_3_manual_mode(mAh_or_Coulombs,celcius_or_kelvin,prescalar_mode,prescalarValue,alcc_mode);/!ManualModebreak;case4:ack|=menu_4_sleep_mode(mAh_or_Coulombs,prescalar_mode,prescalarValue,alcc_mode);/!SleepModebreak;case5:ack|=menu_5_shutdown_mode();/!ShutdownModebreak;case6:ack|=menu_6_settings(&mAh_or_
11、Coulombs,&celcius_or_kelvin,&prescalar_mode,&prescalarValue,&alcc_mode);/!SettingsModebreak;if(ack!=0)/!Ifackisnotrecievedprintanerror.Serial.println(ack_error);Serial.print(F(*print_prompt();/FunctionDefinitions/!Printthetitleblockvoidprint_title()Serial.println(F(n*);Serial.print(F(*DC1812ADemonst
12、rationProgram*n);Serial.print(F(*n);Serial.print(F(*ThisprogramcommunicateswiththeLTC2943MulticellCoulomb*n);Serial.print(F(*CounterfoundontheDC1812Ademoboard.*n);Serial.print(F(*Setthebaudrateto115200andselectthenewlineterminator.*n);Serial.print(F(*n);Serial.print(F(*rH/!PrintthePromptvoidprint_pr
13、ompt()Serial.print(F(n1-AutomaticModen);Serial.print(F(2-ScanModen);Serial.print(F(3-ManualModen);Serial.print(F(4-SleepModen);Serial.print(F(5-ShutdownModen);Serial.print(F(6-Settingsn);Serial.print(F(Enteracommand:);/!AutomaticMode.int8_tmenu_1_automatic_mode(int8_tmAh_or_Coulombs,int8_tcelcius_or
14、_kelvin,uint16_tprescalar_mode,uint16_tprescalarValue,uint16_talcc_mode)/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowledge.int8_tLTC2943_mode;int8_tack=0;LTC2943_mode=LTC2943_AUTOMATIC_MODE|prescalar_mode|alcc_mode;/!SetthecontrolregisteroftheLTC2943toaut
15、omaticmodeaswellassetprescalarandAL#/CC#pinvalues.Serial.println();ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_mode);/!WritesthesetmodetotheLTC2943controlregisterdoSerial.print(F(*nn);uint8_tstatus_code,hightemp_code,lowtemp_code;uint16_tcharge_code,current_code,voltage_code,t
16、emperature_code;ack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_MSB_REG,&charge_code);/!ReadMSBandLSBAccumulatedChargeRegistersfor16bitchargecodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_VOLTAGE_MSB_REG,&voltage_code);/!ReadMSBandLSBVoltageRegistersfor16bitvoltagecodea
17、ck|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_CURRENT_MSB_REG,¤t_code);/!ReadMSBandLSBCurrentRegistersfor16bitcurrentcodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_TEMPERATURE_MSB_REG,&temperature_code);/!ReadMSBandLSBTemperatureRegistersfor16bittemperaturecodeack|=LTC2943_re
18、ad(LTC2943_I2C_ADDRESS,LTC2943_STATUS_REG,&status_code);/!ReadStatusRegisterfor8bitstatuscodefloatcharge,current,voltage,temperature;if(mAh_or_Coulombs)charge=LTC2943_code_to_coulombs(charge_code,resistor,prescalarValue);/!ConvertchargecodetoCoulombsifCoulombunitsaredesired.Serial.print(Coulombs:);S
19、erial.print(charge,4);Serial.print(F(Cn);elsecharge=LTC2943_code_to_mAh(charge_code,resistor,prescalarValue);/!ConvertchargecodetomAhifmAhunitsaredesired.Serial.print(mAh:);Serial.print(charge,4);Serial.print(F(mAhn);current=LTC2943_code_to_current(current_code,resistor);/!ConvertcurrentcodetoAmpere
20、svoltage=LTC2943_code_to_voltage(voltage_code);/!ConvertvoltagecodetoVoltsSerial.print(F(Current);Serial.print(current,4);Serial.print(F(An);Serial.print(F(Voltage);Serial.print(voltage,4);Serial.print(F(Vn);if(celcius_or_kelvin)temperature=LTC2943_code_to_kelvin_temperature(temperature_code);/!Conv
21、erttemperaturecodetokelvinSerial.print(F(Temperature);Serial.print(temperature,4);Serial.print(F(Kn);elsetemperature=LTC2943_code_to_celcius_temperature(temperature_code);/!ConverttemperaturecodetocelciusSerial.print(F(Temperature);Serial.print(temperature,4);Serial.print(F(Cn);checkAlerts(status_co
22、de);/!CheckstatuscodeforAlerts.IfanAlerthasbeenset,printoutappropriatemessageintheSerialPrompt.Serial.print(F(m-MainMenunn);Serial.flush();delay(AUTOMATIC_MODE_DISPLAY_DELAY);/!Delayfor1sbeforenextpollingwhile(Serial.available()=false|(ack);/!ifSerialisnotavailableandanNACKhasnotbeenrecieved,keeppol
23、lingtheregisters.read_int();/clearstheSerial.availablereturn(ack);/!ScanModeint8_tmenu_2_scan_mode(int8_tmAh_or_Coulombs,int8_tcelcius_or_kelvin,uint16_tprescalar_mode,uint16_tprescalarValue,uint16_talcc_mode)/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowl
24、edgeint8_tLTC2943_mode;int8_tack=0;LTC2943_mode=LTC2943_SCAN_MODE|prescalar_mode|alcc_mode;/!SetthecontrolmodeoftheLTC2943toscanmodeaswellassetprescalarandAL#/CC#pinvalues.Serial.println();ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_mode);/!WritesthesetmodetotheLTC2943controlr
25、egisterdoSerial.print(F(*nn);uint8_tstatus_code;uint16_tcharge_code,current_code,voltage_code,temperature_code;ack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_MSB_REG,&charge_code);/!ReadMSBandLSBAccumulatedChargeRegistersfor16bitchargecodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADD
26、RESS,LTC2943_VOLTAGE_MSB_REG,&voltage_code);/!ReadMSBandLSBVoltageRegistersfor16bitvoltagecodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_CURRENT_MSB_REG,¤t_code);/!ReadMSBandLSBCurrentRegistersfor16bitcurrentcodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_TEMPERATURE_MSB_R
27、EG,&temperature_code);/!ReadMSBandLSBTemperatureRegistersfor16bittemperaturecodeack|=LTC2943_read(LTC2943_I2C_ADDRESS,LTC2943_STATUS_REG,&status_code);/!ReadStatusRegistersfor8bitstatuscodefloatcharge,current,voltage,temperature;if(mAh_or_Coulombs)charge=LTC2943_code_to_coulombs(charge_code,resistor
28、,prescalarValue);/!ConvertchargecodetoCoulombsifCoulombunitsaredesired.Serial.print(Coulombs:);Serial.print(charge,4);Serial.print(F(Cn);elsecharge=LTC2943_code_to_mAh(charge_code,resistor,prescalarValue);/!ConvertchargecodetomAhifmAhunitsaredesired.Serial.print(mAh:);Serial.print(charge,4);Serial.p
29、rint(F(mAhn);current=LTC2943_code_to_current(current_code,resistor);/!ConvertcurrentcodetoAmperesvoltage=LTC2943_code_to_voltage(voltage_code);/!ConvertvoltagecodetoVoltsSerial.print(F(Current);Serial.print(current,4);Serial.print(F(An);Serial.print(F(Voltage);Serial.print(voltage,4);Serial.print(F(
30、Vn);if(celcius_or_kelvin)temperature=LTC2943_code_to_kelvin_temperature(temperature_code);/!ConverttemperaturecodetoKelvinifKelvinunitsaredesired.Serial.print(F(Temperature);Serial.print(temperature,4);Serial.print(F(Kn);elsetemperature=LTC2943_code_to_celcius_temperature(temperature_code);/!Convert
31、temperaturecodetoCelciusifCelciusunitsaredesired.Serial.print(F(Temperature);Serial.print(temperature,4);Serial.print(F(Cn);checkAlerts(status_code);/!CheckstatuscodeforAlerts.IfanAlerthasbeenset,printoutappropriatemessageintheSerialPromptSerial.print(F(m-MainMenunn);Serial.flush();delay(SCAN_MODE_D
32、ISPLAY_DELAY);while(Serial.available()=false|(ack);read_int();/clearstheSerial.availablereturn(ack);/!ManualModeint8_tmenu_3_manual_mode(int8_tmAh_or_Coulombs,int8_tcelcius_or_kelvin,uint16_tprescalar_mode,uint16_tprescalarValue,uint16_talcc_mode)/!returnReturnsthestateoftheacknowledgebitaftertheI2C
33、addresswrite.0=acknowledge,1=noacknowledgeint8_tLTC2943_mode;int8_tack=0;LTC2943_mode=LTC2943_MANUAL_MODE|prescalar_mode|alcc_mode;/!SetthecontrolmodeoftheLTC2943tomanualmodeaswellassetprescalarandAL#/CC#pinvalues.Serial.println();ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_mo
34、de);/!WritesthesetmodetotheLTC2943controlregisterintstaleData=0;/!StaleDataCheckvariable.Whensetto1itindicatesthatstaledataisbeingreadfromthevoltage,currentandtemperatureregisters.doSerial.print(F(*nn);uint8_tstatus_code;uint16_tcharge_code,current_code,voltage_code,temperature_code;ack|=LTC2943_rea
35、d_16_bits(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_MSB_REG,&charge_code);/!ReadMSBandLSBAccumulatedChargeRegistersfor16bitchargecodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_VOLTAGE_MSB_REG,&voltage_code);/!ReadMSBandLSBVoltageRegistersfor16bitvoltagecodeack|=LTC2943_read_16_bits(LTC2943
36、_I2C_ADDRESS,LTC2943_CURRENT_MSB_REG,¤t_code);/!ReadMSBandLSBCurrentRegistersfor16bitcurrentcodeack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_TEMPERATURE_MSB_REG,&temperature_code);/!ReadMSBandLSBTemperatureRegistersfor16bittemperaturecodeack|=LTC2943_read(LTC2943_I2C_ADDRESS,LTC2943_S
37、TATUS_REG,&status_code);/!ReadStatusRegistersfor8bitstatuscodefloatcharge,current,voltage,temperature;if(mAh_or_Coulombs)charge=LTC2943_code_to_coulombs(charge_code,resistor,prescalarValue);/!ConvertchargecodetoCoulombsifCoulombunitsaredesired.Serial.print(Coulombs:);Serial.print(charge,4);Serial.pr
38、int(F(Cn);elsecharge=LTC2943_code_to_mAh(charge_code,resistor,prescalarValue);/!ConvertchargecodetomAhifmAhunitsaredesired.Serial.print(mAh:);Serial.print(charge,4);Serial.print(F(mAhn);current=LTC2943_code_to_current(current_code,resistor);/!ConvertcurrentcodetoAmperesvoltage=LTC2943_code_to_voltag
39、e(voltage_code);/!ConvertvoltagecodetoVoltsSerial.print(F(Current);Serial.print(current,4);Serial.print(F(A);if(staleData)Serial.print(F(*StaleData*n);/!IfStaledataisinsidetheregisterafterinitialsnapshot,PrintStaleDatamessage.elseSerial.println();Serial.print(F(Voltage);Serial.print(voltage,4);Seria
40、l.print(F(V);if(staleData)Serial.print(F(*StaleData*n);/!IfStaledataisinsidetheregisterafterinitialsnapshot,PrintStaleDatamessage.elseSerial.println();if(celcius_or_kelvin)temperature=LTC2943_code_to_kelvin_temperature(temperature_code);/!ConverttemperaturecodetoKelvinifKelvinunitsaredesired.Serial.
41、print(F(Temperature);Serial.print(temperature,4);elsetemperature=LTC2943_code_to_celcius_temperature(temperature_code);/!ConverttemperaturecodetoCelciusifCelciusunitsaredesired.Serial.print(F(Temperature);Serial.print(temperature,4);Serial.print(F(C);if(staleData)Serial.print(F(*StaleData*n);elseSer
42、ial.println();checkAlerts(status_code);/!CheckstatuscodeforAlerts.IfanAlerthasbeenset,printoutappropriatemessageintheSerialPromptSerial.print(F(m-MainMenunn);staleData=1;Serial.flush();delay(AUTOMATIC_MODE_DISPLAY_DELAY);while(Serial.available()=false|(ack);read_int();/clearstheSerial.availableretur
43、n(ack);/!SleepModeint8_tmenu_4_sleep_mode(int8_tmAh_or_Coulombs,uint16_tprescalar_mode,uint16_tprescalarValue,uint16_talcc_mode)/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowledgeint8_tLTC2943_mode;int8_tack=0;LTC2943_mode=LTC2943_SLEEP_MODE|prescalar_mode
44、|alcc_mode;/!SetthecontrolmodeoftheLTC2943tosleepmodeaswellassetprescalarandAL#/CC#pinvalues.Serial.println();ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_mode);/!WritesthesetmodetotheLTC2943controlregisterdoSerial.print(F(*nn);delay(100);uint8_tstatus_code;uint16_tcharge_code;
45、ack|=LTC2943_read_16_bits(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_MSB_REG,&charge_code);/!ReadMSBandLSBAccumulatedChargeRegistersfor16bitchargecodeack|=LTC2943_read(LTC2943_I2C_ADDRESS,LTC2943_STATUS_REG,&status_code);/!ReadStatusRegistersfor8bitstatuscodefloatcharge;if(mAh_or_Coulombs)charge=LTC29
46、43_code_to_coulombs(charge_code,resistor,prescalarValue);/!ConvertchargecodetoCoulombsifCoulombunitsaredesired.Serial.print(charge,4);Serial.print(F(Cn);elsecharge=LTC2943_code_to_mAh(charge_code,resistor,prescalarValue);/!ConvertchargecodetomAhifmAhunitsaredesired.Serial.print(mAh:);Serial.print(ch
47、arge,4);Serial.print(F(mAhn);Serial.print(F(Current);Serial.print(F(ADCSleep.n);Serial.print(F(Voltage);Serial.print(F(ADCSleep.n);Serial.print(F(Temperature);Serial.print(F(ADCSleep.n);Serial.print(F(m-MainMenunn);checkAlerts(status_code);Serial.flush();delay(AUTOMATIC_MODE_DISPLAY_DELAY);while(Ser
48、ial.available()=false|(ack);read_int();/clearstheSerial.availablereturn(ack);/!ShutdownModeint8_tmenu_5_shutdown_mode()/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowledgeint8_tack=0;ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_SHUTDOW
49、N_MODE);/!SetstheLTC2943intoshutdownmodeSerial.print(LTC2943HasBeenShutDownn);return(ack);/!SettingsMenuint8_tmenu_6_settings(uint8_t*mAh_or_Coulombs,uint8_t*celcius_or_kelvin,uint16_t*prescalar_mode,uint16_t*prescalarValue,uint16_t*alcc_mode)/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddr
50、esswrite.0=acknowledge,1=noacknowledgeint8_tack=0;int8_tuser_command;doSerial.print(F(*nn);Serial.print(F(1-SetAlertThresholdsn);Serial.print(F(2-SetPrescalarValuen);Serial.print(F(3-SetAL#/CC#PinStaten);Serial.print(F(4-SetUnitsn);Serial.print(F(m-MainMenunn);Serial.print(F(Enteracommand:);user_com
51、mand=read_int();if(user_command=m)Serial.println(m);elseSerial.println(user_command);Serial.println();switch(user_command)case1:ack|=menu_6_settings_menu_1_set_alert_thresholds();/!SettingsMenutosetAlertThresholdsbreak;case2:ack|=menu_6_settings_menu_2_set_prescalar_values(prescalar_mode,prescalarVa
52、lue);/!SettingsMenutosetPrescalarValuesbreak;case3:ack|=menu_6_alert_menu_3_set_allcc_state(alcc_mode);/!SettingsMenutosetAL#/CC#modebreak;case4:ack|=menu_6_alert_menu_4_set_units(mAh_or_Coulombs,celcius_or_kelvin);/!SettingsMenutosetTemperatureandChargeUnitsbreak;default:if(user_command!=m)Serial.p
53、rintln(IncorrectOption);break;while(!(user_command=m)|(ack);return(ack);/!AlertThresholdMenuint8_tmenu_6_settings_menu_1_set_alert_thresholds()/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowledgeint8_tack=0;int8_tuser_command;doSerial.print(F(*nn);Serial.pr
54、int(F(1-SetChargeThresholdsn);Serial.print(F(2-SetVoltageThresholdsn);Serial.print(F(3-SetCurrentThresholdsn);Serial.print(F(4-SetTemperatureThresholdsn);Serial.print(F(m-MainMenunn);Serial.print(F(Enteracommand:);user_command=read_int();if(user_command=m)Serial.println(m);elseSerial.println(user_co
55、mmand);Serial.println();switch(user_command)case1:ack|=menu_6_alert_menu_1_set_charge_thresholds();/!SetMaxandMinChargeThresholds.TheACRchargelsbsizechangeswithrespecttotheprescalarandsenseresistorvalue.Duetothisvariability,forthepurposeofthisdemoentervaluesinhexadecimal.break;case2:ack|=menu_6_aler
56、t_menu_2_set_voltage_thresholds();/!SetMaxandMinVoltageThresholds.EnterValuesinVoltsbreak;case3:ack|=menu_6_alert_menu_3_set_current_thresholds();/!SetMaxandMinCurrentThresholds.EnterValuesinAmperes.break;case4:ack|=menu_6_alert_menu_4_set_temperature_thresholds();/!SetMaxandMinTemperatureThresholds
57、.EnterValuesinCelcius.break;default:if(user_command!=m)Serial.println(IncorrectOption);break;while(!(user_command=m)|(ack);return(ack);/!SetChargeThresholdFunctionint8_tmenu_6_alert_menu_1_set_charge_thresholds()/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noackn
58、owledgeint8_tack=0;Serial.print(F(EnterRAWMaxChargeThreshold:);uint16_tmax_charge_threshold;max_charge_threshold=read_int();/!ReaduserenteredvalueSerial.println(max_charge_threshold);/!ack|=LTC2943_write_16_bits(LTC2943_I2C_ADDRESS,LTC2943_CHARGE_THRESH_HIGH_MSB_REG,max_charge_threshold);writeuseren
59、teredvaluetoHIGHthresholdregisterSerial.print(F(EnterRAWMinChargeThreshold:);floatmin_charge_threshold;min_charge_threshold=read_int();/!ReaduserenteredvalueSerial.println(min_charge_threshold);ack|=LTC2943_write_16_bits(LTC2943_I2C_ADDRESS,LTC2943_CHARGE_THRESH_LOW_MSB_REG,min_charge_threshold);/!w
60、riteuserenteredvaluetoHIGHthresholdregisterreturn(ack);/!SetVoltageThresholdsint8_tmenu_6_alert_menu_2_set_voltage_thresholds()/!returnReturnsthestateoftheacknowledgebitaftertheI2Caddresswrite.0=acknowledge,1=noacknowledgeint8_tack=0;Serial.print(F(EnterMaxVoltageThreshold:);floatmax_voltage_thresho
61、ld;max_voltage_threshold=read_float();/!ReaduserenteredvalueSerial.print(max_voltage_threshold,3);Serial.println(V);uint16_tmax_voltage_threshold_code=max_voltage_threshold*(0xFFFF)/(LTC2943_FULLSCALE_VOLTAGE);/!Convertuserenteredvoltageintoadccode.ack|=LTC2943_write_16_bits(LTC2943_I2C_ADDRESS,LTC2943_VOLTAGE_THRESH_HIGH
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。