60 lines
1.1 KiB
Plaintext
60 lines
1.1 KiB
Plaintext
|
{$read}
|
||
|
//reading 24c08
|
||
|
begin
|
||
|
ChipSize := 1024;
|
||
|
MemAddr := 0;
|
||
|
ReadBuff := CreateByteArray(ChipSize);
|
||
|
DevAddr := $A8;
|
||
|
|
||
|
if _IC_Name = '' then
|
||
|
begin
|
||
|
ShowMessage ('Choose a component in list');
|
||
|
exit;
|
||
|
end;
|
||
|
|
||
|
I2CEnterProgMode;
|
||
|
|
||
|
I2CReadWrite(DevAddr, 1, ChipSize, MemAddr, ReadBuff);
|
||
|
ReadToEditor(ChipSize, 0, ReadBuff);
|
||
|
|
||
|
I2CExitProgMode;
|
||
|
end
|
||
|
|
||
|
{$write}
|
||
|
function I2CIsBusy(DevAdr): boolean;
|
||
|
begin
|
||
|
I2CStart;
|
||
|
Result := not I2CWriteByte(DevAdr);
|
||
|
I2CStop;
|
||
|
end;
|
||
|
//writing 24c08
|
||
|
begin
|
||
|
ChipSize := 1024;
|
||
|
MemAddr := 0;
|
||
|
WriteByte := 0;
|
||
|
DevAddr := $A0;
|
||
|
if _IC_Name = '' then
|
||
|
begin
|
||
|
ShowMessage ('Choose a component in list');
|
||
|
exit;
|
||
|
end;
|
||
|
ProgressBar(0, _IC_SIZE-1, 0);
|
||
|
|
||
|
I2CEnterProgMode;
|
||
|
|
||
|
for i:=0 to ChipSize-1 do
|
||
|
begin
|
||
|
WriteFromEditor(1, i, WriteByte);
|
||
|
I2CReadWrite(DevAddr, 2, 0, MemAddr, WriteByte);
|
||
|
while I2CIsBusy(DevAddr) do
|
||
|
MemAddr := MemAddr + 1;
|
||
|
if MemAddr = 256 then DevAddr := $A2;
|
||
|
if MemAddr = 512 then DevAddr := $A4;
|
||
|
if MemAddr = 768 then DevAddr := $A6;
|
||
|
ProgressBar(1);
|
||
|
end;
|
||
|
|
||
|
I2CExitProgMode;
|
||
|
ProgressBar(0, 0, 0);
|
||
|
end
|