Forum: Mikrocontroller und Digitale Elektronik Raspberry pi pico. Resetten wenn main.py im Flash ist. µPython


von Jens B. (dasjens)


Lesenswert?

Moin,

Wenn ich auf dem Pi pico, µPython, eine main.py drauf hab, wird die 
immer nach Reset abgearbeitet.
Wie kann ich das Teil neu Programmieren ohne immer nuke.uf2 drraufzu 
kopieren und alles neu zu installieren (libs/µPython)?
Auch den Run eingang auf 0V ziehen klappt nicht.

thnx

von Norbert (der_norbert)


Lesenswert?

In der main.py zuerst eine Abfrage auf irgend einen freien Pin. Wenn der 
zB. bei eingeschaltetem Pull-Down nach +3.3V gezogen wird, dann den Rest 
nicht ausführen.

von Jack V. (jackv)


Lesenswert?

Eigentlich ist das Ding noch immer über die serielle Schnittstelle 
ansprechbar, und das laufende Script lässt sich unterbrechen?

Ist mir eigentlich nur einmal passiert, dass das nicht möglich war und 
ich Micropython überschreiben musste – und da hab ich Dummsinn gemacht, 
sodass sich der μC festgelaufen hat. Seitdem hab ich am Start von 
main.py immer 2s Verzögerung, wodurch ich die Ausführung des Rests 
abbrechen kann, bevor es sich aufhängen kann.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ab und zu klappt auch ein einfaches Ctrl-C.

Jens B. schrieb:
> Wie kann ich das Teil neu Programmieren ohne immer nuke.uf2 drraufzu
> kopieren und alles neu zu installieren (libs/µPython)?

Libs auf den Pico ziehen? Das einzige, was man auf den Pico kopieren 
muss, ist das UF2 mit Micropython und keine Libs. Dann das gewünschte 
Python Programm kopieren, nachdem µPython auf dem Pico startet. Evtl. 
solltest du dir doch mal Thonny anschauen, das macht das Filehandling 
sehr einfach.

von Norbert (der_norbert)


Lesenswert?

Tja, wenn man an REPL nicht mehr heran kommt, dann wird's schwieriger.
1
#!/usr/bin/python
2
from machine import Pin
3
pin = Pin(16, Pin.IN, Pin.PULL_DOWN)
4
if pin.value():  # stoppt wenn Pin 16 auf +3.3V gezogen ist
5
    sys.exit()
6
del pin

: Bearbeitet durch User
von Jens B. (dasjens)


Lesenswert?

Hi,
Danke für die Antworten.
Mein Fehler, das passiert nur wenn ich beide Kerne am laufen habe in der 
main.py auf dem pi gespeichert.
Sonst geht run auf Low ziehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.