PWM Duty cycle auslesen?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,
    Seit mein Headset am PC kaputt gegangen ist, nutze ich jetzt den USB Adapter davon am Pi für Audio, läuft auch super und hat den Vorteil, dass ich endlich den PWM Pin nutzen UND Musik hören kann. Das klappt soweit auch ganz gut mit wiringpi den duty cycle zu setzen. Jetzt frage ich mich, wo der aktuelle duty cycle abgespeichert wird. Geht das überhaupt, sich den aktuellen Duty cycle anzeigen zu lassen? Was ich natürlich machen könnte, ist, den Wert bei jeder Änderung in eine Datei zu schreiben, aber das ist n hässlicher Workaround...
    Ich hab schon häufiger gelesen, dass in /sys/class/gpio Ordner für die einzelnen Pins vorhanden sein sollen?! Warum ist das bei mir nicht so? Muss ich dafür was einstellen?
    Viele Grüße

  • Irgendwie formulierst Du das ja recht lustig ;)
    Musik hören, dafür pwm mit entsprechendem "duty cycle". Sorry, finde ich echt amüsant.
    Oder schreibst Du dafür tatsächlich noch eigene Routinen? Dann Respekt!

  • Das Problem am Pi ist, dass man nicht gleichzeitig den Pin 18 auf PWM stellen und den Klinkenausgang benutzen kann. Jetzt habe ich die Boxen am USB und kann deshalb den PWM Pin auch im PWM Modus benutzen. Was ich zur Musik geschrieben hab, war aber nur Vorgeschichte. Also nochmal zum Klarstellen: Ich benutze den PWM Pin nicht für Audio :D
    Die Frage ist: Wenn ich Pin 18 als PWM Pin anspreche, wie kann ich den aktuellen dutycycle auslesen, zB aus einem anderen Skript?

    Einmal editiert, zuletzt von KrawallKurt (20. Juli 2014 um 02:13)


  • Das Problem am Pi ist, dass man nicht gleichzeitig den Pin 18 auf PWM stellen und den Klinkenausgang benutzen kann.


    Kann man schon, ob's sinnvoll ist, ist eine andere Frage - natürlich eher scherzhaft gemeint ;)


    Also nochmal zum Klarstellen: Ich benutze den PWM Pin nicht für Audio :D


    OK!


    Die Frage ist: Wenn ich Pin 18 als PWM Pin anspreche, wie kann ich den aktuellen dutycycle auslesen, zB aus einem anderen Skript?

    Ok, jetzt hab' ich's (hoffentlich) verstanden. ;)

    Ich glaube kaum, daß Du den eingestellten duty cyle (=Frequenz) als Kernelvariable bereitgestellt bekommst. Wenn, dann müsstest Du -sehr systemnah- den Wert des entsprechenden Registers auslesen und entsprechend aufbereiten.
    Aber warum - Du weisst ja, was Du eingestellt hast und kannst es zwischenspeichern. Der Einfachheit halber würde ich dafür eine temporäre Datei in /tmp/ anlegen oder wenn es auf speed ankommt (anderes script läuft parallel), dann wäre ein gemeinsamer Speicherbereich angesagt. Letzteres kann ich Dir auf die Schnelle hier aber auch nicht dokumentieren.

    Wenn es aber so ist, daß das andere Script immer parallel laufen muß, dann stellt sich natürlich die Frage, warum überhaupt 2 Scripts benötigt werden. Da wäre es viel besser, ein Programm daraus zu machen und dann mit threads zu arbeiten, da der gemeinsame Speicherberich so viel effizienter bereitgestellt werden kann!

    Gruß, mmi

  • Problem ist, dass das eine Skript zeitgesteuert laufen soll... hatte vor, das über cron zu regeln, aber hast du mich grad auf die Idee gebracht, mal den python scheduler auszuprobieren. Werde das heute oder morgen mal in Angriff nehmen, wenn ich Zeit dazu finde :)

    Nachtrag: Wenn ich so drüber nachdenke, gefällt mir das alles nicht. In Bezug auf Erweiterbarkeit ist das alles Müll, das so zu machen. Hab den Scheduler jetzt am Laufen, aber irgendwie bin ich mit der Lösung rein gar nicht zufrieden. Werde das vorerst wohl doch über ne Datei lösen. Falls jemand weiß, wie ich auf den aktuellen PWM dutycycle zugreifen kann, wäre mir das echt am liebsten

    Einmal editiert, zuletzt von KrawallKurt (20. Juli 2014 um 06:46)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!