Skip to content

feat(dot): ausklappbarer PWM-Signalweg von OC2REF über PE11 zur LED - #13

Merged
KreutzM merged 5 commits into
mainfrom
feat/issue-5-dot-signal-path
Nov 12, 2026
Merged

KreutzM merged 5 commits into
mainfrom
feat/issue-5-dot-signal-path

Conversation

@KreutzM

@KreutzM KreutzM commented Nov 12, 2026

Copy link
Copy Markdown
Owner

Bezug

Closes #5 (bei Merge; erst nach Review). Dieses bereits vorhandene Issue dokumentiert die didaktisch wichtige Trennung von internem Referenzsignal, Ausgangspegel und low-aktiver DOT-Anzeige.

Lösung

Im Abschnitt 05 / HARDWAREBEZUG · Virtuelles DOT · PE11 gibt es ein standardmäßig eingeklapptes natives <details>-Feld, das per Tastatur und Touch bedient wird.

  • Dynamischer Signalweg: Timer-Takt/PSC/CNT → OC2REF → OCPolarity LOW (mit CC2E/MOE-Annahme) → TIM1_CH2 / AF1 / PE11 → low-aktive DOT-Leitung → LED AN/AUS.
  • Kompakte Zustandstabelle zeigt beide logischen Fälle und markiert den aktuell simulierten Zustand.
  • Der bestehende pwmActive-Zustand wird aus dem Parent übergeben; es entsteht keine zweite Timer-/PWM-Engine. Bei CNT=CCR2, periodischem Rücksprung, 0 % und 100 % bleibt die Darstellung konsistent.
  • TIM2: OC2REF existiert intern weiterhin, aber PE11 und DOT werden ausdrücklich als nicht verbunden dargestellt, keine fingierten Pinpegel.
  • Dokumentierte Modellannahmen: CC2E/MOE, GPIO AF1, aktiviertes Digit über CNTL1…CNTL4; elektrische Verdrahtung/Treiber/Mux und Output-Enable werden nicht simuliert. Blockschaltbild, kein verifizierter Stromlaufplan.
  • Responsive Darstellung: vier Schritte im breiten Layout, vertikal gestapelt auf kleinen Breiten; Native-Details-Keyboard-Zugänglichkeit.
  • Playwright-Tests für eingeklappten Ausgangszustand, aktive/inaktive Flanke, ARR-Rücksprung, CCR2=0, CCR2>ARR, TIM2, Tastatur und 320/360/393px-Ansicht; Desktop-/Mobil-Screenshots.

Hardwaregrundlage / Abgrenzung

Die beigefügte Praktikumsanleitung beschreibt in Kap. 7.1.1 die low-aktiven Segmentleitungen und CNTL-Anzeigenstellen sowie in Kap. 7.6.3 TIM1_CH2 → GPIO_AF1_TIM1 → PE11 (DOT). Der Open429Z-D-Basisschaltplan allein zeigt nicht den vollständigen Strompfad im 8-Segment-Adapterboard. Deshalb zeigt dieser PR bewusst keine behauptete reale LED-/Treiber-Verdrahtung.

Review-Checkliste

  • Richtige Zuordnung: OC2REF 1 → PE11 LOW → DOT AN; OC2REF 0 → PE11 HIGH → DOT AUS (nur beim angenommenen, freigegebenen TIM1-Pfad)
  • Keine Verwechslung von interner PWM-Logik und physikalischem Pinpegel
  • Dynamisch richtig bei CNT=CCR2, Rücksprung, 0 % und 100 %
  • TIM2 zeigt keine Verbindung nach PE11
  • Verständliche Modellannahmen (CC2E, MOE, Digit Enable) und keine falsche Schaltplanbehauptung
  • Expand/Collapse per Tastatur und Touch; Mobil-Darstellung 320/360/393 px
  • Tests und CI-Screenshots kontrollieren

Bitte Findings inline am PR kommentieren. Kein Merge ohne ausdrückliche Freigabe.

KreutzM commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

Umsetzung und Abschlussprüfung zu Issue #5

Die ursprünglich als Ideen-Issue erfasste Darstellung ist nach ausdrücklicher Zustimmung als kompakte, native <details>-Erweiterung umgesetzt worden.

Fachliche Abgrenzung

  • Eine bestehende Timer-/PWM-Engine: OC2REF kommt unverändert aus pwmActive(cnt, ccr) des Parents. Daraus werden für den angenommenen TIM1-Pfad die Pegel OC2REF=1 → PE11=LOW → DOT=AN und OC2REF=0 → PE11=HIGH → DOT=AUS angezeigt.
  • TIM2 korrekt getrennt: interne OC2REF-Logik bleibt sichtbar; kein fingierter PE11-Pegel, kein DOT-Signalweg. Nach der ersten Sichtprüfung wurden Text und Beschriftung der TIM2-Ausgangsstufe noch präzisiert.
  • Keine unbelegte Hardwarebehauptung: CC2E, MOE, GPIO_AF1_TIM1 und die Freigabe der einzelnen Anzeige über CNTL1…CNTL4 werden als Annahmen benannt; das Stromlaufbild der Adapterplatine wurde nicht als rekonstruierter Schaltplan ausgegeben.
  • Das bisherige einzelne OC2REF-Zeitdiagramm bleibt erhalten; das Live-Blockbild und die synchrone, markierte Zustandstabelle ersetzen bewusst ein zweites großes Drei-Spur-Diagramm.

Testresultat des finalen Heads

  • 36/36 Playwright-Tests grün (18 Desktop + 18 Mobil): Includes native details/Keyboard, Compare-Grenze, ARR-Rücksprung, CCR2=0, CCR2>ARR, TIM2-Abkopplung und mobile Breiten 320/360/393px.
  • Typecheck, Unit-Tests, Produktionsbuild und Lighthouse grün.
  • Erfolgreicher CI-Lauf zum PR-Head 21a815b.
  • Screenshots aus genau diesem Head visuell kontrolliert: Desktop-Stufen, Mobil-Stapelung, aktives/inaktives DOT und TIM2 nicht verbunden ohne offensichtliche Überlagerungen.

Bitte den PR fachlich/didaktisch reviewen. PR und Issue bleiben offen; kein automatischer Merge.

@KreutzM KreutzM left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unabhängige Inline-Befunde zum Signalweg aus Issue #5. Gesamtbewertung und Merge-Empfehlung folgen als eigenständiger PR-Konversationskommentar. Dies ist ausschließlich ein kommentierendes Review, keine formelle Freigabe.

<summary>
<span>
<strong>Signalweg verstehen</strong>
<small>Warum leuchtet DOT bei OC2REF = 1?</small>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1 · fachlich-didaktischer Widerspruch zu AK „TIM2 ohne DOT-Verbindung“] Der Text im standardmäßig geschlossenen Ausklappfeld lautet auch bei ausgewähltem TIM2 unverändert „Warum leuchtet DOT bei OC2REF = 1?“. Gerade für TIM2 ist die Antwort aber: gar nicht, da TIM2_CH2 hier keinen PE11-/DOT-Pfad hat. Der irreführende Satz erscheint, bevor man die korrekte Erklärung im geöffneten Feld lesen kann. Bitte die Kurzbeschreibung vom Timer abhängig machen, z. B. bei TIM1 „Warum leuchtet DOT bei OC2REF=1 (unter den genannten Freigabeannahmen)?“, bei TIM2 „Warum ist TIM2_CH2 nicht mit DOT/PE11 verbunden?“. Einen E2E-Test für beide geschlossenen Zustände ergänzen.


<div className="dot-path-table-wrap">
<table className="dot-path-table">
<caption>Signalzustände für TIM1_CH2 mit Ausgangspolarität LOW und aktivierter DOT-Anzeigenstelle</caption>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2 · TIM2-Kontext der Zustandstabelle] Auch bei TIM2 werden hier die beiden theoretischen TIM1_CH2 → PE11 → DOT-Zeilen mit real wirkenden Pinpegeln LOW/HIGH und DOT AN/AUS dargestellt. Die Tabellenüberschrift nennt TIM1 und keine Zeile wird als aktuell markiert – das ist fachlich nicht falsch, aber direkt unter dem als getrennt gezeigten TIM2-Signalweg leicht misszuverstehen. Bitte den Referenzcharakter bei TIM2 zusätzlich unmittelbar sichtbar machen (z. B. „Nur Vergleichsbeispiel für TIM1, nicht der aktuelle TIM2-Pfad“) oder die Tabelle für TIM2 durch einen „keine PE11-Verbindung“-Zustand ersetzen. Dadurch würde die Trennung interner Logik/physischer Verbindung didaktisch klarer.

// Die Ausgangspolarität LOW invertiert den logischen OC2REF-Zustand.
// PE11 und DOT werden nur bei TIM1 unter den dokumentierten Annahmen modelliert.
const pe11Level = !connected ? "nicht verbunden" : oc2refActive ? "LOW (0)" : "HIGH (1)";
const dotState = !connected ? "nicht verbunden" : oc2refActive ? "AN" : "AUS";

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2 · inkonsistenter Status zum bestehenden LED-Widget] Hier wird bei TIM2 richtigerweise DOT: nicht verbunden ausgegeben. Das daneben weiterhin sichtbare LED-Widget in TimerPwmDemo.tsx meldet per aria-label jedoch „LED momentan ausgeschaltet“. Nicht verbunden und über einen aktiven PE11-Ausgang ausgeschaltet sind verschiedene Zustände; gerade diese Unterscheidung ist Gegenstand von Issue #5. Bitte die Beschriftung/den Accessible Name des übergeordneten virtuellen DOT bei TIM2 ebenfalls auf „nicht verbunden“ bzw. „kein DOT-Pfad über PE11“ ändern. Der neue E2E-Test auf aria-label = LED momentan ausgeschaltet zementiert zurzeit die Inkonsistenz.

Comment thread README.md Outdated
- Bei `TIM1_CH2` mit `OCPolarity LOW` entspricht OC2REF=1 einem **LOW-Pegel an PE11**; eine low-aktive DOT-Leitung lässt das gewählte Segment dann leuchten.
- Die physikalische Darstellung gilt nur bei **TIM1** und unter Annahme aktivierter Ausgangsfreigaben **CC2E/MOE**, AF1-Konfiguration sowie einer aktivierten Anzeigenstelle über **CNTL1…CNTL4**. Diese Voraussetzungen sind in der Website nicht dynamisch modelliert. **TIM2_CH2 ist nicht mit DOT/PE11 verbunden.**
- Das Blockschaltbild ist eine **didaktische Funktionsdarstellung, kein elektrischer Stromlaufplan** und behauptet keine zusätzlichen physischen Inverter. Der tatsächliche Treiber-/Multiplex-Strompfad des 8-Segment-Adapterboards ist nicht rekonstruiert.
- Materialgrundlage: Praktikumsanleitung, Kapitel 7.1.1 (low-aktive Segmente und CNTL-Leitungen) sowie Kapitel 7.6.3 (TIM1_CH2/PE11, AF1, DOT); das Open429Z-D-Basisschaltbild dokumentiert PE11, aber nicht die vollständige Adapterboard-Beschaltung.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2 · Rückverfolgbarkeit der Hardware-Annahmen] Die MCU-Pinzuordnung PE11 = TIM1_CH2/AF1 lässt sich in der offiziellen STM32F429-AF-Tabelle verifizieren. Die low-aktive DOT-Leitung, CNTL1…CNTL4 und der Adapterboard-Pfad werden hier hingegen nur über eine nicht verlinkte „Praktikumsanleitung“ begründet. Für das Hardware-Akzeptanzkriterium bitte Dokumenttitel, Version/Revision und möglichst eine überprüfbare Fundstelle/URL zur Praktikumsanleitung sowie zum verwendeten Board-Schaltplan nennen. Die ehrliche Einschränkung „kein verifizierter elektrischer Schaltplan“ ist ausdrücklich richtig und soll erhalten bleiben – die fehlende Primärquellenangabe ist ein Nachvollziehbarkeitsmangel, kein nachgewiesener Signalfehler.

Comment thread e2e/visual.spec.ts
await expect(details.getByTestId("path-pe11")).toContainText("PE11: nicht verbunden");
await expect(details.getByTestId("path-dot")).toContainText("DOT: nicht verbunden");
await expect(details.getByTestId("path-current-state")).toContainText("keine Verbindung");
await expect(page.locator(".led-visual").first().getByRole("img")).toHaveAttribute(

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2 · Tests sichern aktuell einen widersprüchlichen TIM2-Zustand ab] Der TIM2-Test kontrolliert den neuen Pfad auf „nicht verbunden“, verlangt zugleich aber beim übergeordneten LED-Bild den Accessible Name „LED momentan ausgeschaltet“. Nach Harmonisierung beider Komponenten sollte die Erwartung auf „nicht verbunden“ wechseln. Zusätzlich prüfen: geschlossener Summarytext bei TIM2, keine „aktuell“-Zeile in der TIM1-Vergleichstabelle bei TIM2 und TIM2 auch mit OC2REF=0. Die bisherigen 36 bestandenen Tests decken das positive TIM1-Signal und die wesentlichen PWM-Grenzen bereits gut ab.

</div>
</div>

<div className="dot-path-current" data-testid="path-current-state">

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3 · Accessibility/UX-Vorschlag] Die aktuelle Signalkette wird dynamisch geändert, ist aber nicht als zusammenhängender Status für assistive Technologien gekennzeichnet. Bei per Tastatur ausgelösten CNT-Schritten/CCR2-Änderungen müssen Screenreader-Nutzende unter Umständen erneut zum Block navigieren, um den neuen PE11-/DOT-Zustand zu erfahren. Eine sparsame Zustandsankündigung für manuelle Aktionen wäre hilfreich; bitte nicht die gesamte Tabelle als Live-Region verwenden und bei laufender Animation keine Ansageflut erzeugen. Kein fachlicher Merge-Blocker.

KreutzM commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

Unabhängiges Code-, Fach-, UX- und Didaktik-Review – PR #13 / Issue #5

Empfehlung: REQUEST CHANGES (nur als PR-Konversationskommentar; kein formelles Approve/Request-Changes). Die neue Funktionsdarstellung ist insgesamt fachlich schlüssig. Es gibt jedoch einen gut reproduzierbaren Widerspruch bei TIM2, der das zentrale Lernziel von Issue #5 betrifft. 6 konkrete Befunde sind bereits inline kommentiert.

Prüfbasis: PR-Head 21a815b6433bff2da626052fce3eb7379607ba13, Diff/Quellcode, Issue #5, GitHub Actions 43214995983, originale Playwright-Desktop- und Mobil-Screenshots (einschließlich 320/360/393 px), JUnit-Auswertung und Lighthouse-JSON. 36/36 Browser-Tests erfolgreich (18 Desktop + 18 Mobil; 0 Failures/Errors). Typecheck, Unit-Tests und Build erfolgreich. Lighthouse für Landingpage und Timer-Labor jeweils 100/100/100/100 in diesem CI-Lauf. Dies ist keine vollständige manuelle Hardware- oder Screenreader-Abnahme; eine separate interaktive Live-Browser-Session habe ich nicht durchgeführt.

Akzeptanzkriterien aus Issue #5

Kriterium Befund
OC2REF vs. physischer Pegel unterscheidbar ✅ Bei TIM1 korrekt und eindeutig.
Live-Blockbild, Polarität, LED-Verhalten ✅ Unter den ausdrücklich angegebenen Annahmen (CC2E/MOE, AF1, Digit-Aktivierung) konsistent mit pwmActive; keine duplizierte Timer-Engine.
Drei Ebenen synchron dargestellt ✅ Vier Blockstufen und eine markierte Zustandstabelle sind eine nachvollziehbare Alternative zum zweiten Zeitdiagramm.
CNT=CCR2, Rücksprung, 0 %/100 % ✅ Im Code und in den E2E-Beispielen geprüft.
TIM2 und fehlende Freigaben nicht irreführend ⚠️ Teilweise: Im geöffneten Block wird TIM2 richtigerweise als nicht verbunden dargestellt. Das geschlossene Feld fragt aber weiterhin „Warum leuchtet DOT bei OC2REF = 1?“, und das bestehende LED-Widget beschreibt den unverbundenen TIM2-Zustand als „ausgeschaltet“.
Hardwarequellen und Modellannahmen ⚠️ Die MCU-Zuordnung PE11 → AF1/TIM1_CH2 wird durch das offizielle STM32F429-Datenblatt gestützt. Für low-aktive DOT-Adapterleitung und CNTL-Multiplex wird eine Praktikumsanleitung angeführt, aber keine überprüfbare Dokumentversion/URL. Gut und wichtig: keine Behauptung eines verifizierten Adapterboard-Stromlaufplans.
Responsive, Beschriftungen, Tests ✅ Die geprüften Ansichten haben keine offensichtliche Dokument-Überbreite; native details/summary-Bedienung und die wesentlichen Zustandsübergänge sind getestet. Die 320-px-Tabelle ist eng, bleibt aber in den Screenshots verwendbar.

Vor dem Merge beheben

[P1] TIM2-korrekte Aussage bereits im geschlossenen Ausklappfeld. Der dauerhaft angezeigte Text „Warum leuchtet DOT bei OC2REF = 1?“ ist bei ausgewähltem TIM2 sachlich nicht zutreffend, weil dort kein PE11-/DOT-Signalpfad besteht. Bitte die Unterzeile von timer abhängig machen und in einem Browser-Test sowohl TIM1 als auch TIM2 im eingeklappten Zustand prüfen. Gerade das standardmäßig geschlossene Feld darf den zu korrigierenden Irrtum nicht erneut erzeugen.

Weitere gezielte Hinweise

  • [P2] Die unverändert sichtbare TIM1-Wahrheitstabelle zeigt auch im TIM2-Modus exemplarisch „PE11 LOW / DOT AN“. Ihre Überschrift bezeichnet sie korrekt als TIM1-Fall; dennoch sollte beim gewählten TIM2 der hypothetische Charakter noch unmissverständlicher hervortreten bzw. eine getrennte „nicht verbunden“-Darstellung erscheinen.
  • [P2] Das alte LED-Widget spricht bei TIM2 von „ausgeschaltet“, das neue Blockbild von „nicht verbunden“. Sichtbare Beschriftung und Accessible Name sollten dieselbe Unterscheidung treffen. Der E2E-Test fordert derzeit ausdrücklich den alten Text.
  • [P2] Verifizierbare Fundstelle (Titel, Revision/Seite, idealerweise Link) zur Praktikumsanleitung für die low-aktive DOT-/CNTL-Zuordnung ergänzen; die ausdrücklich kenntlich gemachten Hardwarevereinfachungen beibehalten.
  • [P2 Tests] Auch den geschlossenen TIM2-Text, TIM2 mit OC2REF=0 und die Abwesenheit einer aktuellen TIM1-Tabellenzeile im TIM2-Modus prüfen.
  • [P3 Accessibility] Bei manuellen Register-/CNT-Schritten könnte eine dezente, gezielte Zustandsansage helfen; keine permanent sprechende Live-Tabelle bei Animationen.

Gesamturteil

Stärken: Die beiden logischen Umkehrungen sind klar erklärt, TIM1-Pegel und DOT-Zustand reagieren korrekt auf die modellierten PWM-Ereignisse, Freigabe- und Adapterannahmen werden offengelegt, das neue Blockbild ergänzt das bestehende Zeitdiagramm ohne Eingriff in das Hardwaremodell. Die neuen Screenshots sind stimmig. Es gibt keinen nachgewiesenen Fehler in der eigentlichen Timer-/PWM-Berechnung.

Request Changes empfohlen, primär wegen der widersprüchlichen TIM2-Kernaussage im geschlossenen Einstieg und der Statusinkonsistenz zum LED-Widget. Nach diesen überschaubaren Text-/Statuskorrekturen halte ich den PR fachlich-didaktisch für mergefähig; die restlichen Punkte können im Rahmen dieses PRs oder als Folgeaufgaben behandelt werden.

Keine Codeänderungen, kein Merge, keine Änderung des PR-Status durch mich.

KreutzM commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

Unabhängiges Review zu PR #13: gezielte Auswertung und Korrektur

