Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : PicoMite V5.09.00 release candidates
Page 8 of 13 | |||||
Author | Message | ||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
This is a fix that is already in my RC4 source - don't know when I did it. Just checked and RC3 appears to be correct unless someone can say different? |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Hi Peter, Yes, I can confirm that PicoMiteVGA V5.09.00RC4 works correct. If you want, I can check the RC3's also (I have 3 RC3's from different dates). Regards, Volhout P.S. Have you been working on other fixes that we could verify ? I have a few around the PIO assembler. This is the list I have compiled... - MATH WINDOW bug in conversion from float to integer (fixed in VGA test release) - PIO ASSEMBLE requires trailing space after word "pins" in MOV command - PIO ASSEMBLE "push noblock" compiles as code &h8020 (= "push block") - Request for feature ADC OPEN to start with GP28 (versus GP26) for GEEK use. - PIO ASSEMBLER only programs code in memory when "list" option is used (.end program list) - request for MATH POWER a(),factor,b() raises each element in in a() to the power "factor", writes to b(). - fix error message PIO WRITE (should say value 0...4294967295) - MATH M_MULT bug (some matrix cells are not updated when b() and c() larger in size than a()) -> fixed in RC4 (must be a VGA test release, since RC3 is the latest). EDIT: the RC3 on Geoff's website also works correct with MATH M_MULT, it is MMB4W and the 5.08.00 that show the problem. Edited 2024-06-03 22:51 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
homa Guru Joined: 05/11/2021 Location: GermanyPosts: 351 |
Where can I download the firmware V5.09.00 release candidate RC4? |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Firmware V5.09.00 release candidate RC4 is now available for download from https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip New: MM.INFO(SYSTEM I2C) returns I2C, I2C2, or Not set as applicable MATH POWER inarray(), power, outarray() raises each element in inarray() to the power defined and puts the output in outarray() Allows I2C transfers of greater than 255 when using an integer or float array as the source/destination Bug fixes: MATH WINDOW bug in conversion from float to integer PIO ASSEMBLE requires trailing space after word "pins" in MOV command PIO ASSEMBLE "push noblock" compiles as code &h8020 (= "push block") PIO ASSEMBLER only programs code in memory when "list" option is used (.end program list) fixes error message PIO WRITE Other: I can highly recommend the Raspberry Pi keyboard with the USB versions. You will see a spurious GAMEPAD when you connect (something to do with their hub implementation) as well as the keyboard but it has three USB ports so you can still connect a mouse and a real game controller with no other wiring. |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Hi Peter, Thank you very much for these fixes. I will use the new code immediately. I have one question about the RAM indicator when "memory" command is issued. My program excessively uses arrays, so the 64k in 98 variables is to be expected. 36k (must be 38k) is a frame buffer for use with LCD There is 60k free. What is these 60k? When I do a "new" total RAM is 100k. But the 60k is part of the sum 40%+22%+38%, but not part of the memory (64k+36k=100k) > memory Program: 21K (16%) Program (837 lines) 111K (84%) Free Saved Variables: 16K (100%) Free RAM: 64K (40%) 98 Variables 36K (22%) General 60K (38%) Free > new > memory Program: 0K ( 0%) Program (0 lines) 132K (100%) Free Saved Variables: 16K (100%) Free RAM: 0K ( 0%) 0 Variables 0K ( 0%) General 160K (100%) Free And YES, I am out of memory..... Volhout Edited 2024-06-04 05:08 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Hi Peter, Just to confirm your fixes: - PIO ASSEMBLER issues are fixed - MATH POWER works as expected - MM.INFO(system I2C) nice addition Thanks ! Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Ignore previous question about memory. I need glasses. PicoMite has 160k RAM, not 100k..... Volhout Edited 2024-06-04 05:53 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 2135 |
For the next manual:- Minor typo in MATH WINDOW Optionally, it can also return the minimum and maximum values found in the original data (“minin” and “minout”). Replace with:- (“minin” and “maxin”). |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
deleted Edited 2024-06-04 16:21 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Hi Peter, Just curious, is there any value I can get when I get an "out of memory" error. I have just spend 1 hour to save 2kbyte of data memory, and still have an out of memory error. I need to know how much I exceed the memory boundary. When it is just 2kb more, I can tune the code... If I need 10kb more, I need to give up on this approach, and re-think the project.... Another question: when I use local variables, is this memory freed up after exiting the SUB/FUNCTION ? Or is it still reserved (I moved DIM array(191) from main level into a SUB with LOCAL array(191) and hope to save 192*8=1536 bytes that are free at main level). I get the out of memory error after MATH M_MULT a(),b(),c() where the c()-array is 22kbyte in size, a() and b() are 6kbyte and 4kbyte). The MATH M_MULT is executed at main level. Volhout Edited 2024-06-05 00:11 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Harm Please try the attached (VGA and standard) - It should use less memory in M-MULT if I've got the logic right PicoMite.zip |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
@Peter, I have tested only VGA verions, but that one runs now without framebuffer. Enabling the famebuffer is an out-of-memory again. But VGA is fast enough. Since the PicoMite has more RAM available, I expect I can run the PicoMite with framebuffer (the LCD needs it). Thanks, this is a dear improvement! Should I check the heap for free RAM when running ? Volhout. PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Harm: One more tweak PicoMite.zip Please report |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Peter, I tried this last one (3:54pm) on the PicoMite (nonVGA) with ILI9341 LCD and it runs, including framebuffer. And what is more, I can add up to 32 kbyte additional (DIM arrays) and the code using MATH M_MULT still runs. This is a giant leap forward. Harm PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Peter, Not that I will not directly use it(*), but in my search for speeding up the display of the 2790 boxes I have to draw on screen, I considered using the BOX command with arrays. BOX x(),y(),w(),h(),1,c,f For 2790 boxes i would need an array x(2790) and y(2790) containing the top left corner coordinates of the boxes. But since all boxes would be same size, the creation of w(2790) and h(2790) would be an utter waste of RAM. Of coarse when the boxes are square you would only need 1 array used in both locations. Maybe that is an option on the future wish list for PicoMite. single integers for w and h, where x and y are arrays. Volhout (*) I can add 32k now with your second fix, but 2 arrays size 2790 are 44k. I still have to think how to solve that. But the BOX command using arrays is FAST (60ms versus 350ms in for next loops). So I may tinker with it, I may see ways to scale 3x and keep the update rate below 500ms.... Edited 2024-06-05 04:16 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Ignore Edited 2024-06-05 04:58 by matherp |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Short update Peter, The last (3.54pm) update also works on VGA. On VGA I can even enable framebuffer, and still have 2kb RAM free. So the total gain is 40+ kbyte RAM in MATH M_MULT. Thank you, Volhout Edited 2024-06-05 17:03 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Great - I'll change the box command to allow scalars for w and h but that will have to wait until the weekend |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4223 |
Thanks !!! I just tested it with plotting actual 2790 boxes size 5x5 pixels, and it brings the plotting time back from 350ms to 20.9ms. That is a factor of 15 faster (the 60ms mentioned earlier was an estimate based on smaller geometries, but this is the real thing). Essential is that I keep the array for color, since all boxes are plotted in different colors. I am currently squeezing evey kilobyte from the code, so I can use this. The reward is so huge, it is worth it. Volhout P.S. Much of the RAM is used for changing values (voltages, temperatures, colors) so it needs to be in RAM. The screen coordinates x() and y() for the boxes however are (once pre-calculated) static values. Is there a trick to read them from flash in the BOX command ? Store a variable/array in flash like the trick with the tiles/sprites in a csub. It is 44 kbyte total when stored as 64 bit integers (they could even be 9 bit since the largest value is 320 on x() and 240 on y(). Edited 2024-06-05 17:53 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Firmware V5.09.00 release candidate RC5 is now available for download from https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip |
||||
Page 8 of 13 |
Print this page |