?? unit1.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSimI2CForm *SimI2CForm;
#define READ_COMMAND 0x9d//d1;//9D;//D1;
WORD WRITE_COMMAND=0x9c;//d0;//9C;//D0;
WORD PMU_ADDR_READ_COMMAND=0X9D;
WORD PMU_ADDR_WRITE_COMMAND=0X9D;
WORD PMU_ADDR_IRQ=0X60;
#define PMU_ADDR_IRQM 0x62
#define PMU_ADDR_ON/OFF1 0x64
#define PMU_ADDR_ON/OFF2 0x66
#define PMU_ADDR_ON/OFF3 0x68
#define PMU_ADDR_OUT1 0x70
#define PMU_ADDR_OUT2 0x72
#define PMU_ADDR_OUT3 0x74
#define PMU_ADDR_CHARGER 0x78
#define PMU_ADDR_MISC 0x80
#define PMU_ADDR_TEST1 0x86
#define PMU_ADDR_TEST2 0x88
//---------------------------------------------------------------------------
__fastcall TSimI2CForm::TSimI2CForm(TComponent* Owner)
: TForm(Owner)
{
SCL=0X01;
SDO=0X02;
SDI=0X08;
DVDD=0X04;
}
//---------------------------------------------------------------------------
void __fastcall TSimI2CForm::ExecutiveClick(TObject *Sender)
{
bool rlst;
WORD addr,data;
BYTE addr_msb,addr_lsb;
addr=StrToInt("0x"+Address->Text);
data=StrToInt("0x"+Data->Text);
addr_msb=(addr&0xFF00)>>8;
addr_lsb=addr&0x00FE;
my_bus.Mem_Reset();
my_bus.Start();
if(RadioWrite->Checked) {
//my_bus.WriteBit(0x80);
//my_bus.WriteBit(0x00);//to verify the SDA and SCL
// Write operation
my_bus.WriteByte(WRITE_COMMAND);
rlst=my_bus.WaitACK();
// my_bus.WriteByte(addr_msb);
//rlst=my_bus.WaitACK();
my_bus.WriteByte(addr_lsb);
rlst=my_bus.WaitACK();
my_bus.WriteByte(data);
rlst=my_bus.WaitACK();
}
else {
// Read operation
my_bus.WriteByte(WRITE_COMMAND);
// rlst=my_bus.ReadBit();//=my_bus.WaitACK();
// my_bus.WriteByte(addr_msb);
rlst=my_bus.WaitACK();
my_bus.WriteByte(addr_lsb);
rlst=my_bus.WaitACK();
// my_bus.Stop();
my_bus.Start();
my_bus.WriteByte(READ_COMMAND);
rlst=my_bus.WaitACK();
data=my_bus.ReadByte();
//rlst=my_bus.WaitACK();//
Data->Text=IntToHex(data,2);
}
my_bus.Stop();
if(rlst)
LED->Brush->Color=clLime;
else
LED->Brush->Color=clRed;
}
//---------------------------------------------------------------------------
void __fastcall TSimI2CForm::ProcessClick(TObject *Sender)
{
my_bus.Start();
my_bus.WriteByte(0x9E);
my_bus.WaitACK();
my_bus.Stop();
my_bus.Start();
my_bus.WriteByte(0x9C);
my_bus.WaitACK();
my_bus.Stop();
my_bus.Start();
my_bus.WriteByte(0x00);
my_bus.WaitACK();
my_bus.Stop();
}
//---------------------------------------------------------------------------
void __fastcall TSimI2CForm::I2CBusSetClick(TObject *Sender)
{
TPinSet *My_Pin=new TPinSet(Application);//this->Owner);//=NULL;//=new TPinSet;
My_Pin->Show();
// My_Pin->OnGetSDA();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -