?? 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 + -