Clock an Pin ausgeben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Tag

    Ich muss für ein Projekt eine Frequenz/Clock an einem Pin beliebigen I/O des Raspberrys ausgeben.

    Nun wie mache ich das am besten habe bis jetzt leider noch nichts gefunden.

    Bei AVR machte ich das jeweils via Timer.
    Es müssten 50Mhz sein.
    Und ich programmiere in C
    Danke schon mal für eure anregenden Gedanken.


  • was soll das für eine Frequenz sein? Rechteck oder Sinus? Welche Genauigkei soll sie haben?
    PWM fällt mir dazu ein ...

    wie kommst du auf PWM :mad_GREEN: klar ginge das, genau wie mit der Kneifzange eine Hose anziehen, man stellt die PWM auf Taktverhältnis 1:1 aber wozu ?

    es gibt doch die schöne SPI Takterzeugung, dort könnte man, aber der geht vermutlich nur dann raus wenn ein SPI Byte übertragen werden soll.

    Sonst ist es doch besser die passende LIB zu wählen wiringPI oder PIGPIO ? kenne deren NAmen nicht genau, die wo du immer von schwärmst.

    Dort einen passenden Interrupt erzeugen counter hochzählen und wenn der Counterstand zum Takt passt und den Pegel an einem Port un x-oren den Counter rücksetzen

    so mache ich dass am Atmel und so sollte es auch im PI laufen
    nur Vorteiler und Countzähler anpassen
    ich weiss nur noch nicht wie man im PI interrupt programmiert, aber das weisst du lieber -ds- ja

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hey jar, alter Brummbär ;) ...


    ...
    wie kommst du auf PWM :mad_GREEN: klar ginge das ...
    ...

    hm ... warum nicht ... SPI hatte ich aussen vor gelassen


    ...
    Sonst ist es doch besser die passende LIB zu wählen wiringPI oder PIGPIO ? kenne deren NAmen nicht genau, die wo du immer von schwärmst.
    ...

    pigpio ... meine Lieblingslib ... yessss :) ...
    oder die bcm2835 ...
    wiringPi eher nicht ... ich fürchte, die ist zu instabil.


    ...
    Dort einen passenden Interrupt erzeugen counter hochzählen und wenn der Counterstand zum Takt passt und den Pegel an einem Port un x-oren den Counter rücksetzen
    ...
    ich weiss nur noch nicht wie man im PI interrupt programmiert, aber das weisst du lieber -ds- ja
    ...

    jepp mein lieber Bärliner ;) ...
    aber so lange man nix genaues nicht weiss ...
    Kann ja auch sein, dass die Frequenz so genau sein muss, dass es auf dem RPi nicht machbar ist (wegen nicht realtime).

    Warten wir's ab,
    viele Grüsse Richtung Norden - so ganz grob mal ;) ,
    -ds-

  • [frozzel an]"jar" ist halt ein Hardwaremensch, da geht kaum was ohne Lötkolben und zusätzlicher Hardware[frozzel aus]
    Natürlich nur scherzhaft gemeint!

    Ausschliesslich mit Software und somit völlig umweltfreundlich: :thumbs1:

    Ich kann auch nur -einmal mehr- "pigpio" (in C programmiert) empfehlen. Klinkt sich in den DMA-Takt ein und liefert deshalb sehr präzise Ergebnisse.

    Echte Interrupts sind beim RPi so eine Sache, denn der Kernel unterstützt sie nicht in der Form wie von Microcontrollern gewohnt. Man könnte natürlich "am Kernel vorbei" programmieren und sich intensiv mit dem Broadcom SoC auseinandersetzen. Wäre für mich Zeitvergeudung, "pigpio" kann's, erst recht "schläfrige" 50 Hz. :D

    Gruß, mmi


  • hm ... wetterbedingter 1000er Teiler?
    50 MHz ;) ...

    Oh, sorry! Meinerseits wetter- und mitternachtsbedingter Aussetzer vermutlich! =(
    Dann hat "jar" natürlich gute Karten! :thumbs1:

    Ciao, mmi

  • Nachvollziehbar ;) ...
    nachdem wir derzeit sogar die Temperaturen in Fortaleza toppen (mein Bruder ist derzeit bei seinen Schwiegereltern) haben schaltet man doch gerne mal vom Megahertz- in den Hertz-Bereich runter :) ...

    Viele Grüsse auf die andere Seite des Weißwurscht-Äquators,
    -ds-

Jetzt mitmachen!

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