My xC code downloads page

New 1Dec2020. Updated 27Jun2022 (#174). This note is in group Technology (plus My XMOS pages).

Important: see About (below). For the TIOBE index 016:[10]: «xC programming».


lib_xcore code

None yet. See C plus lib_xcore black-boxes xC (13May2021). I still use xTIMEcomposer 14.4.1 on a reserved machine! (Jun2022)

xC code

In-note code, especially at #165 and #141 (below).

#219 My Beep-BRRR notes (intermediate downloads in there. Usage of lib_mic_array) 9Sep2021 here
#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
See #208.starKIT
#209.note My xC softblinking PWM notes
Explaining about pulse width modulation, download for the exact code described there. Stopped, but see #209.alive:
10Jul2020 here
#209.alive My xC softblinking PWM notes
Code with lib_pwm_softblinker. Explaining about pulse width modulation. Also barrier code, using chan chanend
#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 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 .git, but the _version.h file lists all changes
#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 timer and 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 .c file.

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 #include files..

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.

Leave a Reply

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.