- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Python genaue Möglichkeit für µs Sleep

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9

    Python genaue Möglichkeit für µs Sleep

    Anzeige

    Praxistest und DIY Projekte
    Hallo Forum,

    heute sind endlich meine DS1820 1Wire Sensoren Muster angekommen (Muster sind schon was feines....spart man super viel Geld mit ^.^).
    Nun wollte ich 1Wire per Python realisieren und habe dafür folgenden Code:

    Code:
    import RPi.GPIO as GPIO
    import time
    import os
    from pizypwm import *
    
    
    # Kommandos
    Convert = 0x44
    Read = 0xBE
    Write = 0x4E
    Copy = 0x48
    Recall = 0xB8
    Read_Power = 0xB4
    
    
    # Datenpin
    Data_Out = 7
    
    
    # Pin 4 als Ausgang deklarieren
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(Data_Out, GPIO.OUT)
    GPIO.output(Data_Out, True)
    
    
    def Send_Data(Daten):
    	
    	# Umwandeln in einen Binaerstring
    	Dual = bin(Daten)
    	Dual = Dual[2:10]
    	
    	# Binaerstring ausgeben
    	for Stelle in range(len(Dual)):
    		if Dual[Stelle] == "1":
    			GPIO.output(Data_Out, False)
    			time.sleep(1.0/1000000.0)
    			GPIO.output(Data_Out, True)
    		else:
    			GPIO.output(Data_Out, False)
    			time.sleep(60.0/1000000.0)
    			GPIO.output(Data_Out, True)
    	
    
    
    while True:
    	Send_Data(Read_Power)
    	time.sleep(1)
    Allerdings zeigt mir mein Oszi zwischen den High Pegeln eine Zeit zwischen 150µs - 200µs an (was vieeeeeeeeel zu viel ist).....die Zeit zwischen High Pegeln soll bei einer "1" 1-15µs und bei einer "0" 60-120µs betragen...
    Kennt jemand eine Möglichkeit dies vernünftig zu realisieren?
    Danke schon mal!
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Nicht mit Phyton. Die Sprache ist halt nicht Hardwarenahe. Du könntest mal versuchen den Kernel mit dem PREEMPT Flag zu kompilieren, ansonsten musst du auf sowas wie Xenomai und C zurückgreifen. Weiß nicht, ob sich für Raspian(?) da Unterstützung da ist, einzukompilieren.
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hab eventuell eine andere Möglichkeit gefunden...muss ich mal probieren
    Und ja C-Code einkompilieren soll gehen.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Naja mit einkompilieren meinte ich den Kernel selbst und mglw. teile des RootFS selbst zu kompilieren.
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Jetzt ist der richtige Zeitpunkt gekommen, einen kleinen µC hinter den RPi zu schalten

    Und im ernst, du kannst im Userspace nicht exakt ein paar µs warten, du wirst immer "mindestens" die Zeitspanne warten. Selbst wenn dein sleep exakt [1] solange ausgeführt wird, dann wird dir der Scheduler ein Strich durch die Rechnung machen. Nach meinen Beobachtungen liegen realistische Wartezeiten, auch im Kernel, eher im Millisekundenbereich.

    [1] http://www.kernel.org/doc/Documentat...s/hrtimers.txt

    - - - Aktualisiert - - -

    Jetzt ist der richtige Zeitpunkt gekommen, einen kleinen µC hinter den RPi zu schalten

    Und im ernst, du kannst im Userspace nicht exakt ein paar µs warten, du wirst immer "mindestens" die Zeitspanne warten. Selbst wenn dein sleep exakt [1] solange ausgeführt wird, dann wird dir der Scheduler ein Strich durch die Rechnung machen. Nach meinen Beobachtungen liegen realistische Wartezeiten, auch im Kernel, eher im Millisekundenbereich.

    [1] http://www.kernel.org/doc/Documentation/timers/hrtimers.txt

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    ich habe gesehen, dass es sowieso ein Update für einen 1Wire Treiber gibt, den man dann wohl einfach mit "file" etc. benutzen kann....
    Aber da muss ich mal schauen wie das geht....im Moment klappt das noch nicht so ganz.
    Ansonsten lagere ich die Kommunikation mittels 1Wire auf einen PSoC aus.....
    Wollte da heute eh noch eine einstellbare Hardware-PWM + ADC und evtl. DAC an mein Pi anschließen und testen (werde es dann auch hier ins Forum / auf meine HP schreiben).
    Hatte halt gehofft ich könnte schnell mal einen 1Wire Sensor anschließen und testen aber da gibt es leider doch das ein oder andere Problem
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. rpyutils 0.1: Loader & Term in python für linux
    Von karmic_koala im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 19.03.2019, 01:14
  2. Suche Serviceleistung Python-Programmierung für Raspberry Pi
    Von Raspy im Forum Jobs/Hilfen/Stellen - Gesuche und Angebote
    Antworten: 0
    Letzter Beitrag: 01.09.2012, 10:23
  3. [ERLEDIGT] Genaue Zeitmessung für SRF05
    Von RobotMichi im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 23.04.2011, 13:26
  4. Andere Möglichkeit für Servoansteuerung?
    Von easyprivate im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 03.09.2008, 18:20
  5. [ERLEDIGT] Bezugsquelle für genaue Platinenfräse?
    Von im Forum Mechanik
    Antworten: 8
    Letzter Beitrag: 17.11.2004, 12:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests