MCPcopy Create free account
hub / github.com/BruceDevices/firmware / writeKey

Function writeKey

src/modules/others/ibutton.cpp:107–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107static void writeKey() {
108 uint8_t pin = bruceConfigPins.iButton;
109
110 oneWire->skip();
111 oneWire->reset();
112 oneWire->write(0x33);
113
114 oneWire->skip();
115 oneWire->reset();
116 oneWire->write(0x3C);
117 delay(50);
118
119 oneWire->skip();
120 oneWire->reset();
121 oneWire->write(0xD1);
122 delay(50);
123
124 digitalWrite(pin, LOW);
125 pinMode(pin, OUTPUT);
126 delayMicroseconds(60);
127 pinMode(pin, INPUT);
128 digitalWrite(pin, HIGH);
129 delay(10);
130
131 oneWire->skip();
132 oneWire->reset();
133 oneWire->write(0xD5);
134 delay(50);
135
136 for (byte i = 0; i < 8; i++) {
137 writeByte_RW1990(keyBuffer[i]);
138 delayMicroseconds(25);
139 }
140
141 oneWire->reset();
142 oneWire->skip();
143 oneWire->write(0xD1);
144 delayMicroseconds(16);
145 oneWire->reset();
146}
147
148// ---------------------------------------------------------------------------
149// File I/O

Callers 1

doWriteFunction · 0.85

Calls 3

writeByte_RW1990Function · 0.85
resetMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected