Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 06:37 28 Nov 2024 Privacy Policy
Jump to

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 : pico reserved pin on startup

Author Message
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 554
Posted: 11:34pm 27 Jul 2023
Copy link to clipboard 
Print this post

forget  it
Edited 2023-07-28 09:48 by Plasmamac
Plasma
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 11:53pm 27 Jul 2023
Copy link to clipboard 
Print this post

> option list
PicoMite MMBasic Version 5.07.06
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION AUTORUN ON
OPTION LCDPANEL ILI9488, LANDSCAPE,GP15,GP14,GP13
OPTION GUI CONTROLS 30
OPTION TOUCH GP12,GP11
GUI CALIBRATE 0, 3965, 3856, -1284, -851
OPTION SDCARD GP22
OPTION AUDIO GP0,GP1, ON PWM CHANNEL 0
>
Don't use these?
I had same error message. wanted adc and ili
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 554
Posted: 12:31am 28 Jul 2023
Copy link to clipboard 
Print this post


Print
For r = 0 To 34
On error skip
SetPin r,din
If MM.ErrMsg$ =""  Then
Print "Pin";r;
EndIf
Print MM.ErrMsg$
Next

Plasma
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2136
Posted: 01:57am 28 Jul 2023
Copy link to clipboard 
Print this post

for n=1 to 40 : ? n, MM.INFO$(PIN n) : next
1      DOUT
2      OFF
3      Invalid
4      OFF
5      OFF
6      OFF
7      OFF
8      Invalid
9      OFF
10     OFF: Boot Reserved
11     OFF: Boot Reserved
12     OFF: Boot Reserved
13     Invalid
14     OFF
15     OFF: Boot Reserved
16     OFF: Boot Reserved
17     OFF: Boot Reserved
18     Invalid
19     OFF: Boot Reserved
20     OFF: Boot Reserved
21     OFF: Boot Reserved
22     OFF
23     Invalid
24     OFF: Boot Reserved
25     OFF: Boot Reserved
26     OFF
27     OFF
28     Invalid
29     OFF: Boot Reserved
30     Invalid
31     AIN: Reserved for function
32     OFF
33     Invalid
34     OFF
35     Invalid
36     Invalid
37     Invalid
38     Invalid
39     Invalid
40     Invalid
>
Edited 2023-07-28 12:00 by phil99
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 554
Posted: 02:46am 28 Jul 2023
Copy link to clipboard 
Print this post

thanks
Plasma
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2136
Posted: 08:30am 28 Jul 2023
Copy link to clipboard 
Print this post

Something for the library?
LIST
Sub FreePins
 For n=0 To 29
  gp$ = "GP"+Str$(n)
  p = MM.Info(pinno gp$)
  pu$ = MM.Info(pin p)
  Print gp$, p,  pu$
 Next
End Sub

> freepins
GP0      1      OFF
GP1      2      OFF
GP2      4      OFF
GP3      5      OFF
GP4      6      OFF
GP5      7      OFF
GP6      9      OFF
GP7      10     OFF
GP8      11     OFF
GP9      12     OFF
GP10     14     OFF
GP11     15     OFF
GP12     16     OFF
GP13     17     OFF
GP14     19     OFF
GP15     20     OFF
GP16     21     OFF
GP17     22     OFF
GP18     24     OFF
GP19     25     OFF
GP20     26     OFF
GP21     27     OFF
GP22     29     OFF
GP23     41     DOUT
GP24     42     DIN
GP25     43     HEARTBEAT
GP26     31     OFF
GP27     32     OFF
GP28     34     OFF
GP29     44     AIN
>
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 09:15am 28 Jul 2023
Copy link to clipboard 
Print this post

Just bear in mind that the hardware pin number will only apply to an original PicoMite, whereas the GP number should be applicable to all RP2040-based systems. IMHO the use of hardware pin numbers should be discouraged.
Edited 2023-07-28 19:16 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4247
Posted: 09:17am 28 Jul 2023
Copy link to clipboard 
Print this post

hi phil,

Good idea about a library function. But think about variable useage.
If your library uses "n" then your program cannot use "n" as a different variable (float/string).

So invent variable names that are not incidentally used. Something like
"Internal_Lib_variable_n%"

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 10:36am 28 Jul 2023
Copy link to clipboard 
Print this post

Even better, make all library routines use local or declared variables unless they *have* to have a shared global, in which case it should be related to the name of the routine. e.g.

SUB swapvars(var_a, var_b)
 local var_c
 var_c = var_a
 var_a = var_b
 var_b = var_c
 g_swapvars_done = 1
END SUB

This is stupidly simplistic, but you get the idea? Also use STATIC variables where it's only a counter or something that nothing else will need access to. Try to sandbox every library routine as far as possible.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2136
Posted: 12:38pm 28 Jul 2023
Copy link to clipboard 
Print this post

OK, Mk2
Sub FreePins
 local n%, p%, gp$
 For n%=0 To 29
  gp$ = "GP"+Str$(n%)
  p% = MM.Info(pinno gp$)
  Print gp$, p%,  MM.Info$(pin p%)
 Next
End Sub
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 01:39pm 28 Jul 2023
Copy link to clipboard 
Print this post

That's useful Phil99. cheers

 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024