Danke für die sechs Inline-Findings. Die fachlich relevanten TIM2-Widersprüche wurden korrigiert, ohne die gemeinsame Timer-/PWM-Berechnung oder den Scope des Issues zu ändern.

Übernommen

  1. [P1] Geschlossener Summarytext: Bei TIM1 heißt es ausdrücklich „Warum leuchtet DOT bei OC2REF = 1 (im TIM1-Modell)?“. Bei TIM2 fragt der weiterhin sichtbare geschlossene Text stattdessen „Warum hat TIM2_CH2 keinen DOT-Pfad über PE11?“.
  2. [P2] Zustandstabelle: Bei TIM2 wird die gesamte rein hypothetische TIM1-Pinpegeltabelle ausgeblendet und durch einen kurzen, unmissverständlichen Hinweis „nur TIM1-Beispiel / kein PE11-Pegel“ ersetzt. Auch die vorher generisch benannte Ausgangsstufe trägt im TIM2-Fall keine implizite TIM1-Ausgangspolaritäts-/Freigabeannahme.
  3. [P2] Bestehendes LED-Widget: Bei TIM2 heißen die sichtbaren Zustände „Nicht verbunden“ und „Kein Mittelwert“, auch in den beiden Accessible Names. Nicht verbunden ≠ ausgeschaltet. Im TIM1-Betrieb bleiben die AN-/AUS-Aussagen und Helligkeitswerte erhalten.
  4. [P2] Primärquellen: README ergänzt um den in den Projektunterlagen tatsächlich vorliegenden Titel, Herausgeber Technische Hochschule Mittelhessen, Version 1.6 vom 13.10.2026, Abschnitt 7.1.1, Druckseiten 28–29/79 (low-aktive Segmente/CNTL), sowie 7.6.3, Druckseiten 51–52/79 (TIM1_CH2 / GPIO_AF1_TIM1 / PE11 / DOT). Die Lehrunterlagen sind nicht öffentlich im Demo-Repository abgelegt; zusätzlich verlinkt sind die offiziellen ST-STM32F429-Datenblatt-/AF-Angaben, Waveshare Open429Z-D und Waveshare 8 SEG LED Board, jeweils mit ihren Dokumentations-/Schaltplanressourcen. Kein verifizierter Adapterboard-Stromlaufplan wird behauptet.
  5. [P2] E2E-Regression: Tests prüfen nun den eingeklappten TIM1- und TIM2-Text, das vollständige Weglassen der TIM1-Pegeltabelle bei TIM2, OC2REF=1 und =0 ohne PE11-Verbindung, die korrigierten LED-Accessible-Names und Keyboard-Öffnen/-Schließen.

Bewusst nicht umgesetzt

[P3] Permanente Screenreader-Live-Ansagen bei jedem CNT-/CCR-Schritt: Kann bei der laufenden Animation unnötige Ansagefluten erzeugen und würde zusätzliche Unterscheidung von manuell/automatisch ausgelösten Zustandsänderungen erfordern. Die vorhandenen Statuswerte und semantischen Labels bleiben regulär auslesbar. Eine gezielte, debouncte Ankündigung nach manuellen Aktionen könnte bei Bedarf in einem eigenen Accessibility-Schritt ergänzt werden; kein fachlicher Merge-Blocker.

Abschlussprüfung

  • 36/36 Playwright-Tests bestanden (18 Desktop + 18 Mobil), Typecheck, Unit-Tests, Build und Lighthouse grün.
  • GitHub Actions 43219003574 ist auf dem exakten PR-Head 14b3e0c erfolgreich abgeschlossen.
  • Aktuelle Desktop-/Mobil-Screenshots visuell auf den geschlossenen TIM2-Einstieg, die abweichenden LED-Labels und den TIM1-Signalweg geprüft; keine augenfälligen Layoutfehler. Vorherige dynamische Signaltests bleiben unverändert grün.

PR #13 bleibt offen, Issue #5 bleibt offen; kein Merge ohne explizite Nutzerfreigabe.

@KreutzM
KreutzM merged commit 32561e5 into main Nov 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Didaktik: PWM-Signalweg (OCxREF → PE11 → low-aktive DOT-LED) als Blockschaltbild visualisieren

1 participant