[Oberon] How to use SYSTEM.VAL safely?
Joerg
joerg.straube at iaeth.ch
Wed Mar 31 19:10:39 CEST 2021
Okay, you want to display decimal nbrs upto 00..99 and the interface to your segment display is BCD.
Then
SYSTEM.PUT(SEVENSEGADR,
val DIV 10*16 + val MOD 10);
does the job
br
Jörg
> Am 31.03.2021 um 18:51 schrieb Jeff Maggio <jmaggio14 at gmail.com>:
>
>
> Thanks!
>
> I'm actually using binary-coded decimal, which is a little different. I'm writing two separate 4bit decimal digits alongside each other. Each 4bit field drives a separate seven segment display on our embedded board
>
> best,
> Jeff
>
>
>> Jeff For bitwise operations SYSTEM.VAL is safe.
>> The hint to the garbage collection is rather meant in case you manipulate POINTERs by doing calculations on them using INTEGERs.
>> Common low-level programming practice BTW: If I understand correctly what you want to do with SetVal is, interprete the decimal input value as hex nbr. SetVal(73) will store value 115 at address SEVENSEGADR. If so, I would code it as follows:
>> SYSTEM.PUT(SEVENSEGADR,
>> val DIV 10*16 + val MOD 10); Perhaps an other method would be to call SetVal with the hex value in the first place:
>> SetValue(73H);
>> and SerVal just does
>> SYSTEM.PUT(SEVENSEGADR, val) br
>> Jörg
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20210331/7f4592f1/attachment.html>
More information about the Oberon
mailing list