[Oberon] a module a page (keeps the mind sane)?

Jörg joerg.straube at iaeth.ch
Tue Nov 6 11:05:42 CET 2018


F.P.
"Coroutines" is very small;  if I remember correctly a page of code for the whole module or so.
This module is very compact but not easy to understand for outsiders as it "just" plays around with internal registers.
If I have time I might port it over.
br
Jörg
 -----Original Message-----
From: Frans-Pieter Vonck <fp at vonck.nl> 
Sent: Tuesday, November 6, 2018 9:09 AM
To: Jörg Straube <joerg.straube at iaeth.ch>
Cc: ETH Oberon and related systems <oberon at lists.inf.ethz.ch>; paulreed at paddedcell.com
Subject: Re: [Oberon] a module a page (keeps the mind sane)?

Hi Jörg,

I saw the coroutine module is not yet written for project oberon.
But that does not keep me from trying out the concept of cooperatieve multitasking.
I will look into that,

Thanks.
F.P.

Jörg Straube schreef op 2018-11-05 23:22:
> F.P.
> 
> Installing tasks in the Oberon loop is THE way to enable multi tasking 
> in Oberon.
> 
> T := Oberon.NewTask(myHandler, 1000);
> Oberon.Install(T);
> 
> Every 1000 ms the procedure „myHandler“ will be called.
> 
> Another way to have cooperative multitasking is to implement module 
> „Coroutines“.
> 
> br
> Jörg
> 
>> Am 05.11.2018 um 22:02 schrieb Frans-Pieter Vonck <fp at vonck.nl>:
>> 
>> Eventloop the arduino way.
>> (a little offtopic
>> Here is a nice  example on Adafruit how multitasking can be achieved 
>> with a timer.
>> https://learn.adafruit.com/multi-tasking-the-arduino-part-1/overview
>> 
>> As the tutorial progresses the event loop is cleaned up by using 
>> classes.
>> 
>> a snippet from the code:
>> 
>>  Flasher led1(12, 100, 400);
>>  Flasher led2(13, 350, 350);
>> 
>> void loop()
>> {
>>    led1.Update();
>>    led2.Update();
>> }
>> 
>> 
>> A scheduler is not necessary and the code is still readable.
>> Could be nice also as an example for oberon07 (astrobe)
>> 
>> Greets,
>> F.P.
>> --
>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>> systems https://lists.inf.ethz.ch/mailman/listinfo/oberon



More information about the Oberon mailing list