Zum Inhalt springen

APC im Riverboat Gambler


kobza

Empfohlene Beiträge

vor 11 Stunden schrieb kobza:

Habe ich jetzt das Update drauf oder nicht?

Das könnte daran liegen, dass du Lisy nicht automatisch startest, sondern dich über ssh einloggst und dann run_lisy_apc ausführst um das Debug Log auf dem PC zu haben. Eventuell muss da noch was angepasst werden damit das Kommando die richtige Version ausführt aber da kann der Ralf mehr zu sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 88
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

  • bontango

    30

  • kobza

    30

  • Black Knight

    25

  • Volley

    4

Top-Benutzer in diesem Thema

Veröffentlichte Bilder

Sonst zieh doch mal die beiden Jumper für Debug und Autostart off ab. Dann solltest du die neue Version haben und Lisy wird nicht noch durch den Debug Mode gebremst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 35 Minuten schrieb Black Knight:

aber da kann der Ralf mehr zu sagen.

im script wird die exe aus dem source Verzeichnis gestartet, die wird mit dem 'kleinen' update leider nicht aktualisiert.

Einfach im Script die Zeilen

sudo ./lisy/xpinmame.vid_lisy -nosound -skip_disclaimer -skip_gameinfo -nvram_directory /pinmame/nvram -rp /boot/lisy/lisy_m/roms lisy_apc
#sudo /usr/local/bin/lisy -nosound -skip_disclaimer -skip_gameinfo -nvram_directory /pinmame/nvram -rp /boot/lisy/lisy_m/roms lisy_apc

zu

#sudo ./lisy/xpinmame.vid_lisy -nosound -skip_disclaimer -skip_gameinfo -nvram_directory /pinmame/nvram -rp /boot/lisy/lisy_m/roms lisy_apc
sudo /usr/local/bin/lisy -nosound -skip_disclaimer -skip_gameinfo -nvram_directory /pinmame/nvram -rp /boot/lisy/lisy_m/roms lisy_apc

ändern ( also die andere Befehlszeile auskommentieren ) dann sollte es gehen ...

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vom log her sieht es aber auch mit der -67er Version so aus als würde LISY die Solenoids 14&15 pulsen,

zwar mit teilweise komischen Pulszeiten aber Immerhin, wenn das so beim Wheel ankommt würde ich

zumindest ein Zucken erwarten.

@Black Knight kann das theoretisch auch am Arduino liegen? Kommt der mit 10ms Pulszeiten klar?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Minuten schrieb bontango:

zumindest ein Zucken erwarten.

Gezuckt hat das Rad am Montag auch.

vor 13 Minuten schrieb bontango:

Kommt der mit 10ms Pulszeiten klar?

Ja, meine Auflösung liegt bei 1ms, alles darüber ist OK.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb Black Knight:

Gezuckt hat das Rad am Montag auch.

OK, dann warten wir mal das Ergebnis ( bzw. den Log) von der 68er ab ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kurzes Update. Mit der neuen Lisy Version sieht es besser aus allerdings sind die PWM Pulse immer noch nicht in Ordnung.

Hier ein Video aus dem Wheel Test, passiert sehr selten, man muss immer wieder nachhelfen: Wheel issue

Zusätzlich habe ich die Inputs zum Motor Board (Selenoids 14 und 15) gemessen. Unten ein paar Bilder. Manchmal fehlen welche und im allgemeinen wenn man diese mit den aus dem Pinside Forum vergleich sieht man keinen Versatz.

DS1Z_QuickPrint2.png.aa86dc8548ae1189a8b54ae6e3f81fa0.png

DS1Z_QuickPrint3.png.766b9cba158976b465cf9590b240cf3c.png

DS1Z_QuickPrint5.png.6db9c31d000a11ea189cc96d9440907d.png

Und hier das Debug Log, die Stelle wo as Wheel sich drehen sollte:

This is LISY (Lisy W) by bontango, Version 527 68
[972.655301][0.163353] Info: LISYMINI this game has AC Relais on solenoid 12
[972.655607][0.000306] Info_boot: System_ID: SYS11C
[972.655753][0.000146] Info_boot: gamename: RIVERBOAT GAMBLER
[972.655891][0.000138] Info_boot: S2 Setting: 71
[972.656035][0.000144] Info_boot: SW Version: 527 68

