Sound parallel zu anderen Aktionen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Pluto25 schrieb:

      der pin bleibt unverändert
      Wir sprechen aber hier von PB.3 ?
      Wenn sich am PB.3 was bewegen soll, muß man es dem Timer auch mitteilen.
      Vielleicht so:
      Config Timer2 = Timer , Prescale = 256 , Clear Timer = 1 , Compare = Toggle
      Ocr2 = xxx
      Enable Oc2
      On Oc2 Timer2_isr

      xxx ist der Vergleichswert, bei dem der Timer in die ISR geht, und wieder bei 0 anfängt.

      Detlef
      Leichtsinn ist kein Mut, Vorsicht keine Feigheit.
    • Meiner Meinung nach sollte das Zappeln ohne interrupt gehen. Wenn ich im DB lese, dann sind dafür die bit5 und 4 (COM2n: Compare Match Output) im TCCR2 Register auf bit5=0 und bit4=1 zu setzen,
      These bits control the Output Compare Pin (OC2) behavior. If one or both of the COM21:0 bits are set,
      the OC2 output overrides the normal port functionality of the I/O pin it is connected to. However, note that
      the Data Direction Register (DDR) bit corresponding to OC2 pin must be set in order to enable the output
      driver.
      Dann sollte der auf output gesetzte pin OC2 bei erreichen des compare-Wertes jeweils toggeln.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Dekaman schrieb:

      Oder hab ich da was übersehen?
      Ja, nachdem ich die Gurkenscheiben jetzt abgemacht habe, I can see clearly now a_30_7dc14a07

      Ich denke, in dem Progamm steckt noch einiges Reparaturpotential.

      Pluto25 schrieb:

      anstelle &H $ zu schreiben hat bisher keine Probleme gemacht
      Das mag ja sein, aber ich will es mal an einem Beispiel festmachen.
      Wenn ein nuschelnder Bayer einem Nordfriesen etwas mitteilen will, gibt es warscheinlich
      Verständigungsprobleme. Ebenso wahrscheinlich auch zwischen einem Dresdener und einem Kölner.
      Wenn aber beide Hochdeutsch sprechen, ist die Verständigung viel besser.
      Ist ein Programm also fehlerhaft, ist es besser, wenn man Hilfe benötigt, das Programm auch
      so zu schreiben, das alle es verstehen und lesen können. (Halt nach Lehrbuch)
      Bevor es Streit gibt, Personen und Landschaften sind zufällig und keiner Wertschätzung zugeordnet.

      Detlef
      Leichtsinn ist kein Mut, Vorsicht keine Feigheit.
    • Pluto25 schrieb:

      Die Pin zu null soll sicherstellen das nicht irgendein interner widerstand eingeschaltet ist.
      die pullups schaltet man aber mit dem Befehl portx.y=1 ein, bzw =0 ab. So zufällig wird da aber auch nix eingeschaltet :D
      Ich bin grad' beim Probieren mit dem Simulator, mit compare=toggle werden die bits so gesetzt, wie ich das aus dem DB gelesen hab' und der timer in den ctc-Modus gebracht. Soweit, so gut, warum jetzt OC2 sich im Simulator nicht rührt, da hab' ich jetzt auch grad' keine Ahnung a_27_b277ca12
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • pinx=$ff und Port=0 macht ihn zur Heizung? Bisher war ich zu schlampig den Watchdog zu nutzen und erstaunlicherweise ist bisher keiner "abgestürzt". Eigendlich gibt doch immer irgendwo irgendwann eine Störung die ein Bit kippen könnte . Es ist auch ein indiz für Programmfehler wenn dann plötzlich im simulator ein grünes Lämpchen angeht.
      Das mit dem $ hab ich hier gelernt sollte ich es besser lassen?
    • Pluto25 schrieb:

      pinx=$ff
      Ich kenn das jetzt nur so, dass man ein Eingangsregister liest und nicht beschreibt. Auf jeden Fall setzt man mit dem Eingangsregister keine pullups. Die setzt man erst, nachdem sicher ist, dass es Eingänge sind und das sind sie ja default, mit Portx

      Pluto25 schrieb:

      Eigendlich gibt doch immer irgendwo irgendwann eine Störung die ein Bit kippen könnte
      das mag schon sein, aber das kann man im Vorfeld nicht durch Programmcode verhindern.

      Pluto25 schrieb:

      Das hier :
      Config Timer0=timer, Prescale=64, Clear_timer=1, Compare = toggle

      ergibt seltsamerweise keine Fehlermelung. Timer0 kann kein Compare?
      Vielleicht muss es compare_irgendwas heißen. Jedoch führte alles was ich dort versucht habe zu Fehlermeldungen.
      ich bekomme mit timer2 auch keine Fehlermeldung.
      Was für Meldungen bekommst du?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Schau mal in den code-explorer vom bascom-editor: es gibt compare1a, compare1b und compare2.
      Jetzt noch mal zu dem (nicht)zappelnden pin, hast du das an der Originalschaltung ich Echt überprüft, oder nur im Simulator?

      Es gibt hier ja auch den thread
      Martinshorn (CTC)
      wo so ein sound erzeugt wird. Wobei die pins für den 'buzzer' beim Beispiel mit mega8/88 aus meinem Verständnis heraus nicht stimmen.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tschoeatsch ()

    • Keine Ahnung was ich da wo aufgeschnappt hatte nach den Tiny und auch mega Datenblättern hast Du recht die Pullups werden nicht mit pin beeinflusst es ist ein reines Leseregister.
      Ich hab das ganze mit der m88def für einen mega88 ausprobiert dort gibt es zwei compare. Aber auch das geht nicht. Keine Fehlermeldung register werden richtig gesetzt und dennoch compart er nicht. ?(
    • Kannst du mal einen buzzer oder piezo an den Oc2-pin dran schnödeln und mal real probieren? Ich trau' dem Simulator nicht so recht X/
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Kannst du mal einen buzzer oder piezo an den Oc2-pin dran schnödeln und mal real probieren? Ich trau' dem Simulator nicht so recht
      Ich glaube, mein Simulator simuliert a_144_c1e4404d , weil heut Samstag ist?
      Bei mir toggelt der Simulator auch nicht. Da bin ich etwas skeptisch. ?!?
      Also was richtiges an die Hardware dran und staunen.
      Noch was : Mega 8 und Mega 88 sind so unterschiedlich in ihrem Innenleben
      wie Himmel :saint: und Hölle :evil: .
      Programme von 8 nach 88 , oder umgekehrt sind mit gaaaanz großer Vorsicht zu genießen !!!!

      Detlef
      Leichtsinn ist kein Mut, Vorsicht keine Feigheit.
    • Dekaman schrieb:

      Ich glaube, mein Simulator simuliert , weil heut Samstag ist?
      Es wird einfach paar kleine Interferenzen in der Energieaura des Simulators geben. Es gab' ja eine Nahvorbeiflug eines Meteoriten, da kann das mal passieren. Ich persönlich werde mal das Umfeld mit einem Aufkleber am Monitor harmonisieren. Das Ergebnis kann ja leider etwas auf sich warten lassen, aber dann wird alles besser simuliert werden, sicher! Hm, an welcher Stelle jetzt am Monitor, rechts, wo die Register beim Simulieren angezeigt werden? Oh, Mist, alle Aufkleber pabben noch an den Bierflaschen, die ich beim letzten hardrock-Hören harmonisiert hab'. Da geh'n die doch so schwer ab...
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ich habe nicht alle Kommentare gelesen, vielleicht ist mein Post also überholt.
      Dein Programm aus Nr.13 funktioniert bzgl. Timer2.
      Es gibt eine Rechteck mit 50% DC an PB.3 aus, die Frequenz ist 120,1Hz.
      Da du CTC mit Prescale 64 bei 1MHz und Compare=64 machst, ist es rechnerisch genau was zu erwarten ist:
      1MHz/64/130=120,19 Hz.
      Nimm mal so ein abgespecktes Programm wie dieses:

      BASCOM-Quellcode

      1. $regfile = "m8def.dat"
      2. $crystal = 1000000
      3. $hwstack = 40
      4. $swstack = 16
      5. $framesize = 32
      6. Config Timer2 = Timer , Prescale = 64 , Compare = Toggle , Clear_timer = 1
      7. Compare2 = 64
      8. Do
      9. Loop
      10. End
      Das sollte genau das gleiche bewirken. Wenn das auch nicht geht, ist etwas an deiner HW oder du schaust auf den falschen Pin.

      Der Simulator zeigt keine Änderungen an den Pins über die OC Funktion, da die nicht über die Ausgangsregister gehen. Auch zeigt er keine Interrupts außer den Overflow.