-
        

Ergebnis 1 bis 5 von 5

Thema: Frage zum Bascom "Sound"-Befehl

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    01.01.2007
    Ort
    34355 Staufenberg
    Alter
    53
    Beiträge
    41

    Frage zum Bascom "Sound"-Befehl

    Anzeige

    Hi,

    ich möcht gern mal wissen, wie die einzelnen Parameter zum Befehl "Sound" aussehen. Der Befehl besteht ja aus 3 Variablen: 1. Para = Port, 2. Para = Dauer, 3. = Frequenz, also Tonhöhe. Und hier genau liegt der Hase im Pfeffer. Wie wird denn die Frequenz berechnet, denn dieser Wert ist reziprog, d.h. je größer die Zahl, desto tiefer der Ton. Wie setzt sich Zeit zusammen bzw. gibt es eine Liste oder Tabelle dafür?

    Gruß Dirk

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    bascom hilfe:
    Syntax
    SOUND pin, duration, pulses


    Remarks

    Pin: Any I/O pin such as PORTB.0 etc.

    Duration: The number of pulses to send. Byte, integer/word or constant.

    Pulses: The time the pin is pulled low and high.
    This is the value for a loop counter.
    When you connect a speaker or a buzzer to a port pin (see hardware) , you can use the SOUND statement to generate some tones.

    The port pin is switched high and low for pulses times.
    This loop is executed duration times.

    The SOUND statement is not intended to generate accurate frequencies. Use a TIMER to do that.


    so wie es aussieht ist die generierte frequenz auch stark von der taktrate des up abhängig... und um genaue frequenzen zu erzeugen nicht geeignet...

    gruss bluesmash

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    01.01.2007
    Ort
    34355 Staufenberg
    Alter
    53
    Beiträge
    41

    Sound-Befehl

    Hi Buesmash,

    es muß aber trotzdem eine Tabelle existiren, wo das kommentiert ist.

    Gruß Dirk

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    01.01.2007
    Ort
    34355 Staufenberg
    Alter
    53
    Beiträge
    41
    Hi,

    ich hab's jetzt mal probiert und die Frequenzen in Abhängigkeit der Zeitvariablen gemessen. Wenn man die Messergebnisse der Zeitvariablen gegenüberstellt, stellt man fest, dass hier nichts linear ist. Die Frequenz kann also nicht berechnet werden, sondern muss empirisch ermittelt werden und in einer "Tabelle" abgelegt werden. Das ist etwas blöd. Hier wäre es schön, einen Befehl zu haben, so etwa wie "play port.x a3 , 500" also den Kammerton "a" in der 3.Oktave also 1320Hz für 500ms. Das könnte noch erweitert werden, wenn man einen 4/4-Takt wählt, also dann eine halbe oder viertel Note o.ä. spielen könnte. Wäre eine Überlegung wert. Dem könnte man natürlich die Tatsache gegenüberstellen, dass die Controller nicht zum musizieren geplant sind sondern zu steuern und regeln.

    ist ja nur eine Idee.

    Gruß Dirk

  5. #5
    Benutzer Stammmitglied Avatar von kaktus
    Registriert seit
    17.05.2004
    Beiträge
    34
    Kann man schon berechnen:
    http://www.mcselec.com/index.php?option=com_content&task=view&id=221&Item id=57

    Code:
    ' *****   FORMAT TO FUNCTIONS SOUND  *****
    '
    ' Sound Speaker , Pulses , Periods
     ' Speaker - port for generations of sound
    ' Periods - sound frequency (1-65535)
    ' Pulses  - duration of sound (1-65535)
     '
    ' Periods = Abc[F_crystal / (k * F_nota)]
    ' Pulses  = Abc[(T_period * F_crystal) / (k * Periods)]
     '
    ' F_crystal - clockrate of controller, Hz
    ' F_nota    - frequency a notes, Hz
     ' k = 12    - amount of tacts, for which is formed one period of sound
     ' T_period  - duration of sounding a notes, sec
    ' Abc       - function of truncation whole number
     '
    '===============================================================================
    ' Table of values Pulses,Periods for 3 octaves at frequency of quartz 8000000 Hz
     '===============================================================================
    'Note|Freqvency|Periods|Pulses 1/1|Pulses 1/2|Pulses 1/4|Pulses 1/8|Pulses 1/16|
    '===============================================================================
    ' C1 |  261,63 |  2548 |    523   |    262   |    131   |    65    |     33    |
     'Cis1|  277,18 |  2405 |    554   |    277   |    139   |    69    |     35    |
    ' D1 |  293,66 |  2270 |    587   |    294   |    147   |    73    |     37    |
     'Dis1|  311,13 |  2143 |    622   |    311   |    156   |    78    |     39    |
    ' E1 |  329,63 |  2022 |    659   |    330   |    165   |    82    |     41    |
     ' F1 |  349,23 |  1909 |    698   |    349   |    175   |    87    |     44    |
     'Fis1|  369,99 |  1802 |    740   |    370   |    185   |    92    |     46    |
    ' G1 |  392,00 |  1701 |    784   |    392   |    196   |    98    |     49    |
     'Gis1|  415,30 |  1605 |    831   |    415   |    208   |   104    |     52    |
    ' A1 |  440,00 |  1515 |    880   |    440   |    220   |   110    |     55    |
     'Ais1|  466,16 |  1430 |    932   |    466   |    233   |   117    |     58    |
    ' B1 |  493,88 |  1350 |    988   |    494   |    247   |   124    |     62    |


Berechtigungen

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