...

[274.982295][2.649369] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 1 ( AC is 1)
[274.982371][0.000076] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 1 ( AC is 1)
[275.112317][0.129946] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 0 ( AC is 1)
[275.130504][0.018187] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 1 ( AC is 1)
[275.807853][0.677349] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 0 ( AC is 1)
[275.807926][0.000073] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 0 ( AC is 1)
[276.971118][1.163192] LISY_W_SOLENOID_HANDLER: Solenoid:10, changed to 1 ( AC is 1)
[276.987977][0.016859] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 1 ( AC is 1)
[277.009271][0.021294] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 1 ( AC is 1)
[277.026525][0.017254] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 0 ( AC is 1)
[277.043430][0.016905] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 1 ( AC is 1)
[277.079058][0.035628] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 0 ( AC is 1)
[277.096261][0.017203] LISY_W_SOLENOID_HANDLER: Solenoid:11, changed to 1 ( AC is 1)
[277.096327][0.000066] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 1 ( AC is 1)
[277.096380][0.000053] LISY_W_SOLENOID_HANDLER: Solenoid:16, changed to 1 ( AC is 1)
[277.220780][0.124400] LISY_W_SOLENOID_HANDLER: Solenoid:11, changed to 0 ( AC is 1)
[277.220848][0.000068] LISY_W_SOLENOID_HANDLER: Solenoid:16, changed to 0 ( AC is 1)
[277.786223][0.565375] LISY_W_SOLENOID_HANDLER: Solenoid:14, changed to 0 ( AC is 1)
[277.804886][0.018663] LISY_W_SOLENOID_HANDLER: Solenoid:15, changed to 0 ( AC is 1)
[278.153158][0.348272] LISY_W_SOLENOID_HANDLER: Solenoid:11, changed to 1 ( AC is 1)
[278.153234][0.000076] LISY_W_SOLENOID_HANDLER: Solenoid:16, changed to 1 ( AC is 1)
[278.258896][0.105662] LISY_W_SOLENOID_HANDLER: Solenoid:11, changed to 0 ( AC is 1)
[278.258967][0.000071] LISY_W_SOLENOID_HANDLER: Solenoid:16, changed to 0 ( AC is 1)
[279.183970][0.925003] LISY_W_SOLENOID_HANDLER: Solenoid:11, changed to 1 ( AC is 1)

 

P.S. Zur Info im Terminal kann ich die "run_lisy_apc" nicht ändern da "read only", habe Lisy daher im Debug Mode per copy&paste aktiviert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 39 Minuten schrieb kobza:

Unten ein paar Bilder.

Ja, das sieht nicht so aus als würde sich ein Schrittmotor darüber freuen. 
Trotzdem ist das ein großer Fortschritt denn wir müssen die Pulse ja nur zählen können, die korrekten Pulse für den Motor können wir relativ einfach in einer PinMameException erzeugen.

vor 42 Minuten schrieb kobza:

Zur Info im Terminal kann ich die "run_lisy_apc" nicht ändern da "read only", habe Lisy daher im Debug Mode per copy&paste aktiviert.

Wenn du vorher den Befehl rw ausführst, dann kannst du auch editieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe die nächsten Tage wohl wenig Zeit. Du kannst dir daher  aussuchen ob ich mich erst an das Display machen soll oder ob du erst gerne eine PinMameException hättest, die die Basics für System 11 Sound und eine Pulserzeugung für den Schrittmotor enthält.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi BlackKnight, dann Display zuerst 🙂 Ich werde dann am Wochenende alle fehlenden Sound samplen. PinMameException kann ich gerne selbst versuchen 😉

Grüße

Thomas

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK, nimm am besten EX_Rollergames als Vorlage, der hat das gleiche Soundboard. 
Da siehst du z.B. dass PinMame alle Audio-Kommandos auf Kanal 2 schickt.

case SoundCommandCh2:                               // sound commands for channel 1
  if (!Command){                                    // sound command 0x00 - stop sound
	AfterSound = 0;
	StopPlayingSound();
	AfterMusic = 0;
	StopPlayingMusic();}

Das liegt daran, dass er nur die Audioboards unterscheidet und dein RG hat nur eins. Das Kommando 0x00 für Sound Stop brauchst du auch.

Danach kommen ein paar Audio-Kommandos, die im PinMame keinen Sound erzeugen und daher geblockt werden, die könnten bei dir anders sein.

else if (Command == 32 || Command == 64) { }            // unknown commands

Dann kommen die 0x6x Kommandos, die für die Lautstärke der Musik zuständig sind, das sollte bei dir genauso sein.

else if (Command > 95 && Command < 100) {               // music volume command 0x6X
	MusicVolume = Command - 96;}

Die LastMusic Abfrage bei den Musikstücken würde ich erst mal weglassen. Die ist bei Rollergames nötig, da der PinMame hier wohl einen Bug hat und die Musikstücke ständig neu startet - wir wollen ja hoffen, dass er das bei dir nicht auch tut.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht ja ganz gut aus, ich klink mich dann erst mal aus. Lasst mich bitte wissen wie es ausgegangen ist, und vor allem ob ich die 'smooth' Änderung

in die LISY version einbauen soll ( wenn eh eine exception nötig ist könnte auch die 67er funktionieren, never change a running system ...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klar, wir werden dich auf dem Laufenden halten.

Momentan stricken wir noch an den besonderen Displays des Riverboat Gambler herum, daher gibt es vom Schrittmotor erst mal nichts Neues.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mal einen ersten Versuch zum Thema Schrittmotor gemacht. Das Prinzip ist auf dem Bild zu sehen und der vorläufige Code sieht so aus:

void EX_StepperMotor(byte State) {                    // control stepper motor
  static byte MainTimer = 0;                          // number of the main timer
  static unsigned int RefTime;                        // stores the start value of the main timer
  static unsigned int PWMtime;                        // stores the PWM time for the active cycle
  switch(State) {                                     // state machine
  case 0:                                             // procedure is called from solenoid exception
    if (!MainTimer) {                                 // initial call, stepper motor not yet running
      RefTime = 60;                                   // set timeout to 60ms
      MainTimer = ActivateTimer(RefTime, 1, EX_StepperMotor);}  // start main timer
    else {                                            // not the first solenoid call from PinMame as main timer is already running
      PWMtime = RefTime - TimerValue[MainTimer];      // calculate time difference between PinMame's solenoid pulses
      KillTimer(MainTimer);                           // cancel timeout
      RefTime = PWMtime + 10;                         // set new timeout value based on last PWM cycle time
      MainTimer = ActivateTimer(RefTime, 1, EX_StepperMotor); // restart main timer
      ActivateSolenoid(PWMtime/2, 14);                // generate PWM pulse on first solenoid
      ActivateTimer(PWMtime/4, 2, EX_StepperMotor);}  // come back to generate pulse on second solenoid
      break;
  case 1:                                             // timeout has occurred as no pulses from PinMame have been detected recently
    MainTimer = 0;                                    // indicate that main timer is not active
    ActivateSolenoid(PWMtime/2, 14);                  // generate last step on the solenoids anyway
    ActivateTimer(PWMtime/4, 2, EX_StepperMotor);
    break;
  case 2:                                             // generate pulse on second solenoid
    ActivateSolenoid(PWMtime/2, 15);
    break;}}

Das Programm soll die PinMame Aufrufe an Spule 14 abfangen. 
Beim ersten Aufruf (State = 0) startet es nur einen Timer (MainTimer) für 60ms und wartet auf den nächsten Schritt von PinMame.  
Wenn der nächste Schritt kommt (wieder State = 0, aber der Timer läuft schon), dann wird der aktuelle Stand des Timers genommen (TimerValue[MainTimer]) und vom Startwert abgezogen. Dadurch kennen wir die PWMtime, die PinMame haben will und können die Erzeugung unserer eigenen Pulse starten. Der MainTimer wird mit der PWMtime + 10ms neu gestartet und misst wieder die Zeit bis zum nächsten Puls von PinMame.  
Sollte der MainTimer auslaufen, dann wird das als Ende der Schrittfolge gedeutet (timeout) und das Rad bleibt stehen, ein letzter Schritt wird aber noch nachgeholt, denn den haben wir ja am Anfang verpasst, als wir erst die PWMtime messen mussten.

Ich habe diese Routine auch schon in V00.23 eingecheckt. Da ich deine Riverboat Exceptions aber nicht sehe müsstest du das Ding da eintragen. Dazu musst du folgenden Abschnitt in deine Exceptions einfügen:

  case SolenoidActCommand:                            // activate solenoids
    if (Command == 14){                               // handle the activation of solenoid 14
      EX_StepperMotor(0);                             // call the stepper motor handler
      return(1);}                                     // ignore the command
    else if (Command == 15){                          // handle the activation of solenoid 1
      return(1);}                                     // ignore the command
    return(0);                                        // solenoid will be activated. Use return(1) to suppress this
  case SolenoidRelCommand:                            // deactivate solenoids
    if (Command == 14){                               // handle the activation of solenoid 14
      return(1);}                                     // ignore the command
    else if (Command == 15){                          // handle the activation of solenoid 1
      return(1);}                                     // ignore the command
    return(0);                                        // solenoid will be deactivated. Use return(1) to suppress this

Dadurch wird unsere Ex_StepperMotor Routine mit 0 als Parameter aufgerufen, wenn PinMame Spule 14 aktivieren will, ansonsten werden alle Kommandos für die Spulen 14 und 15 einfach ignoriert damit wir die alleinige Kontrolle darüber haben.
 

 

Riverboat.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 21.1.2022 um 15:50 schrieb Black Knight:

Ich habe mal einen ersten Versuch zum Thema Schrittmotor gemacht. Das Prinzip ist auf dem Bild zu sehen und der vorläufige Code sieht so aus

👍 Bin gespannt ob es im Pin funktioniert

Hast Du die Version mit meinem Patch (5.27-68) oder 'das Original' genommen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Zusammen,

wollte meine bisherigen Erkenntnisse poste (war in den letzten Tagen nicht untätig 🙂 )

Erst mal die Osci. Bilder

1. Lisy FW 67.  Man sieht die Pulse für das Rad werden nur selten an APC weitergegeben:

DS1Z_QuickPrint15.png.689821655f0be1a812f9657af416bab7.png

2. Lisy FW 68, hier schon (viel) mehr Pulse, allerdings werden mache immer noch "verschluckt". Daher keine direkte Verwendung für den Rad-Motor möglich:

DS1Z_QuickPrint10.png.cfe028dc7d30da9c6ac263cffc5622f8.png

Ich weiß nicht ob eine weitere Erhöhung der PinMame/Lisy "Sample Rate" möglich wäre?

Ich habe die Exception "EX_StepperMotor" auch ausprobiert, danke noch mal hier 🙂 Diese funktioniert allerdings nicht:

- wegen der Fehlenden Pulse vom PinMame

- die Motortreiber invertieren die Pulse noch mal

Meine Idee hier, ich verwende gar nicht die Pulse von PinMame sondern starte meine Rad-Rutine wenn die Taste (Auswahltaste für das Rad) gedrückt wird. Ich habe daher eine Test Funktion dafür implementiert (als direkte Ansteuerung der Treiber 14 und 15). Im Test Mode (also nicht im Spiel) funktioniert diese auch wunderbar und zuverlässig (25 Steps für eine volle Umdrehung werden gebraucht),  im Spiel allerdings nicht. Vermutung Die Rad-Timer werden nämlich ständig unterbrochen.

Nach dem Ausschalten der Sounds geht es (gerade ausprobiert).

Zusätzlich bekomme ich diese Errors im Lisy Debug Mode (vermute durch die Sounds, da sehe ich das manchmal werden diese noch falsch abgespielt):

[983.784006][0.029931] play soundindex 160 on board 1
[984.346534][0.562528] play soundindex 158 on board 1
[984.492046][0.145512] play soundindex 96 on board 1
[984.496089][0.004043] play soundindex 32 on board 1
[985.401239][0.905150] play soundindex 159 on board 1
[985.966694][0.565455] play soundindex 86 on board 1
[985.986369][0.019675] play soundindex 163 on board 1
[988.992477][3.006108] play soundindex 84 on board 1
[988.997900][0.005423] Error: LISY_BACK_WHEN_READY: returned 0x7f
[989.799478][0.801578] play soundindex 1 on board 1
[989.800835][0.001357] Error: LISY_BACK_WHEN_READY: returned 0x7f
[989.962228][0.161393] play soundindex 96 on board 1
[989.963529][0.001301] Error: LISY_BACK_WHEN_READY: returned 0x7f
[989.968748][0.005219] play soundindex 32 on board 1
[989.969892][0.001144] Error: LISY_BACK_WHEN_READY: returned 0x7f
[992.264052][2.294160] play soundindex 65 on board 1
[992.269466][0.005414] Error: LISY_BACK_WHEN_READY: returned 0x7f
[995.279019][3.009553] play soundindex 64 on board 1
[995.284415][0.005396] Error: LISY_BACK_WHEN_READY: returned 0x7f
[999.119682][3.835267] play soundindex 151 on board 1
[999.125127][0.005445] Error: LISY_BACK_WHEN_READY: returned 0x7f
[002.135496][3.010369] play soundindex 154 on board 1
[002.141026][0.005530] Error: LISY_BACK_WHEN_READY: returned 0x7f
[002.382305][0.241279] play soundindex 127 on board 1
[002.383640][0.001335] Error: LISY_BACK_WHEN_READY: returned 0x7f
[003.419131][1.035491] play soundindex 0 on board 1
[003.420555][0.001424] Error: LISY_BACK_WHEN_READY: returned 0x7f
[003.461847][0.041292] play soundindex 3 on board 1
[003.463129][0.001282] Error: LISY_BACK_WHEN_READY: returned 0x7f
[006.213895][2.750766] play soundindex 131 on board 1
[006.219344][0.005449] Error: LISY_BACK_WHEN_READY: returned 0x7f
[006.499511][0.280167] play soundindex 181 on board 1
[006.500884][0.001373] Error: LISY_BACK_WHEN_READY: returned 0x19

Und hier meine Rutine für das Rad (eine Umdrehung)

void EX_StepperMotor_Step(byte State) {                    // control stepper motor
  static byte WheelTimer = 0;                              // number of the wheel test timer
  static unsigned int PWMStarttime = 60;                   // start time for wheel
  static unsigned int PWMtime = Stepper_PWMtime;           // stores the PWM time for the active cycle
  static unsigned int PWMtime1;
  static unsigned int PWMtime2;
  
  static unsigned int OneRotation = 25; // Steps for one rotation

  USB_SolTimes[14-1] = 0;   // allow permanent on state for motor
  USB_SolTimes[15-1] = 0;   // allow permanent on state for motor

  switch (State) {
  case 0: // start
      PWMStep_rdy = false;
      PWMStep_cnt = 0;
      EX_StepperMotor_Step(1);
      break;
  case 1:
      // calculate times
      if (PWMStep_cnt <  3) PWMtime = PWMStarttime; // start with slower frequency
      else                  PWMtime = Stepper_PWMtime;
      PWMtime1 = PWMtime/4;
      PWMtime2 = PWMtime/2 - PWMtime1;
      //
      ReleaseSolenoid(14);
      WheelTimer = ActivateTimer(PWMtime1, 2, EX_StepperMotor_Step);
      break;
  case 2:
      ReleaseSolenoid(15);
      WheelTimer = ActivateTimer(PWMtime2, 3, EX_StepperMotor_Step);
      break;
  case 3:
      ActivateSolenoid(0, 14);
      WheelTimer = ActivateTimer(PWMtime1, 4, EX_StepperMotor_Step);
      break;
  case 4:
      ActivateSolenoid(0, 15);
      WheelTimer = ActivateTimer(PWMtime2, 5, EX_StepperMotor_Step);
      break;
  case 5:
      // check cnt
      PWMStep_cnt++;
      if (PWMStep_cnt < 2*OneRotation) EX_StepperMotor_Step(1);
      else PWMStep_rdy = true; // stop here
      break;

  default: // stop
      KillTimer(WheelTimer);
      break;
  }
  
}

Viele Grüße

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das mit den Lisy Fehlern finde ich sehr merkwürdig. Versuch mal eine andere SD-Karte oder nimm diesen Sound 84 mal explizit in einer Exception raus.

vor 21 Stunden schrieb kobza:

Vermutung Die Rad-Timer werden nämlich ständig unterbrochen.

Das wird tatsächlich das Problem sein. 
Die normalen Timer werden zwar im Interrupt gezählt, aber in der Hauptschleife abgearbeitet. D.h. wenn es da zu Verzögerungen kommt (z.B. weil die SD-Karte gerade Soundfiles öffnet) kann die Ausführung der Timer ebenfalls verzögert werden. Normalerweise merkt man das nicht, aber wenn es auf jede ms ankommt, dann kann das störend sein.

Ich werde mal einen Befehlssatz für PriorityTimer einbauen, die dann auch im Interrupt abgearbeitet werden. Die darf man dann natürlich nur für kurze Aufgaben verwenden, dafür kommen sie aber auch auf die ms genau.

Ich melde mich, wenn es da was Neues gibt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im V00.23 Branch gibt es jetzt Priority-Timer, die auch im Interrupt ausgeführt werden.

Wenn du die ActivateTimer und KillTimer Befehle in deinem EX_StepperMotor_Step gegen ActivatePrioTimer und KillPrioTimer ersetzt dann sollte sich dein Rad vernünftig drehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Ich woilte mich mal wieder melden, bin noch dran 🙂

Nach etlichen Versuchen das Rad aus dem Speil drehen zu lassen, habe ich das original Board wieder eingebaut um paar Messungen zu machen.

Hier die komplette "Drehsequenz". Man sieht das die PWM Freq, langsam startet und am Ende wieder langsamer wird. Außerdem bleibend die Coils 14&15 manchmal beide auf HGH oder nur 1 davon....

DS1Z_QuickPrint22.png.f0f873a8741cdbc28c042a37529724d2.png

Hier der Start ~40ms PWM

DS1Z_QuickPrint23.png.af65837a0ef1258164446c2f13721e6a.png

Hier das Max. ~18ms ~54Hz @bontangodenkst Du, Du könntest die Lisy Updsate-Freq. entsprechend erhöhen? Eins von den (14 oder 15) würde reichen.

DS1Z_QuickPrint25.png.bbe29f868865b121420ce937a49ab671.png

 

Ich mach paar Messungen, dann baue ich es wieder um.

LG

Thomas

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Konntest du denn herausfinden, welche Teile dieser Drehsequenz sich ändern und welche immer gleich bleiben?

Was ich damit meine ist, dass sich das Rad ja unterschiedlich viele Felder weit drehen muss je nachdem auf welchem Feld die SW landen will. 
Ich könnte mir nun vorstellen, dass diese Änderung immer bei der gleichen Drehgeschwindigkeit passiert. Das wäre das Einfachste für den Programmierer gewesen und wir müssten die Lisy Pulse nur in bei einer Drehgeschwindigkeit zählen, da bei den anderen ja immer alles gleich bliebe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, 

die PWM Freq. bliebt gleich, es ändert sich die Dauer. Das mit dem Zählen wird schwierig da beim Lisy die Pulse fehlen...

Noch mal and @bontango  wäre es möglich die Abtast/Ausgabefreq. noch mal zu erhöhen? Wenigstens probeweise für eins beiden Ausgänge (14 oder 15)

Grüße

Thomas

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 20 Stunden schrieb kobza:

wäre es möglich die Abtast/Ausgabefreq. noch mal zu erhöhen?

ist schon auf 1, d.h. 'eigentlich dürften da keine Pulse verloren gehen, ich schau aber noch mal rein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

×
×
  • Neu erstellen...

Wichtige Information

Datenschutzerklärung und Registrierungsbedingungen