Random number generator for Ada on BBC MicroBit












2















Working on a little game for the BBC Microbit.



with Ada.Numerics.Discrete_Random reports "Ada.Numerics" is not a predefined library unit.



Does Ada provide another way to generate random numbers on the BBC MicroBit? arch/ARM/Nordic/svd/nrf51/nrf51_svd-rng defines a random number generator record RNG_Peripheral. Is this what I'm searching for or only used with Bluetooth?



GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
GNAT Community 2018 (20180524-73)

Active toolchain: arm-eabi

the GNAT Programming Studio

(c) 2001-2018 AdaCore


My code:



with Ada.Numerics.Discrete_Random;

package body Flip_A_Coin is

package Random_Coin is new Ada.Numerics.Discrete_Random(Coin);

G: Random_Coin.Generator;

------------------
-- Reset --
------------------

procedure Reset is

begin

Random_Coin.Reset(G);

end Reset;

------------------
-- Flip --
------------------

function Flip
return Coin is

begin

return Random_Coin.Random(G);

end Flip;

begin

Reset;

end Flip_A_Coin;









share|improve this question



























    2















    Working on a little game for the BBC Microbit.



    with Ada.Numerics.Discrete_Random reports "Ada.Numerics" is not a predefined library unit.



    Does Ada provide another way to generate random numbers on the BBC MicroBit? arch/ARM/Nordic/svd/nrf51/nrf51_svd-rng defines a random number generator record RNG_Peripheral. Is this what I'm searching for or only used with Bluetooth?



    GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
    GNAT Community 2018 (20180524-73)

    Active toolchain: arm-eabi

    the GNAT Programming Studio

    (c) 2001-2018 AdaCore


    My code:



    with Ada.Numerics.Discrete_Random;

    package body Flip_A_Coin is

    package Random_Coin is new Ada.Numerics.Discrete_Random(Coin);

    G: Random_Coin.Generator;

    ------------------
    -- Reset --
    ------------------

    procedure Reset is

    begin

    Random_Coin.Reset(G);

    end Reset;

    ------------------
    -- Flip --
    ------------------

    function Flip
    return Coin is

    begin

    return Random_Coin.Random(G);

    end Flip;

    begin

    Reset;

    end Flip_A_Coin;









    share|improve this question

























      2












      2








      2








      Working on a little game for the BBC Microbit.



      with Ada.Numerics.Discrete_Random reports "Ada.Numerics" is not a predefined library unit.



      Does Ada provide another way to generate random numbers on the BBC MicroBit? arch/ARM/Nordic/svd/nrf51/nrf51_svd-rng defines a random number generator record RNG_Peripheral. Is this what I'm searching for or only used with Bluetooth?



      GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
      GNAT Community 2018 (20180524-73)

      Active toolchain: arm-eabi

      the GNAT Programming Studio

      (c) 2001-2018 AdaCore


      My code:



      with Ada.Numerics.Discrete_Random;

      package body Flip_A_Coin is

      package Random_Coin is new Ada.Numerics.Discrete_Random(Coin);

      G: Random_Coin.Generator;

      ------------------
      -- Reset --
      ------------------

      procedure Reset is

      begin

      Random_Coin.Reset(G);

      end Reset;

      ------------------
      -- Flip --
      ------------------

      function Flip
      return Coin is

      begin

      return Random_Coin.Random(G);

      end Flip;

      begin

      Reset;

      end Flip_A_Coin;









      share|improve this question














      Working on a little game for the BBC Microbit.



      with Ada.Numerics.Discrete_Random reports "Ada.Numerics" is not a predefined library unit.



      Does Ada provide another way to generate random numbers on the BBC MicroBit? arch/ARM/Nordic/svd/nrf51/nrf51_svd-rng defines a random number generator record RNG_Peripheral. Is this what I'm searching for or only used with Bluetooth?



      GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
      GNAT Community 2018 (20180524-73)

      Active toolchain: arm-eabi

      the GNAT Programming Studio

      (c) 2001-2018 AdaCore


      My code:



      with Ada.Numerics.Discrete_Random;

      package body Flip_A_Coin is

      package Random_Coin is new Ada.Numerics.Discrete_Random(Coin);

      G: Random_Coin.Generator;

      ------------------
      -- Reset --
      ------------------

      procedure Reset is

      begin

      Random_Coin.Reset(G);

      end Reset;

      ------------------
      -- Flip --
      ------------------

      function Flip
      return Coin is

      begin

      return Random_Coin.Random(G);

      end Flip;

      begin

      Reset;

      end Flip_A_Coin;






      random ada bbc-microbit






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 1 at 14:01









      Glen FlintGlen Flint

      112




      112
























          3 Answers
          3






          active

          oldest

          votes


















          2














          If you build using



          for Runtime ("ada") use "ravenscar-full-microbit";


          in your project or



          --RTS=ravenscar-full-microbit


          on the command line you will find the standard Ada RNGs.



          You could also try, as you suggest, using the NRF51_SVD.RNG from the Ada Drivers Library, which should do the trick.






          share|improve this answer

































            1














            If you have floating-point numbers available, you can use U_Rand available @ Mathpaqs.






            share|improve this answer































              1














              There are a number of RNGs available in the PragmAda Reusable Components. Maybe one of them will suit you.



              PragmARCs






              share|improve this answer























                Your Answer






                StackExchange.ifUsing("editor", function () {
                StackExchange.using("externalEditor", function () {
                StackExchange.using("snippets", function () {
                StackExchange.snippets.init();
                });
                });
                }, "code-snippets");

                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "1"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: true,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: 10,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53996085%2frandom-number-generator-for-ada-on-bbc-microbit%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                2














                If you build using



                for Runtime ("ada") use "ravenscar-full-microbit";


                in your project or



                --RTS=ravenscar-full-microbit


                on the command line you will find the standard Ada RNGs.



                You could also try, as you suggest, using the NRF51_SVD.RNG from the Ada Drivers Library, which should do the trick.






                share|improve this answer






























                  2














                  If you build using



                  for Runtime ("ada") use "ravenscar-full-microbit";


                  in your project or



                  --RTS=ravenscar-full-microbit


                  on the command line you will find the standard Ada RNGs.



                  You could also try, as you suggest, using the NRF51_SVD.RNG from the Ada Drivers Library, which should do the trick.






                  share|improve this answer




























                    2












                    2








                    2







                    If you build using



                    for Runtime ("ada") use "ravenscar-full-microbit";


                    in your project or



                    --RTS=ravenscar-full-microbit


                    on the command line you will find the standard Ada RNGs.



                    You could also try, as you suggest, using the NRF51_SVD.RNG from the Ada Drivers Library, which should do the trick.






                    share|improve this answer















                    If you build using



                    for Runtime ("ada") use "ravenscar-full-microbit";


                    in your project or



                    --RTS=ravenscar-full-microbit


                    on the command line you will find the standard Ada RNGs.



                    You could also try, as you suggest, using the NRF51_SVD.RNG from the Ada Drivers Library, which should do the trick.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Jan 5 at 11:52

























                    answered Jan 1 at 17:41









                    Simon WrightSimon Wright

                    17k22245




                    17k22245

























                        1














                        If you have floating-point numbers available, you can use U_Rand available @ Mathpaqs.






                        share|improve this answer




























                          1














                          If you have floating-point numbers available, you can use U_Rand available @ Mathpaqs.






                          share|improve this answer


























                            1












                            1








                            1







                            If you have floating-point numbers available, you can use U_Rand available @ Mathpaqs.






                            share|improve this answer













                            If you have floating-point numbers available, you can use U_Rand available @ Mathpaqs.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Jan 1 at 15:33









                            ZerteZerte

                            1334




                            1334























                                1














                                There are a number of RNGs available in the PragmAda Reusable Components. Maybe one of them will suit you.



                                PragmARCs






                                share|improve this answer




























                                  1














                                  There are a number of RNGs available in the PragmAda Reusable Components. Maybe one of them will suit you.



                                  PragmARCs






                                  share|improve this answer


























                                    1












                                    1








                                    1







                                    There are a number of RNGs available in the PragmAda Reusable Components. Maybe one of them will suit you.



                                    PragmARCs






                                    share|improve this answer













                                    There are a number of RNGs available in the PragmAda Reusable Components. Maybe one of them will suit you.



                                    PragmARCs







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Jan 4 at 17:18









                                    Jeffrey R. CarterJeffrey R. Carter

                                    73134




                                    73134






























                                        draft saved

                                        draft discarded




















































                                        Thanks for contributing an answer to Stack Overflow!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53996085%2frandom-number-generator-for-ada-on-bbc-microbit%23new-answer', 'question_page');
                                        }
                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        MongoDB - Not Authorized To Execute Command

                                        How to fix TextFormField cause rebuild widget in Flutter

                                        in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith