User Tools

Site Tools


module:micropython:esp32checkthreading

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
module:micropython:esp32checkthreading [2021/12/08 13:02] omdevelopmodule:micropython:esp32checkthreading [2022/09/13 11:58] (current) – external edit 127.0.0.1
Line 16: Line 16:
  
 ===== Benutzung ===== ===== Benutzung =====
-Beispiel für die Einbindung der MicroPython-Library **Math.py** :+Beispiel für die Einbindung der MicroPython-Library **Thread.py** :
 <code python> <code python>
 # #
-def Add(a, b): +import _thread
- return a + b +
-+
-def Sub(a, b): +
- return a - b+
 # #
 +class CThread():
 +  #
 +  def __init__(self, threadid, onexecute):
 +    self.ID = threadid
 +    self.OnExecute = onexecute
 +    self.IsBusy = False
 +    return
 +  #
 +  def Start(self):
 +    self.IsBusy = True
 +    _thread.start_new_thread(self.OnExecute, [self])
 +    return
 +  #
 +  def Abort(self):
 +    self.IsBusy = False
 +    return
 +  #
 </code> </code>
-Wichtig: Die Library muss im FileSystem des MicroControllers vorhanden sein!+Wichtig: Die Library **Thread.py** muss im FileSystem des MicroControllers vorhanden sein!
  
-Aufrufendes Programm **Esp32CheckMath.py** :+Aufrufendes Programm **Esp32CheckThreading.py** :
 <code python> <code python>
 # #
-import Math as MAT+import time 
 +
 +import Thread 
 +
 +#----------------------------------------- 
 +def CBOnExecute(thread): 
 +  print('CBOnExecute[{}]: begin'.format(thread.ID)) 
 +  I = 0 
 +  while (thread.IsBusy): 
 +    I += 1 
 +    print("CBOnExecute[{}]: Hello({})!".format(thread.ID, I)) 
 +    time.sleep(1) 
 +  print('CBOnExecute[{}]: end'.format(thread.ID)) 
 +
 +#----------------------------------------- 
 +if ('__main__' == __name__): 
 +  print('*** Esp32CheckThreading: begin'
 +  T = Thread.CThread('T1', CBOnExecute) 
 +  T.Start() 
 +  time.sleep(5) 
 +  T.Abort() 
 +  time.sleep(5) 
 +  print('*** Esp32CheckThreading: end')
 # #
-print('3 + 5 = {}'.format(MAT.Add(3, 5))) 
-print('3 - 5 = {}'.format(MAT.Sub(3, 5)))  
 </code> </code>
  
 Run-Ausgabe im Terminal: Run-Ausgabe im Terminal:
 <code> <code>
->>> Running ..\Esp32CheckMath.py +>>> Running ..\Esp32Threading.py 
->>>  +>>> 
-3 + 5 = 8 +>>> *** Esp32CheckThreading: begin 
-= -2+CBOnExecute[T1]: begin 
 +CBOnExecute[T1]: Hello(1)! 
 +CBOnExecute[T1]: Hello(2)! 
 +CBOnExecute[T1]: Hello(3)! 
 +CBOnExecute[T1]: Hello(4)! 
 +CBOnExecute[T1]: Hello(5)! 
 +CBOnExecute[T1]: end 
 +*** Esp32CheckThreading: end
 ♦♦> ♦♦>
 MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32 MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32
Line 52: Line 92:
 ===== Version ===== ===== Version =====
  
-{{:module:micropython:2112081148_esp32checkmath_01v02.zip | 2112081148_Esp32CheckMath_01v02.zip}} \\ +{{:module:micropython:2112081352_Esp32CheckThreading_01V01.zip | 2112081352_Esp32CheckThreading_01V01.zip}}
-{{:module:micropython:2112062054_esp32checkmath_01v01.zip | 2112062054_Esp32CheckMath_01v01.zip}} +
- +
-===== ===== +
- +
- +
- +
- +
  
 ----- -----
module/micropython/esp32checkthreading.1638964960.txt.gz · Last modified: 2021/12/08 14:02 (external edit)