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
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.
DetlefLeichtsinn 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
-----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------- -
tschoeatsch schrieb:
Noch was, ein pin zappelt ja auch nur, wenn man das durch Setzen von Registern enabled
muss als Ausgang definiert sein.
So z.B. : Config PORTB.3 = OUTPUT
Oder hab ich da was übersehen?
DetlefLeichtsinn ist kein Mut, Vorsicht keine Feigheit. -
Dekaman schrieb:
Oder hab ich da was übersehen?
Pluto25 schrieb:
DDRB ist FF
Raum für Notizen
-----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------- -
Pluto25 schrieb:
Pinb = 0
Pinc = 0
Pind = 0
Raum für Notizen
-----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------- -
Der timer_isr wird nicht aufgerufen. Ich denke er führt das Compare erst garnicht aus. Ich hatte den Pin freigeräumt um die Hardwarelösung ohne Interuppt zu haben Die Pin zu null soll sicherstellen das nicht irgendein interner widerstand eingeschaltet ist. Beim Output verschwendet er nur Strom und beim adc führt er zu falschen ergebnissen.
-
Dekaman schrieb:
Oder hab ich da was übersehen?
Ich denke, in dem Progamm steckt noch einiges Reparaturpotential.
Pluto25 schrieb:
anstelle &H $ zu schreiben hat bisher keine Probleme gemacht
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.
DetlefLeichtsinn ist kein Mut, Vorsicht keine Feigheit. -
Pluto25 schrieb:
Die Pin zu null soll sicherstellen das nicht irgendein interner widerstand eingeschaltet ist.
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 AhnungRaum 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? -
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. -
Pluto25 schrieb:
pinx=$ff
Pluto25 schrieb:
Eigendlich gibt doch immer irgendwo irgendwann eine Störung die ein Bit kippen könnte
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.
Was für Meldungen bekommst du?Raum für Notizen
-----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------- -
Auch kein Fehler. Aber jetzt bin ich total verwirrt in der m8def.dat stehen zwei Compare? lt datenblatt gibt es nur den oc2. Aber auch das dort in option4 beschiebene Compare_a sowie das compare_b aus option5 macht eine Fehlermeldung???????
Das mit den Pullups hab ich aus einem anderen Datenblatt dort wurde es so beschrieben. Ich suchs mal raus. -
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. -
Ich war zu langsam - Bisher nur im Simolator - Der lag eigendlich immer richtig.
-
Kannst du mal einen buzzer oder piezo an den Oc2-pin dran schnödeln und mal real probieren? Ich trau' dem Simulator nicht so rechtRaum 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
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 und Hölle .
Programme von 8 nach 88 , oder umgekehrt sind mit gaaaanz großer Vorsicht zu genießen !!!!
DetlefLeichtsinn ist kein Mut, Vorsicht keine Feigheit. -
Dekaman schrieb:
Ich glaube, mein Simulator simuliert , weil heut Samstag ist?
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:
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.