📄 debuginsimulator.ini
字号:
// Simulate AT24C02 256*8bit EEPROM
MAP V:0,V:0xFF READ WRITE // Map User Memory region
DEFINE int SADR // Slave Address
signal void AT24C02(void)
{
unsigned long adr;
SADR = 0x50;
adr = V:0;
while(1)
{
wwatch (TWI_OUT); // Wait for data from Microcontroller
while (TWI_OUT == 0x0100) // START detected
{
wwatch (TWI_OUT); // Wait for data from Microcontroller
if (TWI_OUT > 0xFF) continue;
if ((TWI_OUT >> 1) != SADR) continue; // test if Slave is addressed
TWI_IN = 0xFF00; // ACK to Microcontroller
if (TWI_OUT & 1) // Slave Read
{
while (1)
{
TWI_IN = _RBYTE(adr); // Read Byte from Memory
adr++; // Increment Address
wwatch (TWI_OUT); // Wait for ACK from Microcontroller
if (TWI_OUT != 0xFF00) break;
}
} // Slave Write
else
{
wwatch (TWI_OUT); // Wait for data from Microcontroller
if (TWI_OUT > 0xFF) continue;
adr = TWI_OUT | V:0; // Set Memory Address
TWI_IN = 0xFF00; // ACK to Microcontroller
while (1)
{
wwatch (TWI_OUT); // Wait for data from Microcontroller
if (TWI_OUT > 0xFF) break;
_WBYTE (adr, TWI_OUT); // Store Byte in Memory
adr++; // Increment Address
TWI_IN = 0xFF00; // ACK to Microcontroller
}
}
}
}
}
map 0x33FFFF00, 0x33FFFFA0 read write exec
AT24C02()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -