<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/esp8266/modonewire.c, branch main</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2017-06-22T06:06:00+00:00</updated>
<entry>
<title>extmod: Move modonewire.c from esp8266 to extmod directory.</title>
<updated>2017-06-22T06:06:00+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-22T06:06:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6cc4da4cb82438829e090ffbf43450ddfd3da392'/>
<id>urn:sha1:6cc4da4cb82438829e090ffbf43450ddfd3da392</id>
<content type='text'>
It's now generic enough to be used by any port.
</content>
</entry>
<entry>
<title>esp8266/modonewire: Make timings static and remove onewire.timings func.</title>
<updated>2017-06-22T05:53:13+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-22T05:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0c13b95cdc70115c588ea515a459f8d4ba3844bc'/>
<id>urn:sha1:0c13b95cdc70115c588ea515a459f8d4ba3844bc</id>
<content type='text'>
The 1-wire bus is defined with fixed timings so there should be no need to
change them dynamically at runtime.  Making the timings fixed saves about
270 bytes of code and 20 bytes of RAM.
</content>
</entry>
<entry>
<title>esp8266/modonewire: Move low-level 1-wire bus code to modonewire.c.</title>
<updated>2017-06-22T05:47:56+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-22T05:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=68c640d7cbebd4cc3bf22af3871ca2c9d74bb292'/>
<id>urn:sha1:68c640d7cbebd4cc3bf22af3871ca2c9d74bb292</id>
<content type='text'>
The reason it was separated is so that the low-level code could be put in
iRAM, for timing reasons.  But:

1. Tests show that it's not necessary to have this code in iRAM for it to
function correctly, and taking it out of iRAM reclaims some of that precious
resource.  Furthermore, even though these functions were in iRAM there were
some functions that it called (eg pin get/set functions) which were not in
iRAM, so partially defeated the purpose of putting the 1-wire code in iRAM.

2. It's easier to reuse this 1-wire code in other ports if it's in a single
file.

3. If it turns out that certain code does need to be in iRAM then one can
use the MP_FASTCODE macro to do that.
</content>
</entry>
<entry>
<title>esp8266: Make onewire module and support code usable by other ports.</title>
<updated>2017-06-20T09:11:46+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-06-20T09:11:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c06aa5be00139dcb5fc8a47da5e38734355981e2'/>
<id>urn:sha1:c06aa5be00139dcb5fc8a47da5e38734355981e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>esp8266: Rename "machine" module implementation to use contemporary naming.</title>
<updated>2016-11-05T22:30:19+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-11-05T22:30:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8bc3fc20feca9ebe9e9972aeb6b68a81d792c5df'/>
<id>urn:sha1:8bc3fc20feca9ebe9e9972aeb6b68a81d792c5df</id>
<content type='text'>
Previously they used historical "pyb" affix causing confusion and
inconsistency (there's no "pyb" module in modern ports; but people
took esp8266 port as an example, and "pyb" naming kept proliferating,
while other people complained that source structure is not clear).
</content>
</entry>
<entry>
<title>all: Remove 'name' member from mp_obj_module_t struct.</title>
<updated>2016-09-21T14:23:16+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-09-21T00:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=93c4a6a3f70e389b466fbc7a4f1ad2e1df87c93f'/>
<id>urn:sha1:93c4a6a3f70e389b466fbc7a4f1ad2e1df87c93f</id>
<content type='text'>
One can instead lookup __name__ in the modules dict to get the value.
</content>
</entry>
<entry>
<title>esp8266: Separate 1-wire timing funcs from Python module to save iRAM.</title>
<updated>2016-04-14T11:44:26+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-04-14T11:33:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=df3b1741b6f6aebece2d6ae7d4800baf9c163e36'/>
<id>urn:sha1:df3b1741b6f6aebece2d6ae7d4800baf9c163e36</id>
<content type='text'>
esponewire.c contains low-level timing-critical functions that go in
iRAM.  modonewire.c contains Python wrapper code.
</content>
</entry>
<entry>
<title>esp8266: Add onewire helper functions as C module.</title>
<updated>2016-03-24T15:33:42+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2015-12-29T00:20:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=78d0dde5622aa9ab55b7dfc0dc26407734580780'/>
<id>urn:sha1:78d0dde5622aa9ab55b7dfc0dc26407734580780</id>
<content type='text'>
Includes functions to read and write bits and bytes.
</content>
</entry>
</feed>
