[video member=miotatsu stream_platform=twitch project=riscy title="Understanding Center Aligned Waveforms & Searching For __atomic_fetch_xor" vod_platform=youtube id=aXPgZGqmYYE annotator=Miblo]
[0:07][Recap and set the stage for the day]
[1:00][Shifting << 1 in order to produce a centre-aligned waveform][:blackboard]
[3:35][Try setting G to 0x8000, centre-aligned][:peripheral]
[5:02][:Run the program and see a light, to determine that the value gets inverted at 0x8000]
[5:37][Try setting G to 0x7FFF and :run to see it lit, but a little dimmer]
[7:23][Determine that the code is shifting the wrong way, and change it to shift right]
[8:53][:Run the program, and see that the brightness is uniform]
[10:16][Determine that we fully understand PWM, and to review demo_gpio.c][:peripheral]
[11:17][Review demo_gpio.c]
[12:47][Note that we don't understand bit-banging, or know about atomic_fetch_xor_explicit()]
[16:24][Consult the documentation for atomic_fetch_xor_explicit[ref
    site=cppreference.com
    page="atomic_fetch_xor, atomic_fetch_xor_explicit"
    url=http://en.cppreference.com/w/c/atomic/atomic_fetch_xor]][:memory :research]
[19:02][Look into how we call atomic_fetch_xor_explicit() and read about memory_order[ref
    site=cppreference.com
    page=memory_order
    url=http://en.cppreference.com/w/c/atomic/memory_order]][:memory :research]
[31:24][Hunt the Freedom E SDK for our atomic_fetch_xor_explicit()][:memory :research]
[1:03:22][Hunt the GCC source for the __atomic_fetch_xor() built-in][:memory :research]
[1:08:28][We are out of time for today, with the determination to continue investigating this]
[/video]
