New 1Dec2020. Updated 27Jun2022 (#174). This note is in group Technology (plus My XMOS pages).
Important: see About (below). For the TIOBE index 016:: “xC programming”.
None yet. See C plus lib_xcore black-boxes xC (13May2021). I still use xTIMEcomposer 14.4.1 on a reserved machine! (Jun2022)
In-note code, especially at #165 and #141 (below).
|#219||My Beep-BRRR notes (intermediate downloads in there. Usage of
|#218||IEEE-COPA 2021 fringe||18Apr2021||code|
|Extra: testing global synch||20Apr2021||code|
|#217||My xC combined combinable notes||28Mar2021||code|
|Just for some of the examples in the note, not updated||21Feb2021||builds|
|#214.sub||My button presses vs bounce vs EMI notes
Explaining button handling SW and caveats
|#209.note||My xC softblinking PWM notes
Explaining about pulse width modulation, download for the exact code described there. Stopped, but see #209.alive:
|#209.alive||My xC softblinking PWM notes
|#208.startKIT||My processor-to-analogue audio equaliser notes
Also contains code for sub-note #214. Bass/treble control box
|#208.xCORE-XA||My processor-to-analogue audio equaliser notes
Bass/treble control box, but the board could not be flashed. Stopped
|#206||Fault injection detection
My most experimental, up from earth code..
|#202||kode24 – as in kode24.no article. Describing xC||Apr2020||here|
|#174||My aquarium notes
Controls aquarium and sends to #164 over radio. 5.1 MB zipped, unzips to 31.8 MB. No
|#165||xC code examples||Code in note|
|#164||My aquarium’s data radioed through the shelf
Listens to #174 over radio
|#141||xC is C plus x||Code in note|
These projects have been built with XMOS xTIMEcomposer 14.4.1 with a downgraded Java runtime, running on macOS High Sierra (10.13.6: June2017 to June2018 but still being updated) and XMOS boards
xflash‘ed from Terminal only. (But try not to step up, yet (here)).
These xC sources contain all versions, visible in the local GitHub directory
.git (visible in xTIMEcomposer). I commit quite often. However, some downloads don’t contain< code>.git for size reasons.
These downloads also contain sources of all the libraries used, simply because finding them may not be as easy as in the Arduino or Python worlds, and the actual version I use in a particular project, may not be easily available elsewhere. They would mostly be XMOS libraries.
The other libraries would be some display code from Adafruit and radio code from RadioHead (inspirational) and the RFM69 library (closest to my port). These I often have rewritten, since just importing C/C++ is more of a chore than one should think. The closer to the edges, the worse. Why translate pins as bits in IO memory bitmaps when xC has
port as a first citizen in the language? With multithreaded protection! Why do
while true milliseconds(n) as something single threaded when xC has
while true select when timerafter(n) as multithreaded – also as a first citizen? Besides, my secondary (or some times primary) purpose has been to learn xC. But you would see the odd
All of this coding has been done after I ended my professional career. Everything is a hobby and everything is coded “for myself”.
In view of this.., I assume that this is a kind of disclaimer: I try to make function names (always in programmer’s lingua franca: English) so descriptive that headings aren’t much needed. It’s the same with variable names etc.. I use comments when I think I would need them to help my own understanding, including the one – a year away. However, I have also been thinking about any other reader out there, like you. Assuming you were more intelligent then me; if I can understand it, you can. One more thing: I don’t nest
Since I have been learning xC all the way, the code would reflect this. My goal has not been to find some library and get the job done as fast as possible, it’s rather the opposite – since I also have been doing much blogging while I developed the code.
Please help yourself! Of course, there is no guarantee, other than – there are errors that I can’t blame XMOS for. But all the projects run 24/7 and are in use. No, not #206. During all these years none of the code has crashed. Hat off for the XMOS tools xTIMEcomposer, compiler and mapper (++). They are (999‰) really good.
The photo is from an invited lecture at the local university, NTNU in April 2019. Lecture: here. My affiliation: here.