[video member=miotatsu stream_platform=twitch project=riscy title="Writing a PWM Speed Test" vod_platform=youtube id=q7ImzJNuxrs annotator=Miblo] [0:07][Recap and set the stage for the day] [0:26][Resume studying global_interrupts.c with a view to seeing how it uses the 16MHz clock speed[ref site="SiFive Developers" page="Platform Reference Manual" url=https://www.sifive.com/documentation/freedom-soc/freedom-e300-platform-reference-manual/]][:peripheral :research] [5:32][Determine to test the speed at which the HiFive1 is running using PWM Interrupts[ref site="SiFive Developers" page="Platform Reference Manual" url=https://www.sifive.com/documentation/freedom-soc/freedom-e300-platform-reference-manual/]][:peripheral] [7:50][@deathmaggedon][Ahoy] [8:35][Create test.c based on led_fade.c][:programming] [11:03][@deathmaggedon][I just noticed your board on the upper camera] [12:06][Trim down test.c to the essentials][:programming] [12:36][@deathmaggedon][Plug your phone into the board] [13:47][Remove the LED blinking and :"input handling" code][:peripheral] [18:48][Set up the pulse-width modulator[ref site="SiFive Developers" page="Platform Reference Manual" url=https://www.sifive.com/documentation/freedom-soc/freedom-e300-platform-reference-manual/] and the interrupts[ref site="SiFive Developers" page="Freedom E310-G000 Manual" url=https://www.sifive.com/documentation/chips/freedom-e310-g000-manual/]][:peripheral :programming] [25:07][Consult the other demos to see how they set up the interrupts][:research] [29:40][#include plic_driver.h and call PLIC_init()][:programming] [32:25][Register and set up our table of interrupts][:programming] [36:31][Introduce pwm_0_handler() and enable the interrupts][:peripheral :programming] [41:11][Call the wfi instruction in a busy-loop][:asm :programming] [42:44][Fix compile errors][:programming] [44:32][Upload test.c to our HiFive1, connect and try to reset the board][:run] [47:18][Try to set PWM_CMP0 to 0xFF0][:programming] [47:53][Make clean and try to upload test.c to our board, before checking the SiFive Forums to see how to correctly make clean[ref site="SiFive Forums" page="What are you building with yours?" url=https://forums.sifive.com/t/what-are-you-building-with-yours/209/5]] [50:59][Run make tools[ref site="SiFive Developers" page="SiFive HiFive1 Getting Started Guide" url=https://static.dev.sifive.com/dev-kits/hifive1/hifive1-getting-started-v1.0.3.pdf] and close the stream with a shout-out to new pledger while this runs] [/video]