![]() |
Forum Index : Microcontroller and PC projects : PicoMite V6.00.02 release candidates - all versions
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
That is the same for all commands. The first parameter can never be optional - a limitation of the parser Sorry, another limitation. List PINS actually runs an internal Basic program which just lists all the pins. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
![]() 'PIO Configure pio, sm, clock, startaddress, 'sidesetbase, sidesetno, sidesetout, 'setbase, setno, setout, outbase, outno, outout, inbase, 'jmppin, wraptarget, wrap, sideenable, 'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir, 'joinrcfifo, jointxfifo, joinrxfifoget, joinrxfifoput PIO assemble 1 .program test .line 0 .wrap target Set pins,1 Set pins,0 .wrap .end program SetPin gp45,pio1 PIO set base 1,16 PIO configure 1,0,1000000,,,,,gp45,1,1,,,,,,Pio(.wrap target),Pio(.wrap) PIO start 1,0 Do Loop |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2927 |
Is it an easy thing to do to include a ‘Press any key …’ when the listing reaches the bottom of the screen? With a RP2350B, the first lot of pins in the list ‘disappear’ from view (ie to behave like ‘LIST’ does when listing a long program. SORRY - ignore (just seen your last few posts in which you make reference to this ![]() Edited 2025-03-24 02:37 by WhiteWizzard |
||||
dddns Senior Member ![]() Joined: 20/09/2024 Location: GermanyPosts: 259 |
First time I tried VGA..maybe a noob comment: > option list PicoMiteVGA MMBasic RP2040 Edition V6.00.02RC6 OPTION KEYBOARD US OPTION CPUSPEED (KHz) 252000 OPTION RESOLUTION 640x480 > > option cpuspeed 378000 Error : Invalid Option > option cpuspeed 315000 Error : Invalid Option > option widescreen 720 Error : Invalid Option And a wish: Would it be possible to make the "colour map" command available in all versions? Edited 2025-03-24 18:43 by dddns |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
Hi The RP2040 only supports 640x480 (mode 1) and 320x240 (mode 2), no widescreen 720. In the new code, the OPTION CPUSPEED has disappeared. This will be in the new manual. Use OPTION RESOLUTION 640,315000 or OPTION RESOLUTION 640,378000 Apparently this was usefull for the RP2350 that has far more complex relation between resolution and cpuspeed with all these HDMI resolutions. But it breaks with the old OPTIONS. Volhout Edited 2025-03-24 19:10 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
phil99![]() Guru ![]() Joined: 11/02/2018 Location: AustraliaPosts: 2415 |
Everyone is a 'noob' with this version. Found it on page 2 of this topic. OPTION RESOLUTION 640, 378000 'sets the firmware to run at 378MHz - 640x480 refresh rate 60Hz |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
@phill, Agree..things that have been the same for 3 years, are changing now. So yes, I am a noob nowadays. It seems Peter has also implemented the new PIO state machine init. I hope parallel to the old one, this new command, with so many options will have me study how many comma's I need to add to get WRAP_TARGET or shift-direction at the right place. Volhout Edited 2025-03-24 19:18 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7499 |
@ddns VGA has a colour map that is fixed by the values of the resistors used. Basically the pins put out a binary value from 0 to F and the resistors convert it into colour or greyscale or whatever. You can't choose colours. Is that what you meant? TBH, apart from the simplicity of the hardware, VGA hasn't really got any advantage over DVI/HDMI on the PicoMite now. I like it because I can see to solder the connectors with increasingly shaky hands and there are less resistors to find space for. :) . Edited 2025-03-24 19:21 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
phil99![]() Guru ![]() Joined: 11/02/2018 Location: AustraliaPosts: 2415 |
Yes, with VGA the closest I could get was plug-in resistor modules to get RGB121, RGBI and greyscale. Then you need to pre-process images to compensate for the firmware codec only outputting RGB121. |
||||
dddns Senior Member ![]() Joined: 20/09/2024 Location: GermanyPosts: 259 |
Many thanks..this was it. Setting it to 315MHz works as well. But still, the announcement post says: RP2040 VGA VERSIONS OPTION CPUSPEED 252000/315000/378000 'NB: not available when widescreen mode enabled OPTION WIDESCREEN 720/OFF Me too :) ..it was a test setup |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
That was 2 weeks ago. Peter has a fast pace in development. In the company I work for they use alpha to make big changes (like SDK changes, new commands, etc..) then beta, in which they fill in the gaps left in alpha. And finally RC's (release candidates) in which they can only fix bugs, and definitely can not change commands anymore. Because RC's are used by other departments/customers to base the applications on. That is not how Peter works, he is using RC's to harmonize commands as well. To either get them closer to CMM2, or make them more logical to use. To be honest, the relation between CPUSPEED and RESOLUTION is prone to cause problems when programmed independently. So this is a logical change. Also: OPTION WIDESCREEN 720 does not exist in 2040 VGA release RC6. Volhout Edited 2025-03-24 19:43 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
dddns Senior Member ![]() Joined: 20/09/2024 Location: GermanyPosts: 259 |
Thanks Volhout. This was no criticism but more to explain myself ;) This is the answer to my questions.. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
Not true OPTION RESOLUTION 720 works on the RP2040 VGA, mode 1 (720x400) and mode 2 (360x200) ![]() Edited 2025-03-24 20:25 by matherp |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
Thanks, OPTION WIDESCREEN 720 has changed to OPTION RESOLUTION 720. I am a noob. Volhout PicomiteVGA PETSCII ROBOTS |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7499 |
Viva la resolution! :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
V6.00.02RC7 is available on https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip Bug fix Fixes a lockup when too many labels are specified in a program (or a loaded txt file!!!), will now delete the program New Commands LIST VARIABLES 'does what it says Full support for PIO on the RP2350B PIO instructions can only address 32 pins. The system allows these to be pins 0-31 or pins 16-47. This is configured using PIO SET BASE pio , 0 or 16 Note that this configuration must be set before configuring a state machine and it applies to all the state machines for that PIO. The command can not be used on the RP2040 and only zero can be set on the RP2350A. In all cases the default is 0 on reset. As far as I can tell PIO SET BASE will only be reset on CPU reset unless done explicitly using the PIO SET BASE command. There is now a new command for configuring a state machine. PIO INIT is deprecated but will be left available for the moment but it doesn't and can't work for pins 32-47 on the RP2350B PIO Configure pio, sm, clock [,startaddress] [,sidesetbase] [,sidesetno] [,sidesetout] [,setbase] [,setno] [,setout] [,outbase] [,outno] [,outout] [,inbase] [,jmppin] [,wraptarget] [,wrap] [,sideenable] [,pushthreshold] [,pullthreshold] [,autopush] [,autopull] [,inshiftdir] [,outshiftdir] [,joinrxfifo] [,jointxfifo] [,joinrxfifoget] [,joinrxfifoput] The parameters in this command are essentially the same as you would use in the PIO INIT command plus the helper functions PINCTRL, SHIFTCTRL and EXECCTRL but combined into a single command. This is required because the sdk does some very clever processing behind the scenes to handle the RP2350B sidesetbase, sidebase outbase, inbase and jmppin are pin definitions. You can specify these as either a GPno or a pin number (e.g. GP3 or 5). In all cases specify the actual pin. So if PIO SET BASE is set to 16 for that PIO then values GP16 to GP47 are valid. If PIO SET BASE is not set or is set to 0 then pins GP0 to GP31 are valid.They all default to the base set except jmppin (defaults to -1) which needs to be explicitly set if you want to use a jmppin as this triggers setting the required status bit clock is the desired PIO clock speed in Hz startaddress is the PIO statement that will start execution - defaults to 0 sidesetno, setno and outno specify the number of pins that can be used for those functions - default to 0 sidesetout, setout and outout specify if those pins should be configured as outputs (1=yes, 0=no) - default to 0 wraptarget and wrap are in the range 0-31 and default to 0 and 31 inshiftdir and outshiftdir default to 1 - shift out of output shift register to right and shift input shift register to right (data enters from left). All other parameters are booleans that can enable a specific function - 1 to enable 0 to disable - all default to 0. Simple example: 'PIO Configure pio, sm, clock, startaddress, 'sidesetbase, sidesetno, sidesetout, 'setbase, setno, setout, outbase, outno, outout, inbase, 'jmppin, wraptarget, wrap, sideenable, 'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir, 'joinrxfifo, jointxfifo, joinrxfifoget, joinrxfifoput PIO assemble 1 .program test .line 0 .wrap target Set pins,1 Set pins,0 .wrap .end program SetPin gp45,pio1 PIO set base 1,16 PIO configure 1,0,1000000,,,,,gp45,1,1,,,,,,Pio(.wrap target),Pio(.wrap) PIO start 1,0 Do Loop Although the PIO CONFIGURE command has many parameters, it is very easy to use if you adopt this simple approach. Copy the comment lines in the example into your program. For each parameter substitute your required value or delete the parameter leaving the commas intact Once all substitutions are done delete any trailing commas Then assuming the line will be too long for the editor delete the CRs one by one starting at the end of the second last line and moving upwards. In this way you will have a valid command that is easy to input and edit. |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 3998 |
Groan. John |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
@Peter, 1/ I have no idea why but it feels like RC7 does not allow double use of pins. Run attached on 2040 pico non VGA. 2/ In the definition, the "side_set_pindir" bit is missing. For now I am back on RC6 that does everything right. Why could you not have waited for 6.00.03.?? I do not have the energy anymore to keep up. Remember why you did not pursue PiCromite anymore ? Constant changes in the SDK. For me in person MMBasic is the SDK, and I have ran out of energy to keep up. Sorry. I hope others take over. I will keep 5.09.00rc5 and 6.00.02rc6 as gold releases, and will wait for the official release. Then decide if it is good enough for me. Or stay with the RC6. fc2_v05_new_asm_02_rc7.zip Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10064 |
2/ In the definition, the "side_set_pindir" bit is missing. Oops documentation error as usual PIO Configure pio, sm, clock [,startaddress] [,sidesetbase] [,sidesetno] [,sidesetout] [,setbase] [,setno] [,setout] [,outbase] [,outno] [,outout] [,inbase] [,jmppin] [,wraptarget] [,wrap] [,sideenable] [,sidepindir] [,pushthreshold] [,pullthreshold] [,autopush] [,autopull] [,inshiftdir] [,outshiftdir] [,joinrxfifo] [,jointxfifo] [,joinrxfifoget] [,joinrxfifoput] 'PIO Configure pio, sm, clock, startaddress, 'sidesetbase, sidesetno, sidesetout, 'setbase, setno, setout, outbase, outno, outout, inbase, 'jmppin, wraptarget, wrap, sideenable, sidepindir, 'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir, 'joinrxfifo, jointxfifo, joinrxfifoget, joinrxfifoput I'm not sure what I'm looking for in your example. Please explain and I'll see if there is an issue. Are you saying the PIO INIT version no longer works? That should function unchanged Edited 2025-03-25 00:39 by matherp |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4854 |
The PIO INIT version works. The PIO CONFIGURE version complains about using pins double. The old INIT is commented out, but there for reference. I tried to make the Configure work. It errors with pin already used. Volhout p.s. in the old helpers the order was [sidepindir],[sideenable]. In Configure the order is swapped. That is fine, just wanted to tell you. PicomiteVGA PETSCII ROBOTS |
||||
![]() ![]() ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |