- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 48

Thema: Glockenschlag erzeugen

  1. #31
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Anzeige

    E-Bike
    Danke Sprinter, schön, daß Du mir antwortest...
    Ey Sebastian, du bekommst gleich nen Watschen von mir!

    Zugegeben, mir gefällt es auch nicht...
    oder verstehe ich das Dattenblatt falsch ?
    The TOV2 bit is set (one) when an overflow occurs in Timer/Counter2.TOV2
    is cleared by hardware when executing the corresponding interrupt Handling Vector.Alternatively,TOV2 is cleared by writing a logic one to the flag
    Naja, dann dachte ich mir, da ich keinen Interrupt habe, nutze ich halt dieses Alternatively...

    Ist das jetzt falsch ?

    oder meinst Du Dein Zitat
    TIFR = 1<<TOV2; // sonst löschen wir alles (TOV2 ist eh gesetzt)
    Hau mich nicht [-o< ich habe es doch verODERt ...

    Am sonsten vielen Dank, ich habe mir das Anfangs so gedacht mit 200/4 dann halt Verhältnis 1:50, ich glaub Heut(Gestern) ist(war) nicht mein Tag...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #32
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Für dieses Beispiel ist es egal, wie du an TIFR ran gehst.
    Sobald du in TIFR an eine Stelle eine 1 schreibst, wird dieses Bit gelöscht. Mit einem |= wirst du also *alle* 1-Bits löschen! Wenn nur Timer2-Overflow ne Rolle spielt, ist es egal. Aber wenn du mehrere Timer oder andere Timer-Ereignisse hast, suchst du dir womöglich den Wolf, warum (scheinbar) Timer-Ereignisse verloren gehen...

    TIFR kannst du ebenso löschen mit

    TIFR = TIFR; ...

    Auf TIFR sollte man daher nie mit |= zugreifen, da das alles löscht. (Für INT-Flags gilt ähnliches)

    Der Code in dem while schein ok.

    Ich war halt nicht sicher, wie die Priorität der Operatoren in TIFR & 1<<TOV2 ist , also ob das ein
    (TIFR & 1)<<TOV2 ist oder ein TIFR & (1<<TOV2). Es ist zum Glück letzteres. Damit können die Klammern tatsächlich entfallen.

    Die 7 für fak hab ich einfach so gewählt, hätte auch 42 sein können. Mal rumspielen, was besser tönt. Die ">> 7" muss natürlich bleiben und hat nix damit zu tun.
    Disclaimer: none. Sue me.

  3. #33
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Hallo,

    Das ist wirklich interessant, mit den Interruptsflags, ich hab mir bis jetzt keine Gedanken darüber gemacht, weil ich sonst immer ISR benutze und da werden sie ja automatisch gelöscht.

    Soll ich das jetzt als Fallstricke eingliedern ?
    Bei Assembler hätte ich sbi benutzt, hätte es die gleichen Auswirkungen gehabt ?
    TIFR = TIFR leuchtet ein ich schreibe eine eins in TOV2 und belasse den Rest beim altem.
    Ich habe es gerade ausprobiert
    TIFR = TIFR; klappt, wenn man nichts macht bleibt das Programm hängen.

    Man lernt ja nie aus...

    Damit können die Klammern tatsächlich entfallen.
    Wommt ich sagen muß mit Klammern wäre es eleganter gewesen.
    Ich meine in K&R gelesen zu haben daß << >> die höchste Priorität bei den Bitoperationen haben

    Am sonsten klappt es jetzt ganz gut jetzt muß ich noch die Hüllkurve dazubasteln, das dürfte wohl das kleinste Problem sein (hoffe ich).

    Danke nochmals für Deine Hilfe

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  4. #34
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von ATmega8
    Some of the Status Flags are cleared by writing a logical one to them. Note that the CBI and SBI instructions will operate on all bits in the I/O Register, writing a one back into any flag read as set, thus clearing the flag. The CBI and SBI instructions work with registers 0x00 to 0x1F only.
    CBI und SBI sind read-modify-write Befehle. D.h. sie Lesen das SFR, fummeln das Bit rein und schreiben es wieder. SBI sollte also ebenfalls *alle* Flags löschen. Getestet hab ich es allerding nicht. Ich verwende TIFR/GIFR = Und muss mir keine Gedanken drum machen. Auch nicht darum, ab die auf einem anderen Derivat bitadressierbar sind oder nicht.

    AVR ist eine 8-Bit Architektur mit 8-Bit Anbindung der Peripherie (SFRs). Ein SBI/CBI muss sich dieses 8-Bit Bus' bedienen. Es gibt keinen 1-Bit-Bus zum bitadressierbaren SFR-Bereich.
    Disclaimer: none. Sue me.

  5. #35
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    So, ich habe jetzt etwas weiter gespielt, im Anhang mein Ergebnis.
    Noch weit von einer Glocke entfernt, aber wie heißt es so schön, man sollte immer kleine Brötchen backen
    Angehängte Dateien Angehängte Dateien
    Software is like s e x: its better when its free.
    Linus Torvald

  6. #36
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Hallo Sebastian,
    Gratulation zum ersten "Glockenton" ! Der klingt ja doch auch schön sauber, was hast Du denn für einen Tiefpass dahinter ?

    Der Lapsus mit TOV und TIFR ist mir doch glatt auch unterlaufen, aber es hat ja trotzdem funktioniert. Hier mein Orginalcodeausschnitt für den Attiny13:

    while (!(TIFR0 & (1 << TOV0)));
    TIFR0 = (1 << TOV0); // clear PWM overflow flag
    OCR0A=k;

    Wobei es mir scheint als wenn TIFR=TIFR; auch keine wirklich saubere Lösung ist, wie mir scheine will: Ist es nicht so, dass wenn andere Flags im TIFR gesetzt sind, diese beim Selbskopieren auch gelöscht werden?

    Gruss,
    stochri

  7. #37
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Und hier noch der neueste Ton aus den Stochri-Glockenton-Forschungslabors.

    Diesmal mit Matlab erzeugt, nachdem ich einige Glockentonpapers im Internet überflogen habe. Es ist wirklich unglaublich, was da an Literatur existiert.

    Ob ich den Ton in einen Attiny13 reinkriege, weiss ich noch nicht, aber mit einem 16Mhz oder 20 Mhr getakteten Atmega8 müsste es eigentlich gehen.
    Angehängte Dateien Angehängte Dateien

  8. #38
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Hallo Stochri,

    schön, daß Du Dir auch Gedanken um die Glocke machst

    Ter Ton ist schon sehr gut (auf jedem Fall eine Glocke), die errinert aber irgendwie an eine kleine Uhr und nicht eine 2m große Glocke...

    Die Aufgabe ist ( zumindest für micht ) ziemlich schwer...
    Vielleicht kannst Du mir bitte kurz erklären, wie Du das mit der Addition programmtechnisch machst... keinen Code, nur kurz den Verlauf erklären, bitte

    Ich möchte es schon in einen Tiny reinkriegen, nur leider haben die keinen mul; bin schon am rumprobieren wie ich die Multiplikation ohne mul hinkriege aber egal wie man es nicht dreht und wendet gehen da ziemlich viele Takte drauf.

    Wobei es mir scheint als wenn TIFR=TIFR; auch keine wirklich saubere Lösung ist, wie mir scheine will: Ist es nicht so, dass wenn andere Flags im TIFR gesetzt sind, diese beim Selbskopieren auch gelöscht werden?
    Das ist auch wieder wahr...
    Es kommt zwar nicht oft vor, daß mehr als 1 Flag gesetzt ist, aber ausschliessen kann (darf) man das nicht.

    Fazit:
    Benutzen wir brav die Interrupts, dann braucht man sich keine Sorgen um sowas zu machen

    EDIT:

    Hab noch den Tiefpass vergessen

    10 k + 2µ hat mir am besten gefallen
    Software is like s e x: its better when its free.
    Linus Torvald

  9. #39
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    der Ton ist schon sehr gut (auf jedem Fall eine Glocke), die errinert aber irgendwie an eine kleine Uhr und nicht eine 2m große Glocke...
    Du meinst aber keine Armbanduhr oder? Für mich klingt die Glocke am ehesten wie aus einer Standuhr, oder so ähnlich. Obwohl ich meine, dass manche kleinen Kirchenglocken auch so klingen.

    Übrigens interessant: Heute ist ja Sonntag und da hört man ja die Kirchenglocken. Seit ich mich ein wenig mit dem Thema beschäftige, achte ich auf deren Klang und überlege mir, wie man den wohl nachbasteln könnte.

    Vielleicht kannst Du mir bitte kurz erklären, wie Du das mit der Addition programmtechnisch machst... keinen Code, nur kurz den Verlauf erklären, bitte
    Eine Addition?? Ich addire einfach 2 16bit Integer ( 16 Bit wegen dem Überlauf ). Danach um 1 rechts schiften ( /2)

    Die Multiplikation für die Hüllkurve kann ich auch nicht vermeinden. Die Rechenzeit reicht aber.

  10. #40
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Du meinst aber keine Armbanduhr oder?
    Versteh mich nicht falsch, es ist ein sehr guter Glockenton, aber eben noch etwas zu hoch meine ich

    Wobei in der Kirche gibt es auch unterschiedliche Glocken, Totenglocke klingt tiefer als die Mittagsglocke, bei uns im Dorf gibt es insgesammt 4 Glocken im Turm, weiß was ich wozu.
    Ich war schon öfter da oben und meine mich zu errinern daß der viertelstunden Stössel gegen die Mittagsglocke haut, es ist aber egal.

    Eine Addition??
    Naja ich meine eher die Beschaffung der Werte...

    Ich hab meine Glocke etwa so gemacht, wie im Beispiel von Sprinter.

    Nur halt verhältns von 1:35 glaube ich.

    Nur wenn die Frequenzen so nah aneinander liegen (250Hz:256Hz) geht es halt nicht so einfach, darum ging es mir...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress