wenn ich das richtig verstanden habe kann er nur ganzzahlige Frequenzen erzeugen.
Oder liege ich da falsch?

Ich breuchte bis 3 kommastellen.
a’ = 440,000 Hz und der nächst höhere währe dann a’# = 466,164 Hz.
Danke.
Code: Alles auswählen
PUB setFrequencyCentiHertz(freq)
' ┌──────────────────────────────────────────────────────────────┐
' │ Set frequency │
' ├──────────────────────────────────────────────────────────────┤
' │ freq - The frequency in centi hertz (0 Hz to 750000000 cHz) │
' └──────────────────────────────────────────────────────────────┘
frequency := freqRef / (1.000.000.000 / freq)
Code: Alles auswählen
CON
_CLKMODE = xtal1 + pll16x
_XINFREQ = 5_000_000
OBJ
psg1 : "PropellerSignalGenerator"
psg2 : "PropellerSignalGenerator"
psg3 : "PropellerSignalGenerator"
psg4 : "PropellerSignalGenerator"
psg5 : "PropellerSignalGenerator"
psg6 : "PropellerSignalGenerator"
psg7 : "PropellerSignalGenerator"
PUB main | i
'Start "Propeller Signal Generator" and output signal on pin 10
psg1.start(16, 23, 32) ' Sync pin = 32 = No pin
psg2.start(17, 32, 32) ' Sync pin = 32 = No pin
psg3.start(18, 32, 32) ' Sync pin = 32 = No pin
psg4.start(19, 32, 32) ' Sync pin = 32 = No pin
psg5.start(20, 32, 32) ' Sync pin = 32 = No pin
psg6.start(21, 32, 32) ' Sync pin = 32 = No pin
psg7.start(22, 32, 32) ' Sync pin = 32 = No pin
psg1.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg2.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg3.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg4.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg5.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg6.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg7.setParameters(psg1#SQUARE, 0, 0, psg1#PW50)
psg1.setFrequencyCentiHertz( 2)
psg2.setFrequencyCentiHertz( 4)
psg3.setFrequencyCentiHertz( 8)
psg4.setFrequencyCentiHertz( 16)
psg5.setFrequencyCentiHertz( 32)
psg6.setFrequencyCentiHertz( 64)
psg7.setFrequencyCentiHertz( 128)
Code: Alles auswählen
CON
_CLKMODE = xtal1+pll16x
_XINFREQ = 5_000_000
OBJ
psg : "PropellerSignalGenerator"
PUB main
psg.start(8, 32, 32)
psg.setParameters(psg#SINE, 100, 0, 0)
Das gewünschte Signal ist auf Pin8.PIC18F2550 hat geschrieben:ersetz mal die 32 durch 33 da müsste das signal von p0 auf p1 wandern.
Code: Alles auswählen
CON
_CLKMODE = xtal1+pll16x
_XINFREQ = 5_000_000
OBJ
psg : "PropellerSignalGenerator"
PUB main
psg.start(8, 9, 11)
psg.setParameters(psg#SINE, 100, 0, 0)
Was hat das mit der 32 denn zu bedeuten? Schau mal in "TestBench.spin"...PIC18F2550 hat geschrieben:Probier mal das psg.start(8, 33, 34).
Code: Alles auswählen
PUB main | i
'Start "Propeller Signal Generator" and output signal on pin 10 (inverted signal on pin 11)
psg.start(10, 11, 32) ' Sync pin = 32 = No pin
OpenSpin.PIC18F2550 hat geschrieben:Mit was hast Du Übersetzt?
Code: Alles auswählen
regCounter := $1C000000 | outPin | (invertedPin<<9) ' in CTRA
noiseValue := $10000000 | syncPin ' in CTRB
Code: Alles auswählen
delayLine := (1<<invertedPin) | (1<<outPin) | (1<<syncPin)
Code: Alles auswählen
delayLine := (1<<invertedPin) | (1<<outPin)