Seite 2 von 3
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 10:09
von kuroneko
Alle mal tief einatmen. 32 als no-pin zu deklarieren ist - ohne Sonderbehandlung - Käse. Auf dem P1 ist das nämlich das gleiche wie 0.
SIDcog hat ein ähnliches Problem indem es Pin 0
nicht erlaubt. Ist natürlich auch dämlich. Ich hab das mal für meine Zwecke behoben (
https://github.com/konimaru/modulity/bl ... IDcog.spin).
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 10:10
von PIC18F2550
Anderer Compiler wird nichts bringen.
Da sie Bits tatsächlich in die variable geschoben werden.
Das kann der nicht unterscheiden warum auch es gibt kein Unterscheidungsmerkmal.
Das einzige was bleibt ist mit dira den Ausgang zu eliminieren.
Aber welche Prioritäten CTRA und CNTRB bezüglich der IO-Pins haben entzieht sich meiner Kenntnis.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 10:12
von yeti
Hab grad auch
http://forums.parallax.com/discussion/c ... nt_1108573 entdeckt...
Sowas schwebte mir auch vor aber ich zweifle immer viel zu lange, ob da im Fremdcode tatsächlich ein Fehler vorliegt oder ich nur den Code nicht kappiere...
Analog dann wohl auch die 32-Behandlung, wenn man kein invertiertes Signal haben will...
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 11:35
von PIC18F2550
Ich musste erstmal drüber grübeln was das bedeutet
delayLine = (|<invertedPin) | (|<outPin) | (|<syncPin)
& (syncPin <> 32)
aber das ist ja irgendwelcher HTML kram
delayLine = (|<outPin) | (|<invertedPin) & (invertedPin < 32) | (|<syncPin) & (syncPin < 32)
dira := delayLine
Da werden schon ruhige Pins draus.
Die Angabe < 32 sperrt bei allen Werte die größer 31 sind das schützt vor Tippfehlererrors.
Heute abend mal testen.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 14:37
von kuroneko
PIC18F2550 hat geschrieben:delayLine = (|<outPin) | (|<invertedPin) & (invertedPin < 32) | (|<syncPin) & (syncPin < 32)
dira := delayLine
Die Zeile kannst Du Dir sparen ...
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 16:36
von PIC18F2550
@kuroneko
irgendwie stehe ich auf den Schlauch
Wie bekomme ich das unerwünschte Zappeln am Pin0 unterdrückt?
Den geänderten Code zum SidCog habe ich mir angeschaut konnte aber nicht erkennen wie du das damals gemacht hast.
Ich brauche nur den einen Ausgang der Rest kann raus.
Danke.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 18:15
von kuroneko
delayLine Aenderung patched quasi den cog code bevor selbiger gestartet wird. Das lokale dira damit zu fuettern macht also wenig Sinn.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 18:28
von yeti
PIC18F2550 hat geschrieben:irgendwie stehe ich auf den Schlauch :(
Da war ich auch schon oft!
PIC18F2550 hat geschrieben:Wie bekomme ich das unerwünschte Zappeln am Pin0 unterdrückt?
Ich hab nur die Zeile...
Code: Alles auswählen
delayLine := (1<<invertedPin) | (1<<outPin) | (1<<syncPin)
...durch...
Code: Alles auswählen
delayLine := (|<invertedPin) & (invertedPin <> 32)
delayLine |= (|<outPin) & (outPin <> 32)
delayLine |= (|<syncPin) & (syncPin <> 32)
...ersetzt.
Jetzt kann jeder Pin weggeblendet werden, ob sinnig oder nicht. In GEAR schaute das dann ok aus.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 18:50
von PIC18F2550
@kuroneko
aber das füttert doch dira.
ich hab mal ein bisschen rumgespielt und das ist dabei raus gekommen.
@yeti
Kannst Du das mal durch den Simulator schieben?
Danke.
Re: PropellerSignalGenerator (alt SIDCOG)
Verfasst: Mi 31. Mai 2017, 19:28
von yeti
PIC18F2550 hat geschrieben:@yeti
Kannst Du das mal durch den Simulator schieben?
Pin0 ist inaktiv und auf den 8 aktiven Pins sehe ich keine Änderung... nur 'ne stabile Linie...
Am Anfang zappelt mal was, aber danach ist Stillstand...
...vielleicht ist der Simulator zu lahm für 200cHz? Ich krieg grad nicht erkopfrechnet wie lange ich beim Simulator warten müsste, bis genug Zeit verging...