sorry for the late reply. I have had some more free time and now have the system up and running! however I have an issue w/ getting compiletoflash working. The micro only allows for 32bit writes to flash so I'm using emulated16bitflashwrites. The writes seem to be somewhat written to flash but no link in the dict, further it erros w/ unpaired writes. I hope this code snippit highlights the issue. I placed sammeltabellemalen before the call to flashkomma and after the call to flushflash. Address:...
sorry for the late reply. I have had some more free time and now have the system up and running! however I have an issue w/ getting compiletoflash working. The micro only allows for 32bit writes to flash so I'm using emulated16bitflashwrites. The writes seem to be somewhat written to flash but no link in the dict, further it erros w/ unpaired writes. I hope this code snippit highlights the issue. I placed sammeltabellemalen before the call to flashkomma and after the call to flushflash. Address:...
sorry for the late reply. I have had some more free time and now have the system up and running! however I have an issue w/ getting compiletoflash working. The micro only allows for 32bit writes to flash so I'm using emulated16bitflashwrites. The writes seem to be somewhat written to flash but no link in the dict, further it erros w/ unpaired writes. I hope this code snippit highlights the issue. I placed sammeltabellemalen before the call to flashkomma and after the call to flushflash. Address:...
sorry for the late reply. I have had some more free time and now have the system up and running! however I have an issue w/ getting compiletoflash working. The micro only allows for 32bit writes to flash so I'm using emulated16bitflashwrites. The writes seem to be somewhat written to flash but no link in the dict, further it erros w/ unpaired writes. I hope this code snippit highlights the issue. I placed sammeltabellemalen before the call to flashkomma and after the call to flushflash. Address:...
Forgot to include the second opcode: opcode [ $F2C20000 ><, ] ; see opcode 00116B96: B500 push { lr } 00116B98: F2C2 movt r0 #2000 00116B9A: 0000 00116B9C: BD00 pop { pc } The movw/movt pair tries to load constant $20004FC4 into r0, which requires using a ldr instruction instead on M0. Did you place the Forth core into RAM memory area?
Huh, that looks strange. It says F64470C4 as an undefined opcode... Which would be a long 32 bit opcode. The M0 only supports Thumb-1 mode, and I think the assembler tries to create code for a more capable ARM CPU. Lets disassemble it: opcode [ $F64470C4 ><, ] ; ok. see opcode 00116B7E: B500 push { lr } 00116B80: F644 movw r0 #4FC4 00116B82: 70C4 00116B84: BD00 pop { pc } This is a movw instruction with a constant too large for the movs with byte sized immediate available in M0. Maybe your new memory...
I'm getting the following in crossstudio (they supported the micro). I started with an stm32f030f4 as a base as it's a cortexM0 and changed the memory map. I'm getting the following snippit error. 0800 lsrs r0, r0, #0 -> F64470C4 undefined opcode F2C20000 undefined opcode 6800 ldr r0, [r0] what am I missing?
Thanks so much! I really appreciate all the help!
Sorry for being a bit late, I have a few additional hints... There is a nicely portable example for a bit-bang I2C implementation for Mecrisp-Stellaris using GPIO lines, running on a different chip: mecrisp-stellaris-2.6.5/stm32f303/imu.txt And a graphics library with lines, circles, ellipses and a few different bitmap fonts: mecrisp-stellaris-2.6.5/common/graphics-unicode-4x6.txt mecrisp-stellaris-2.6.5/common/graphics-unicode-8x8.txt mecrisp-stellaris-2.6.5/common/graphics-unicode-8x16.txt mecrisp-stellaris-2.6.5/common/graphics.txt...
Thank you all for your input. I found another display that I think will work much better. It is a 2.6" serial (uart) interfaced display by Digole. I have ordered one, but I haven't got it yet. I was able to download the manual and look at the command set. It is something I think I can do. Thanks again
Speaking of a LCD charcater display that is both 3,3 V compatible out of the box and very, very flexible why not try the EA DOGS164W series like this one for example https://www.digikey.pl/en/products/detail/display-visions/EA-DOGS164W-A/9972237. Not super cheap but it might be well worth it.
https://store.freenove.com/products/fnk0079 Could it be that the display is 5v while the Pico is 3.3 v ? Cheers, Terry
Here is where I am at on this part of the project. I am trying to get the LCD display working, which is a Freenove 2004A LCD display with I2C interface. I can use my commands lcd.on and lcd.off to turn on and off the display. However, that is all. Any other command turns it off. Here is what I am doing: The display responds to the correct I2C address ($27). When I check pins 4 and 5 they are listed as function 3 in the GPIO cntrl register. They are both high on reset, but after the first command,...
I am hoping to be able to connect my Pico to a LCD display using I2C interface. The documentation in the RP2040 manual seems quite complex. It seems like there are lots of options that are not necessary to connect a simple 4 line LCD display. Can anyone provide help with what they have done to solve this problem? Any help would be appreciated. Steve BTW it was great getting multitasking running and all the help I have received in the past!
Thank you so much! I love what has been created. I am so excited to continue on this journey. Steve
Hi Steven, you can find the multitasker sources in the common/ directory, along with a collection of other hardware independent goodies. But let me recommend you to simply flash mecrisp-stellaris-pico-with-tools.uf2 instead that contains the multitasker and some other nice additions in a ready-to-fly fashion. By the way, welcome to Mecrisp-Stellaris and the forum, nice to read you! Best wishes, Matthias
I tried to test out the multitasking and couldn't find the word task: in the dictionary. Are there other vocabularies, dictionaries, etc. that I don't know about? Help! task: blink.slow blink.slow& \ & = task manager blink.slow activate \ Active the task begin 15 high 1000 ms \ Set pin 15 high 15 low 1000 ms \ Turn it off again ; \ ******* task: blink.fast blink.fast& \ Task manager begin 14 high 300 ms \ Turn on pin 14 14 low 300 ms \ Turn it off again ;
Ok, I figured it out! I had TeraTerm set for CRLF. It was the LF that was being accepted and terminating the input. When I changed to CR only then the accept word started working as I was expecting it.
I was expecting the cursor to stop and accept keys but it just says ok and goes on. It isn't working as I expected. The cursor should stop after accept and wait for a cr or 20 characters to be entered. It shouldn't just go on back into the outer interpreter without getting the characters. That is what is puzzling me.
Thank you very much!
Hi Steve, you need to use buffer: to get RAM for a buffer. You cannot use allot after variable. 20 buffer: steve steve 20 accept drop steve 20 type Best wishes, Matthias
I am trying to use "accept" and it doesn't seem to work. I am hoping someone can help me. Here is what I am doing: 0 variable steve steve 20 allot steve 20 accept then I want to be able to say steve 20 type and get the input from the accept word. What am I missing? Steve
Hi Bernard, I am glad Travis already answered your questions! The ADC needs a fixed amount of clock cycles after starting the conversion... But as you are using the RP2040 featuring a rather noisy ADC, I think quality of the readings is not of utmost importance for you. Maybe try to push the ADC by overclocking it beyond the specification of 500 ksps at 48 MHz input clock and see what happens? Selecting clksrc_pll_sys and playing with the divider should do the trick. If I were in your situation,...
Bernie, I apologize about assuming that you hadn't read the datasheet. I tend to reflexively assume that people who ask for source code haven't bothered to read the documentation. (I should have known better considering that your other comments clearly show you to be plenty knowledgeable.) Travis
Hi Travis, many thanks for all of the above. I had already stripped down the adc@ word, that is what I am using now and it takes 5us. It is satisfactory up to 3000rpm on my motor application, but I would like to do better. And yes, the tasks are getting in the way ... I will see what I can do with running some tasks on the 2nd core. I just realized that because I am multiplexing some adc channels (4 adc's is just not enough ... :( ...) So I can't easily do fifo or dma ... (I am using 7 adc's, 3 adc's...
Hi Travis, many thanks for all of the above. I had already stripped down the adc@ word, that is what I am using now and it takes 5us. It is satisfactory up to 3000rpm on my motor application, but I would like to do better. And yes, the tasks are getting in the way ... I will see what I can do with running some tasks on the 2nd core. I just realized that because I am multiplexing some adc channels (4 adc's is just not enough ... :( ...) So I can't easily do fifo or dma ... (I am using 7 adc's ) PS:...
Hi Travis, many thanks for all of the above. I had already stripped down the adc@ word, that is what I am using now and it takes 5us. It is satisfactory up to 3000rpm on my motor application, but I would like to do better. And yes, the tasks are getting in the way ... I will see what I can do with running some tasks on the 2nd core. I just realized that because I am multiplexing some adc channels (4 adc's is just not enough ... :( ...) So I can't easily do fifo or dma ... (I am using 7 adc's )
Bernie, Another thing if you do not want to bother with DMA and the FIFO and like is to strip down the builtin ADC interface code for zeptoforth: In particular the builtin ADC read code: \ Get an ADC value : adc@ ( adc-chan adc -- value ) validate-adc dup validate-adc-chan [: begin ADC_CS_READY@ until ADC_CS_AINSEL! true ADC_CS_START_ONCE! begin ADC_CS_READY@ until ADC_RESULT @ ;] adc-lock with-lock ; does extra validation with VALIDATE-ADC and VALIDATE-ADC-CHAN, and ensures that only one task accesses...
Bernie, Another thing if you do not want to bother with DMA and the FIFO and like is to strip down the builtin ADC interface code for zeptoforth: In particular the builtin ADC read code: \ Get an ADC value : adc@ ( adc-chan adc -- value ) validate-adc dup validate-adc-chan [: begin ADC_CS_READY@ until ADC_CS_AINSEL! true ADC_CS_START_ONCE! begin ADC_CS_READY@ until ADC_RESULT @ ;] adc-lock with-lock ; does extra validation with VALIDATE-ADC and VALIDATE-ADC-CHAN, and ensures that only one task accesses...
Hey Bernie ─ Terry alerted me to your message. I would recommend reading the RP2040 datasheet for starters (it is very helpful in cases like these; I have included the important parts to obviate the need to dig through the datasheet), but zeptoforth already comes with a DMA API which can be found in https://github.com/tabemann/zeptoforth/blob/master/src/rp2040/forth/dma.fs (and a corresponding DMA pool API which can be found in https://github.com/tabemann/zeptoforth/blob/master/src/rp2040/forth/dma_pool.fs)....
Hi, I am trying to get faster ADC on the rp2040, as I need to read 3 channels fast in a 20khz pwm on-time. The current ADC reading example in the playground takes 10us to read one channel. (as a comparison, zeptoforth takes 5us) Has anyone any code to use dma or fifo etc to get better performance? Thanks
Hi Terry, Thanks very much ! This was exacly what I was looking for. Regards, Ronny
Hi Ronny, I wrote one named "words4' which you can find at https://mecrisp-stellaris-folkdoc.sourceforge.io/list4.html#id2 Cheers, Terry
Hi, Would it be possible to write in forth a 'vlist' command like in the good old days ? This prints all definitions one after another , so that the screen is more readable then using 'words' The screen scrolls a whole lot when using 'words' and is therefore a bit unhandy. Is this possible or does it require a change in the sources of mecrisp ? Kind regards, Ronny
found the solution : have to do a save after test Ronny
> Hi, I have a rp2040 board and tried the compiletoflash command. I tried this for example : compiletoflash test 10 0 do i . loop ; all is ok , but when I reset the board , then test isn't found. What am I doing wrong ??? Kind regards, Ronny
Hi, I have a rp2040 board and tried the compiletoflash command. I tried this for example : compiletoflash test 10 0 do i . loop ; all is ok , but when I reset the board , then test isn't found. What am I doing wrong ??? Kind regards, Ronny
Hi, I have a rp2040 board and tried the compiletoflash command. I tried this for example : compiletoflash test 10 0 do i . loop ; all is ok , but when I reset the board , then test isn't found. What am I doing wrong ??? Kind regards, Ronny
Hi, I have a rp2040 board and tried the compiletoflash command. I tried this for example : compiletoflash test 10 0 do i . loop ; all is ok , but when I reset the board , then test isn't found. What am I doing wrong ??? Kind regards, Ronny
I am not familiar with RTOS Zephyr, but I assume that AAPCS (Procedure Call Standard for the ARM Architecture) is used. I am using CMSIS-RTOS (FreeRTOS) and the STM32 Cube ecosystem to build a similar system called Mecrisp-Cube. For details see: Mecrisp-Cube Calling C Functions from Forth and Vice Versa [Why a Preemptive Real Time Operating System?] (https://github.com/spyren/Mecrisp-Cube/blob/master/sdcard/man/CmsisRtos.md) May the 4th be with you Peter
Hi! Mecrisp-Stellaris already runs nicely on Linux and FreeBSD, if you take care of the structure necessary for Zephyr and rewrite the terminal code, I see no reason why this should not work. But... Your desire probably is to have a nice interface to all the other functions of Zephyr, and you would need to take care to make all the routines accessible from within Forth. And this is the more complex part. You can try, but I am not using Zephyr and I am not using ARM targets myself anymore, my focus...
Hi ! any chances that forth mecrisp stellaris could be ported on ZEPHYR RTOS ? as zephyr offers unified low level abstraction with device tree, native posix calls and CLI, it would allow MS to run on multiple target with very few modification isn't it ? my dream is to have a forth CLI accessible on any zephyr RTOS project as a back door for remote diagnostics. it would run on a low priority task. best regards AM
Here is an updated version of the Pico-Ice port. The big change is that is that the ICE40UP5K has 30 separate four kbit ram blocks, not 32. So that is now fixed in both the verilog and the Forth. I also moved the verilog from ./icestorm to ./verilog. ALso generally I am just much better at workingj with this code. It is a git repository, so that it is easy to see the changes. I am busy trying to test it with e4thcom, so that is why the errors were caught. Info: Device utilisation: Info: ICESTORM_LC:...
E4thCom is an interesting terminal client for Forth devices. Unlike the dumb devices like picocom, e4thcom, lets you download a file to the device. It downloads each word definition then waits for the ok. Perfect for running the test suite located in ./testsuite/complete-test.txt. the only problem is that it is not working. : chars ( u -- u ) ; 0 foldable ok. : char+ ( u -- u+1 ) 1+ ; 1 foldab ? at Line 41 in File ./complete-test.txt I did search through this discussion board, one person did report...
d# and h# are not documented. They are actually part of the cross compiler, so that is understandable, but they really should be. d# ( -- x ) Interprets the next number as a decimal number. h# (--x). interprets the next number as a hexadecimal number.
Adrian said: I am making a second stack. Very interesting. Will this be an additional data stack? I think that I also want to eventually do additional data stacks. There are some examples in the book: "Stack Computers: the new wave ". https://users.ece.cmu.edu/~koopman/stack_computers/sec5_4.html Then you would need commands to move data to the additional stack, and to move it back. Like the >r and r>, and @r commands. >r ( x -- ) (R: -- x ) r> ( -- x ) (R: x -- ) r@ ( -- x ) (R: x -- x ) Maybe your...
It appears to also work with the 2.7 release of mecrisp-ice. https://sourceforge.net/projects/mecrisp/files/mecrisp-ice-2.7.tar.gz/download Remember to first install the OSS cad tools.
Please find attached a tarball for mecrisp-ice running on the pico-ice. To install first download the 2.6d version https://sourceforge.net/projects/mecrisp/files/mecrisp-ice-2.6d.tar.gz/download untar it, change into that directory and untar the attached file. This is the barebones mecrisp*/skeletalstructure ported to the pico-ice. It has a change log. It has a README. Probably works with the newest release as well. As for my news, I have my 16 bit single port version of mecrisp ice working in simulation,...
Here is a tarball of the testsuite directory. I took the German documentation, generated a pdf and translated it to English using Deepl. I then poked around in the files to figure out what is what and documented it. I am likely to have made some mistakes, but then any other newbie would make the same mistakes, so it would be helpful if you corrected my errors. I presume that submitting tarballs which you can diff is the appropriate way to submit changes.
Sorry I missed this. Somehow I did not get notified. Maybe I did not select notify me on this thread. So if you post on this thread, please also email me. lozinski@PythonLinks.info. I do want to share documentation changes, It is not at all clear to me how to do pull requests and merges on SourceForge. For the docs, all of my changes I posted in this discussion forum, just download them and install them in the next release. What version control system does source forge use? Should I be using the...
Adrian, I think there is some confusion... Access to both the return and the data stacks is not by using @ and ! as the stacks are not located in addressable memory. Instead, the stacks are implemented in shift registers, see stack2.v and stack3.v for the code. In the processor Verilog code, there are dedicated datapaths for the stacks (see wires st0, st1 and st2 for data stack). In j1-universal-16kb-quickstore.v stores happen by additional logic (the ALU and data stack operation encoded is simply...
Hi Christopher, many thanks for your suggestions to improve the documentation of Mecrisp-Ice! I totally agree that it is time to tidy the files up. My preference would be a general readme in the top folder, a refreshed common glossary, and target specific readme files in the target folders that explain the extras that are not in the common glossary. After a lot of time, dust is settling now, and experience shows what extras are useful and included most often, to establish a "baseline feature set"...
Hi Christoper, many thanks for your suggestions to improve the documentation of Mecrisp-Ice! I totally agree that it is time to tidy the files up. My preference would be a general readme in the top folder, a refreshed common glossary, and target specific readme files in the target folders that explain the extras that are not in the common glossary. After a lot of time, dust is settling now, and experience shows what extras are useful and included most often, to establish a "baseline feature set"...
Matthias, I do not completely understand. I have been away and off the project for a while. There is one thing I fail to understand is where is the code that push and pop items on the stack and code for @ and ! It is probably because of my lack of knowledge of verilog. I am making a second stack.
Matthias, I do not completely understand. I have been away and off the project for a while. There is one thing I fail to understand is where is the code that implements @ and ! i.E how do I push and pop items on the stack. It is probably because of my lack of knowledge of verilog. I am making a second stack.
Here is a proposed README file. The idea is to simplify onboarding for newbies. Welcome to Mecrisp-ice. This is a family of 16, 32 and 64 bit forth processors based on the J1 stack machine. It supports the following boards. blackice2 hx8k-32bit tinyfpga-bx fomu icebreaker ulx3s fomu-ledcomm mch2022 ulx3s-usb-experimental hx1k mystorm hx8k nandland This repository includes: ready-to-fly versions of the J1 for many boards Search for your board name in this directory change into that directory, read...
The word list says "; Insight tools that are gone after NEW in targets with 8 kb only" But I could not find the word NEW defined anywhere. grep -r NEW ../* | grep .fs Well there is one in newyear.fs, but I do not think that is what we want.
And here is the original version of the Glossary so that it is easy to see the changes. Probably the file should be renamed to "glossary". Next up I have to do the more difficult problem of improving my understanding and the docs for the cross compiler. They say that Forth is read only. I think that is not quite true. I think it is really easy to understand what a Forth word does, but quite difficult to understand how it does it. And then there are a couple of words in there that I do not exactly...
Here are the words which need to be added to the glossary. buffer: ( u "<name>" -- ; -- addr ) delay: (u -- ) Wait so many clock ticks. digit digit? link@ nop now pause welcome</name> Attached is the edited page with the list of words. This board only supports posting single files, so in a moment, I will post the original version of the file, so that it is easy to see he diffs and edit it appropriately.
And here is the sorted word list, followed by the shell script which generated it. ! # #> #s ' ( (d.) (ud/mod) * / /mod + +! +loop , - -rot . ." .digit .r .s .x .x2 / /mod /string 0< 0<> 0= 0> 1+ 1- 2! 2 2/ 2@ 2and 2arshift 2constant 2drop 2drop 2droprdrop 2dup 2lshift 2nip 2or 2over 2rot 2rshift 2swap 2variable 2xor 3rd : :noname ; < <# <= <> = > >= >body >in >r ?do ?dup @ BUF BUF0 [ ['] [char] \ ] abort abs accept again ahead align aligned allot alu. and arshift base begin bic! binary bis! bl bounds...
On further thought, what I can do is to extract the list of words from the README, cross check it against the "words" command, and email you the resulting file. KISS. I also need to do the same for the words used in the cross compiler. That is much much harder to document. Better yet if you want I could slice the README into multiple files, put them all in a docs directory. And just have a reasonably short README file. What is your preference?
I would like to contribute to the Mecrisp-Ice documentation. 2nd Semester is over, mostly what is left is my thesis on a Forth CPU. It is easy for me to write in English. Would it be okay for me to create a Read The Docs site? Would you prefer for it to be under your name? Would it be okay to host it with git? That makes it easier for people to contribute. I see that source forge even syncs with github now. In other news: I expect to be at the SVFIG meeting in person next week. I really like Forth....
I would like to contribute to the Mecrisp-Ice documentation. 2nd Semester is over, mostly what is left is my thesis on a Forth CPU. It is easy for me to write in English. Would it be okay for me to create a Read The Docs site? Would you prefer for it to be under your name? Would it be okay to host it with git? That makes it easier for people to contribute. I see that source forge even syncs with github now. In other news: I expect to be at the SVFIG meeting in person next week. I really like Forth....
The Flipper Zero is an excellent portable tool for interaction (hacking) with access control systems. But the display, the buttons, LIPO (2.1 Ah), GPIO, BLE, SD-Card, RTC, etc. make Flipper Zero also an ideal tool for Forth programming on the go. If you want to use your Flipper Zero Tamagotchi for serious Forth programming see Mecrisp-Cube Flipper May the Forth Be With You! Peter
I wish to add words to the stack operations. But I wish to do this in the file j1-universal.quickstore.v. How do I do this and what other files need to be updated? You can add your new instruction to j1-universal-16kb-quickstore.v and then try it directly from Forth: juggler [ $7xxx , ] ; Note that you need to either use the Verilator target or compile a real bitstream to actually use the changed processor. For historical reasons most of the 16 bit targets do precompile their sources and emulate...
I wish to add words to the stack operations. But I wish to do this in the file j1-universal.quickstore.v. How do I do this and what other files need to be updated?
Hi - New to stellaris, built and installed Mecrisp Stellaris 2.6.5 on a stm32L432KC with RA enabled. Blinky works. After eraseflash (and following the directions in the VOC readme file), loading the file vis-0.8.4.2-mecrisp-stellaris.fs results in a complete system hang at line 791 \ ------------------------------------------------------------------------------ \ This extension must be compiled in FLASH. compiletoflash root-wordlist set-current hex <<-- hangs here during file load .. this is repeatable,...
Hi - New to stellaris, built and installed Mecrisp Stellaris 2.6.5 on a stm32L432KC with RA enabled. Blinky works. After eraseflash (and following the directions in the VOC readme file), loading the file vis-0.8.4.2-mecrisp-stellaris.fs results in a complete system hang at line 491 \ ------------------------------------------------------------------------------ \ This extension must be compiled in FLASH. compiletoflash root-wordlist set-current hex <<-- hangs here during file load .. this is repeatable,...
What's the current situation on using UART1? Is there any support for it, or do we need to manually configure the Pi Pico to do it? I currently have Mecrisp Forth (mecrisp-stellaris-2.6.5) running on a Pi Pico with an FTDI connecting it to my PC, so I can use it via TeraTerm, and a row of 8 different coloured LED I can control with it. My aim is to add a graphics terminal for it to control, via simple commands sent through a second UART. I've made a start with a 3.5" 480x320 TFT display shield, connected...
What's the current situation on using UART1? Is there any support for it, or do we need to manually configure the Pi Pico to do it? I currently have Mecrisp Forth (mecrisp-stellaris-2.6.5) running on a Pi Pico with an FTDI connecting it to my PC, so I can use it via TeraTerm, and a row of 8 different coloured LED I can control with it. My aim is to add a graphics terminal for it to control, via simple commands sent through a second UART. I've made a start with a 3.5" 480x320 TFT display shield, connected...
Hello Matthias, I tried to revive my old stm32f072b-discovery board and flashed it with the corresponding binaries from the stm32f072rb and stm32f072rb-ra folders. The images, one at a time, flashed and verified ok but I couldn't get the terminal response at all in both cases, neither on the PA2/PA3 nor PA9/PA10 pairs. The binaries from the corresponding same folders for the stm32f051 and stm32f051-ra work fawlessly on the same board on the PA9/PA10 pair as expected so the chip is healthy. Just letting...
Hello Matthias, I tried to revive my old stm32f072b-discovery board and flashed it with the corresponding binaries from the stm32f072rb and stm32f072rb-ra. The images, one at a time, flashed and verified ok but I couldn't get the terminal response at all in both cases, neither on the PA2/PA3 nor PA9/PA10 pairs. The binaries from the corresponding same folders for the stm32f051 and stm32f051-ra work fawlessly on the same board on the PA9/PA10 pair as expected so the chip is healthy. Just letting you...
Thank you, Matthias, It all kind of adds up and makes perfect sense to me. I asked because I haven't noticed anything particularly suggesting the significance of "analog" within the code. All clear now. BTW, I've found a simple explanation of the differences between X-Y move on analog vs digital oscilloscope here. Maciek
One more point: When jumping from point to point, it takes a little while for the capacitances to follow. On an analog scope, you get a faint glow connecting the points when set to very high brightness due to this, but on a digital scope you end up with a misplaced sample in between.
Hi Maciek, digital scopes mostly offer a XY-mode, too, and you can indeed watch the demos on your digital storage scope. But usually one gets artifacts due to the sampling nature of the digital scope or strange flickering. This is one of the rare cases in which the analog scope gives a much better looking result. I think you need a digital scope that simulates the decay of every single sample to get the effect right. The ones I tried simply collect samples over a predetermined time and then refresh...
Can anybody tell me why an analog oscilloscope is specificaly mentioned in these superior examples? Is the X-Y mode that is not offered on the common digital scopes or is that something else not so obvious at first like the record length on horizontal time base? I suspect the later but an informed answer would be very welcome. Thank you.
Hi Amar, I recommend reading https://mecrisp-stellaris-folkdoc.sourceforge.io plus a decent Forth online book so that you can help yourself with basic Forth issues. I recommend that you use compiletoram and just reset the target MCU when you encounter a compile problem or typo and then re-upload your fixed source. Only commit tested and working words to flash. Cheers, Terry
thank you very much for your respond some times we do some mistake on redefine old " word" tell me please how to forget? last one to the old "word" and to locate word ? on the end sorry for my bad programming on forth also to day i am trying to use" INIT " for closed program after do restart my system crashed on that i do re flashing my bluepill here is code: \ forth \ author mcse compiletoflash : INIT led13.init led13.on wait.1000 led13.off wait.1000 led13.on ; compiletoram regards eng-amar
thank you very much for your respond some times we do some mistake on redefine old " word" tell me please how to forget? last one to the old "word" and to locate word ? on the end sorry for my bad programming on forth also to day i am trying to use" INIT " for closed program after do restart my system crashed on that i do re flashing my bluepill here is code: \ forth \ author mcse compiletoflash : INIT led13.init led13.on wait.1000 led13.off wait.1000 led13.on ; compiletoram regards eng amar
thank you very much for your respond some times we do some mistake on redefine old " word" tell me please how to forget? last one to the old "word" and to locate word ? on the end sorry for my bad programming on forth also to day i am trying to use" INIT " for closed program after that my systim crash on that i do re flashing my bluepill here is code: \ forth \ author mcse compiletoflash : INIT led13.init led13.on wait.1000 led13.off wait.1000 led13.on ; compiletoram regards eng amar
Hi Amar, You're welcome, please see https://mecrisp-stellaris-folkdoc.sourceforge.io for more information about Mecrisp-Stellaris. We use "see" for disassembly of Forth words and it's installed in the bluepill diags. Try "see see" to disassemble 'see' . The forth stack is not dangerous at all, it's the heart of Forth and understanding stack operations is essential. Cheers, Terry
hello thankx very much for Bluepill Diagnostics i have test my bluepill the resut was successful and we have an original blueill . any way my programming language is c and c++ and i am new on forth . also i test blink and traffic word on forth by escom terminal in fact i found forth is very nice programming language as c and c++ . after read the faq the code will be 1% then c . i dont know if that true or false on that point i am starting on learning forth since one week later my qustion is . ? disasm...