91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-25
  • 語言: 其他
  • 標簽: LTC6803??

資源簡介

LTC6803-SPI部分程序,希望對大家有所幫助

資源截圖

代碼片段和文件信息

/*****************************************************************************
?*???LTC6803.c:??SPI?Files?for?LTC6803-3?IC
?*???Copyright(C)?2012?Dongling?Tech
?*???All?rights?reserved.
**--------------File?Info-----------------------------------------------------
**?File?name:???????????LTC6803.c
**?Last?modified?Date:??2012-03-15
**?Last?Version:????????V1.0
**?Descriptions:????????LTC3803?initialread?voltage?temp?and?other?infomations.??
**---------------------------------------------------------------------------*/
#include?“LPC11xx.h“ ? //調用LPC11C14外設頭文件
#include?“Main_User.h“??????????????//主程序中用戶頭文件引用
#include?“LTC6803CMD.h“ ? //調用LTC6803寄存器定義頭文件
#include?“LTC6803User.h“????? //調用LTC6803用戶定義頭文件
void??LTC6803Init(void) ? //對LTC6803的初始化設置
{
uint8_t?i;
uint8_t?ErrCRC_TempCheck[6]={0};
uint16_t?MCxI_Temp;??

CFGR[0]=Ltc6803_CFGR0; //關看門狗
CFGR[1]=DHGSwitch8_1;?????? //放電開關
CFGR[2]=DHGSwitch9_12&0x0F; //使能中斷對于所有的電池(低四位)
CFGR[2]|=MCxI_Cfg1_4&0xF0;????//使能中斷對于所有的電池(高四位)
CFGR[3]=MCxI_Cfg5_12;
CFGR[4]=Under_Voltage;
CFGR[5]=Over_Voltage;

//根據配置計算有效電池節數
MCxI_Temp=CFGR[3];??????//MCxI高8位
MCxI_Temp<<=4;
MCxI_Temp|=(CFGR[2]&0xF0)>>4;??//MCxI低4位
MCxI_CellNumb=0;
for(i=0;i<12;i++)
{
?if((MCxI_Temp&0x0001)==0)?
?{
??MCxI_CellNumb++;??????//有效電池節數計數
MCxI_Temp>>=1;????????//MCxI緩存單元右移位
?}
}
//配置寄存器的初始化
LTC6803CS_LOW;????? //LTC6803片選信號置低
SpiWrite(WRCFG);??? //Write?configuration
Delay_us(2);???????????????????? //延時2us子程序?????
SpiWrite(WRCFG_CRC);??? //Write?CRC?
Delay_us(2);???????????????????? //延時2us子程序???
for(i=0;i<6;i++)
{
SpiWrite(CFGR[i]);???
}
??CRC_Temp=CRC8(CFGR6);????????????//計算CFGR單元的CRC碼
SpiWrite(CRC_Temp);???????????????//寫CRC校驗字節
Delay_us(2);???????????????????? //延時2us子程序?????
LTC6803CS_HIGH;???????? ???? //LTC6803片選信號置高
Delay_us(500);????????????????????//延時0.1ms子程序?????????
//讀取LTC6803寄存器配置數據是否正確
LTC6803CS_LOW;????? ???? //LTC6803片選信號置低
SpiWrite(RDCFG);
Delay_us(2);???????????????????? //延時5us子程序?????
SpiWrite(RDCFG_CRC);??????????????//Write?CRC??
Delay_us(2);???????????????????? //延時5us子程序???
for(Err=0;Err<6;Err++) ???? //讀取寫入的寄存器值
{
Check[Err]=SpiRead();
if((Err>0)&&(Check[Err]!=CFGR[Err]))??//讀的不對就重新讀
{
Err=0;
break;
}
}
LTC6803CS_HIGH;???????? ???? //LTC6803片選信號置高
if(CFGR[1]||(CFGR[2]&0x0F)!=0)
LPC_GPIO2->DATA?&=?~(1ul<<8);???//p2.8置低放電開關指示燈亮???
if(Err!=0)
LTC6803_Ini_OK=1; ???? //LTC6803初始化成功
else
LTC6803_Ini_OK=0; ???? //LTC6803初始化失敗
}

//================================================================
//函數功能:片內SPI接口操作
//filename:SpiWrite()
//input:char?讀操作,輸入參數0
//output:none
//================================================================
void?SpiWrite(uint8_t??byte)
{
uint8_t?i;
LTC6803_WRBUF=byte; //Put?function‘s?parameter?into?a?bdata?variable
LTC6803CLK_LOW; //

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????14416??2012-06-12?09:25??LTC6803.c

-----------?---------??----------?-----??----

????????????????14416????????????????????1


評論

共有 條評論