Dear Josh, greetings!
Sorry for the slight delay in response. And great that you figured out
your problem. Sorry, I missed the prog; And thanks for updating the
wiki. I just saw the update.
I checked your problem another way without prog. So, I made sure
blinky was working. I then modified blinky and inserted the my-prog
function that calls the blink function. That works fine.
(de blink (pin)
(pio-pin-setlow pin)
(delay 100000)
(pio-pin-sethigh pin)
(delay 100000) )
(de my-prog ()
(init-pins)
(loop
(if (= 0 (pio-pin-getval button))
(blink led) ) ) )
> I have put the main code onto the sd card and I use the shell to
> call the function prog-loop.
Perfect! Nothing incorrect here.
> if I change any of it to make it shorter by using shorter function
> names like (de low ()
No; It has nothing to do with the length of function names. Of course,
there's a difference but only really in the micro scale. It wouldn't
matter on Mizar32.
R
On 21 December 2015 at 01:26, Josh <[email protected]> wrote:
> Okay so I feel like an idiot for not figuring this out earlier, but I'll
> put it down to not writing picolisp before. Anyways, I figured out what is
> wrong, sbcl if statement works like so:
>
> (if test-form then-form else-form)
>
> And the Picolisp works the same, and the easiest way to do multiple things
> in the "then-form" is with progn on SBCL, or prog on Picolisp :/ so the
> correct code to get it to blink is:
>
> # A simple program which demonstrates
> # the usage of user-buttons.
>
> # declare pins
> (setq led 'PB_29 button 'PX_16)
>
> # a simple delay function
> (de delay (t)
> (tmr-delay 0 t) )
>
> # make sure the LED starts in
> # the "off" position and enable
> # input/output pins
> (de init-pins ()
> (pio-pin-sethigh led)
> (pio-pin-setdir *pio-output* led)
> (pio-pin-setdir *pio-input* button) )
>
> # And now, the main loop
> (de prog-loop ()
> (init-pins)
> (loop
> (if (= 0 (pio-pin-getval button))
> (prog (pio-pin-setlow led)
> (delay 100000)
> (pio-pin-sethigh led)
> (delay 100000) ) ) ) )
>
> (prog-loop)
>
>
>
> *drops mic*
> anyways, I got it working using that exact code, I've edited the wiki book.
> *picks up mic and drops it again*
> Thanks :P
>
>
>
> On 20/12/15 13:48, J B wrote:
>
> No circuit just the plain old Mizar B. The Example from the hempl wiki
> book is flashing PB_29. I'm Ubuntu to connect with terminal.
>
> Sent from my iPhone
>
> On Dec 20, 2015, at 12:12 PM, pd <[email protected]> wrote:
>
> sorry if you already said this but what platform are you using? also a
> schematic of your circuit would be interesting even being so simple
>
> On Sun, Dec 20, 2015 at 3:18 AM, Josh <[email protected]> wrote:
>
>> Thought it might be a firmware problem or something, so I just re-flashed
>> the firmware but it's still happening, just eliminating possibilities. Also
>> the second of my last emails was the correct one, I canceled the previous
>> but it sent anyways. Thanks.
>>
>>
>> On 19/12/15 12:50, Josh wrote:
>>
>> I have put the main code onto the sd card and I use the shell to call the
>> function prog-loop. The light just stays on. I've had this problem before
>> with the example blink program, if I change any of it to make it shorter by
>> using shorter function names like (de low () (pio-pin-setlow 'PB_29)) it
>> doesn't work, but it does when it's just (pio-pijn-setlow 'PB_29). I don't
>> really know what's going on, but it's starting to get irritating.
>> On 19/12/15 03:45, Raman Gopalan wrote:
>>
>>
>> Dear Josh, greetings!
>>
>> Firstly, great to know you're playing with your board! Perfect!
>>
>> > Why does this small amount of code not make the onboard LED flash?
>>
>> I think you're not providing enough delay for you to see the off state
>> of the LED. Why don't you try this? I've just inserted an additional
>> delay.
>>
>> (pio-pin-setdir *pio-output* 'PB_29)
>> (pio-pin-sethigh 'PB_29)
>>
>> (loop
>> (pio-pin-setlow 'PB_29)
>> (tmr-delay 0 100000)
>> (pio-pin-sethigh 'PB_29)
>> (tmr-delay 0 100000) )
>>
>> > Any ideas? Also this example on the hempl wiki book:
>>
>> This example doesn't blink the on-board LED. It just reads the status
>> of an input pin (SW-1 I think; the one near the voltage regulator) and
>> turns the blue LED on when this input switch is pressed.
>>
>> > # And now, the main loop
>> > (de prog-loop ()
>> > (init-pins)
>> > (loop
>> > (if (= 0 (pio-pin-getval button))
>> > (pio-pin-setlow led)
>> > (delay 100000)
>> > (pio-pin-sethigh led)
>> > (delay 100000) ) ) )
>>
>> Please copy the example on your micro-SD card and point picolisp in
>> the direction of this file. If this doesn't happen, something strange
>> is happening. We can then debug. But I'm almost certain it'll work :)
>>
>> Hempl# picolisp /mmc/user-button.l
>>
>> R
>>
>> P.S. You may also use the internal transient symbol `*tmr-sys-timer*'
>> in the function tmr-delay. I think it uses a hardware PWM channel to
>> generate the time (can't remember which; I'll have to see the sources
>> again). That makes the timing accurate.
>>
>>
>> On 18 December 2015 at 22:08, Josh < <[email protected]>
>> [email protected]> wrote:
>>
>>> Why does this small amount of code not make the onboard LED flash?
>>> (pio-pin-setdir *pio-output* 'PB_29)
>>> (pio-pin-sethigh 'PB_29)
>>> (loop (pio-pin-setlow 'PB_29)
>>> (tmr-delay 0 100000)
>>> (pio-pin-sethigh 'PB_29))
>>> All that happens in the blue LED turns on and stays on, even though the
>>> code clearly says for it to go from high to low repeatedly. Any ideas? Also
>>> this example on the hempl wiki book:
>>>
>>> # A simple program which demonstrates
>>> # the usage of user-buttons.
>>> # declare pins
>>> (setq led 'PB_29 button 'PX_16)
>>>
>>> # a simple delay function
>>> (de delay (t)
>>> (tmr-delay 0 t) )
>>>
>>> # make sure the LED starts in
>>> # the "off" position and enable
>>> # input/output pins
>>> (de init-pins ()
>>> (pio-pin-sethigh led)
>>> (pio-pin-setdir *pio-output* led)
>>> (pio-pin-setdir *pio-input* button) )
>>>
>>> # And now, the main loop
>>> (de prog-loop ()
>>> (init-pins)
>>> (loop
>>> (if (= 0 (pio-pin-getval button))
>>> (pio-pin-setlow led)
>>> (delay 100000)
>>> (pio-pin-sethigh led)
>>> (delay 100000) ) ) )
>>>
>>> (prog-loop)
>>>
>>> Doesn't make the LED flash it just stays on.
>>>
>>> --
>>> UNSUBSCRIBE: mailto: <[email protected]>[email protected]
>>> ?subject=Unsubscribe
>>>
>>
>>
>>
>>
>
>
> --
> Andrés
>
> *~ La mejor manera de librarse de la tentación es caer en ella**. ~ Oscar
> Wilde* ~
>
>
>