>>    Corresponding web page:
http://amforth.sourceforge.net/TG/recipes/Turnkey.html


The error message is the non-descriptive:

     ?? -13 23

'Evalue' was found in:

     \lib\forth2012\core\avr-values.frt

> On 12/06/2019 01:37, Tristan Williams wrote:
Hello Peter and welcome,

I have just tried the turnkey example from the docs

http://amforth.sourceforge.net/TG/recipes/Turnkey.html

and it works for me.

Your error message[1] ?? -13 23 after the line

' turnkey defer@ Evalue tk.amforth

suggests that you are missing the word Evalue

Yes, it turned out I was on the second flash of AmForth (on a separate chip), with "Evalue" being

defined on the first chip... (something went wrong and I had to flash AmForth again).



Have you loaded these files on your mcu?

avr-values.frt
is.frt
ms.frt
defers.frt

as the line

' turnkey defer@ Evalue tk.amforth

depends on words defined in these files.


I have done that now, and it works now! That was probably

the crucial step (though I don't understand why(?)).


I could also define "tk.custom" and set it up with "    ' tk.custom is turnkey    ", putting

my main init and infinite control loop in there, all in word "mainApplication". After a power

cycle, the control loop ran immediately, as it should.


The control loop can be terminated by removing a jumper that pulls a digital

input low (pulled up externally with 10 kΩ). The jumper is located on

my custom Arduino shield.


Also, connecting the Arduino Uno to USB while in the control loop (mainApplication) does not

reset the I/O and does not disrupt the operation (unlike normally, where, even if powered from

a 9 V battery source, connecting will reset - though I cannot rule out power glitches). When the

jumper is removed the normal interactive stuff is available.


Everything works as it should!!


For this try, I had to flash AmForth a third time (due to another incident, an unfortunate paste error...)

and used the opportunity to see if I could repeat it. This was also to automate as much as

possible (.BAT script calling AVRDUDE for the flashing, launching PuTTY with the profile

for this (38400 baud, etc.), and running several AutoIt scripts for the

source pasting). There were a few corrections.


The fourth time, with a few more changes for automation (mostly focus changes in Windows), should

reduce it to moving the chip from the ISP programmer to the Arduino and a single press of Enter

when it has been moved. But this is not needed for this first deployment, only for subsequent

versions (if there will ever be more). With direct ICSP, just starting the script should be enough.



    : tk.custom

        \ Call the previous turnkey action.
        tk.amforth execute


        \ Now something specific e.g.

        \ I_O-setup

        mainApplication
    ;


Regards,
Peter




_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to