Compare commits

...

19 Commits

Author SHA1 Message Date
Tom 880df37a7b Dokumentation um Ratio und Gewichtung ergänzt. 8 months ago
Tom 1473d5f4a4 Dokumentation mit Doxygen zugefügt 8 months ago
Tom 1e89eccab2 Textspeicher fertig gestellt mit Speicherung im EEprom. Texte lassen
sich über USB Kabel mit serieller Console ändern (Putty, Miniterm).
8 months ago
Tom 704eb9faad Ein Taster für TRX1/TRX2 Umschaltung durch Konfiguration möglich.
Speicher- und Speichertexte begonnen.
Sendefunktionen von Texten hinzugefügt.
8 months ago
Tom 20f0d60e78 Ansteuerung der Transceiver eingebaut, Menü dafür etwas verändert.
Erste Vorbereitungen für das Senden von Texten.
8 months ago
Tom 75daf456cd Funktionen SetRatio und Weight getestet. Punkt/Strich Speicher
implementiert und getestet.
8 months ago
Tom 74f768a095 Es wird vorerst keine Winkeyer Emulation geben, da ich die Funktion
nicht benötige. Der Wert im EEprom wurde zu geschwindigkeitsabhängigem
Punkt/Strich Verhältnis geändert. Die Berechnung muss noch in SetRatio()
erfolgen.

Anzeige auf dem Display geändert, es wird nun das eingestellte
Punkt/Strich Verhältnis und der Punkt/Strich Speicherstatus anzeigt.

Dokumentation ergänzt.
8 months ago
Tom ffeece7d9e Iambic Modes fertig. StraightKey fertig.
In der nächsten Version testen, ob Drehencoder nicht besser über
PinChangeInterrupt aufgerufen werden sollte.
8 months ago
Tom 463869f62f Das Probem mit dem Iambic Mode lag bei der Funktion der Entprellung der
Tasteneingänge. Muss ein > 100€ Keyer überhaupt eine Entprellung haben?

Überlegung, ob es nicht sinnvoller ist, die Tasteneingänge per Interrupt
abzufragen. Das würde den Code auch noch erheblich vereinfachen, da
nicht ständig an allen möglichen Stellen die Paddle abgefragt werden
müssten.
8 months ago
Tom da9d6dd4d0 Iambic Mode funktioniert nicht, zum Prüfen eine ältere Version
auschecken, testen und dann wieder auf diese Version zurück.
8 months ago
Tom fa91f5c9d1 Menüfunktionen fertiggestellt
KeyerMode bearbeitet

Problem mit dem IAMBIC Modes, kein wechselndes Symbol mehr. Dies liegt
wohl an den vielen Änderungen der Zeichenerzeugung.
9 months ago
Tom af2821bf5f Menüfunktionen für die Einstellungen vervollständigt. 9 months ago
Tom 957ac1fa8d Umstrukturierung des Quellcodes in mehr Dateien 9 months ago
Tom 2bdecacf56 Verzeichnisse aufgeräumt 9 months ago
Tom 0ce89c6276 Erweiterung des Menüs für die Einstellungen und Speicherung von
Einstellungen im EEprom.
9 months ago
Tom c815b6c36b Attack und Release für den Mithörton implementiert.
Sinustabelle auf 64 Werte (konfigurierbar auch für
128 Werte) geändert.
9 months ago
Tom 47b030ab96 Änderungen am Layout 10 months ago
Tom 91de31a96a Makefile angepasst, Ausgabe von Speicherinformation 10 months ago
Tom be90873faa Source, Pictures und Documents in das git Repository aufgenommen. 10 months ago

9
.gitignore vendored

@ -1,7 +1,8 @@
*~
.*.swp
Audio
Source
Documents
Pictures
*.bak
Scratch
doxygen-awesome-css
External
Tools

3
.gitmodules vendored

@ -0,0 +1,3 @@
[submodule "doxygen-awesome-css"]
path = doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

@ -153,7 +153,7 @@
(net 71 "Net-(U2-PB1)")
(net 72 "unconnected-(U3-~{RTS}-Pad2)")
(net 73 "unconnected-(U3-~{CTS}-Pad6)")
(net 74 "unconnected-(U3-CBUS2-Pad7)")
(net 74 "unconnected-(U3-CBUS0-Pad15)")
(net 75 "unconnected-(U4-NC-Pad2)")
(net 76 "unconnected-(J2-Pad4)")
(net 77 "unconnected-(J4-Pad4)")
@ -168,20 +168,19 @@
(net 86 "/Ext Right Paddle")
(net 87 "Net-(J3-Pin_6)")
(net 88 "/Mem 5")
(net 89 "Net-(R3-Pad1)")
(net 90 "Net-(R22-Pad2)")
(net 91 "Net-(S1-Pad3)")
(net 92 "Net-(S2-Pad3)")
(net 93 "Net-(S3-Pad3)")
(net 94 "Net-(S4-Pad3)")
(net 95 "Net-(J16-D-)")
(net 96 "Net-(J16-D+)")
(net 97 "Net-(J16-VCC)")
(net 98 "unconnected-(J16-SHIELD__1-PadSH2)")
(net 99 "unconnected-(J16-SHIELD__4-PadSH5)")
(net 100 "/SDA")
(net 101 "/SCL")
(net 102 "Net-(C22-Pad1)")
(net 89 "Net-(R22-Pad2)")
(net 90 "Net-(S1-Pad3)")
(net 91 "Net-(S2-Pad3)")
(net 92 "Net-(S3-Pad3)")
(net 93 "Net-(S4-Pad3)")
(net 94 "Net-(J16-D-)")
(net 95 "Net-(J16-D+)")
(net 96 "Net-(J16-VCC)")
(net 97 "unconnected-(J16-SHIELD__1-PadSH2)")
(net 98 "unconnected-(J16-SHIELD__4-PadSH5)")
(net 99 "/SDA")
(net 100 "/SCL")
(net 101 "Net-(C22-Pad1)")
(footprint "Package_SO:SO-8_3.9x4.9mm_P1.27mm" (layer "F.Cu")
(tstamp 02d5596c-6ae5-47b6-86a9-b676461dca6e)
@ -509,7 +508,7 @@
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 65 "Net-(U3-USBDP)") (pintype "passive") (tstamp df3b3a32-e392-4b20-88ed-929ef19df625))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 96 "Net-(J16-D+)") (pintype "passive") (tstamp 2e05bf7f-fcfc-4deb-b35a-3b52a5b1278b))
(net 95 "Net-(J16-D+)") (pintype "passive") (tstamp 2e05bf7f-fcfc-4deb-b35a-3b52a5b1278b))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
@ -816,7 +815,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 981efb0c-83a7-4123-996d-0ae0a38527f1))
(pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 89 "Net-(R3-Pad1)") (pintype "passive") (tstamp b1e3fa9d-a2e4-4e33-82c8-0276bc236c95))
(net 1 "+5V") (pintype "passive") (tstamp b1e3fa9d-a2e4-4e33-82c8-0276bc236c95))
(pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 42 "/Mem 1") (pintype "passive") (tstamp b2acbb9b-3a06-41dd-b171-b22eb6cacf11))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -924,7 +923,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4018b7ee-c152-411d-a591-f341ea2d81ef))
(pad "1" smd roundrect (at -0.95 0) (size 1 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25)
(net 95 "Net-(J16-D-)") (pintype "passive") (tstamp 78eae378-8029-469f-a41a-e6d21d15a518))
(net 94 "Net-(J16-D-)") (pintype "passive") (tstamp 78eae378-8029-469f-a41a-e6d21d15a518))
(pad "2" smd roundrect (at 0.95 0) (size 1 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25)
(net 14 "GNDA") (pintype "passive") (tstamp 188cdc25-0bd5-4ad8-b1bd-bf437709cdfb))
(model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0805_2012Metric.wrl"
@ -1235,7 +1234,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp dbc1ef80-7dd4-4f1c-9a73-a414860504fc))
(pad "1" smd roundrect (at -0.9125 0 90) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 97 "Net-(J16-VCC)") (pintype "passive") (tstamp 0ed40fac-99cb-46bf-a206-f6ad54793d52))
(net 96 "Net-(J16-VCC)") (pintype "passive") (tstamp 0ed40fac-99cb-46bf-a206-f6ad54793d52))
(pad "2" smd roundrect (at 0.9125 0 90) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 67 "Net-(U3-CBUS3)") (pintype "passive") (tstamp 7e232bf4-c1b2-4a5b-8c0f-fcc46a211c2a))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -1289,7 +1288,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1705de42-0269-47a4-9fa5-38e0cd1be584))
(pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 89 "Net-(R3-Pad1)") (pintype "passive") (tstamp 937cf1cf-b291-4ba9-94cd-8490bb297e54))
(net 1 "+5V") (pintype "passive") (tstamp 937cf1cf-b291-4ba9-94cd-8490bb297e54))
(pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 88 "/Mem 5") (pintype "passive") (tstamp 686e1c87-c6db-4634-a70e-c5638218690a))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -1490,7 +1489,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f86702a8-d399-460a-81cc-91abd5a3db49))
(pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 89 "Net-(R3-Pad1)") (pintype "passive") (tstamp fe7b2c5a-46e6-4674-8be3-cfacaa6175d6))
(net 1 "+5V") (pintype "passive") (tstamp fe7b2c5a-46e6-4674-8be3-cfacaa6175d6))
(pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 39 "/Mem 4") (pintype "passive") (tstamp 72ec8b3e-69aa-4056-8c84-c373983fa643))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -1617,11 +1616,11 @@
(fp_circle (center -0.15 0) (end -0.07 0)
(stroke (width 0.16) (type solid)) (fill none) (layer "F.Fab") (tstamp 7d4a269a-4d07-425c-bc1e-cbd12aa05eaf))
(pad "1" smd rect (at 0 0 180) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 97 "Net-(J16-VCC)") (pinfunction "VCC") (pintype "passive") (tstamp 7fe95bb5-d77a-421c-a698-eb17fb4b78df))
(net 96 "Net-(J16-VCC)") (pinfunction "VCC") (pintype "passive") (tstamp 7fe95bb5-d77a-421c-a698-eb17fb4b78df))
(pad "2" smd rect (at 0 0.65 180) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 95 "Net-(J16-D-)") (pinfunction "D-") (pintype "passive") (tstamp a36f3fd6-d0aa-41fe-b5fb-ea04eb5869a3))
(net 94 "Net-(J16-D-)") (pinfunction "D-") (pintype "passive") (tstamp a36f3fd6-d0aa-41fe-b5fb-ea04eb5869a3))
(pad "3" smd rect (at 0 1.3 180) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 96 "Net-(J16-D+)") (pinfunction "D+") (pintype "passive") (tstamp 98c89935-0dc9-425a-8d58-0d1821bae928))
(net 95 "Net-(J16-D+)") (pinfunction "D+") (pintype "passive") (tstamp 98c89935-0dc9-425a-8d58-0d1821bae928))
(pad "4" smd rect (at 0 1.95 180) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 14 "GNDA") (pinfunction "ID") (pintype "passive") (tstamp 33540919-c5f2-4723-9277-42d85ba77f0b))
(pad "5" smd rect (at 0 2.6 180) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
@ -1629,13 +1628,13 @@
(pad "SH1" thru_hole oval (at -1.55 -2.2 180) (size 2.4 1.2) (drill oval 1.4 0.6) (layers "*.Cu" "*.Mask")
(net 14 "GNDA") (pinfunction "SHIELD") (pintype "passive") (tstamp e66a8f88-e42e-4bf8-a83d-c3b34489c271))
(pad "SH2" thru_hole oval (at 0.55 -0.925 180) (size 2.1 1.05) (drill 0.65) (layers "*.Cu" "*.Mask")
(net 98 "unconnected-(J16-SHIELD__1-PadSH2)") (pinfunction "SHIELD__1") (pintype "no_connect") (tstamp 2a062463-571d-4565-95c8-a4969e3e6d49))
(net 97 "unconnected-(J16-SHIELD__1-PadSH2)") (pinfunction "SHIELD__1") (pintype "no_connect") (tstamp 2a062463-571d-4565-95c8-a4969e3e6d49))
(pad "SH3" smd rect (at -1.55 1.3 180) (size 0.9 3) (layers "F.Cu" "F.Paste" "F.Mask")
(net 14 "GNDA") (pinfunction "SHIELD__2") (pintype "passive") (tstamp 276efacc-9b15-4073-9b1a-a3a8d3cd5760))
(pad "SH4" thru_hole oval (at -1.55 4.8 180) (size 2.4 1.2) (drill oval 1.4 0.6) (layers "*.Cu" "*.Mask")
(net 14 "GNDA") (pinfunction "SHIELD__3") (pintype "passive") (tstamp bdff8e28-458c-4dab-a5e8-5c3814b1409c))
(pad "SH5" thru_hole oval (at 0.55 3.525 180) (size 2.1 1.05) (drill 0.65) (layers "*.Cu" "*.Mask")
(net 99 "unconnected-(J16-SHIELD__4-PadSH5)") (pinfunction "SHIELD__4") (pintype "no_connect") (tstamp 3415b66d-fa2d-41aa-893a-dbc53152c674))
(net 98 "unconnected-(J16-SHIELD__4-PadSH5)") (pinfunction "SHIELD__4") (pintype "no_connect") (tstamp 3415b66d-fa2d-41aa-893a-dbc53152c674))
(model "${KIPRJMOD}/3D-Models/CUI_DEVICES_UJ2-MIBH2-4-SMT.step"
(offset (xyz -4.5 -5 2))
(scale (xyz 1 1 1))
@ -2065,7 +2064,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e3794604-af3d-4616-b2dd-e48763e49b9d))
(pad "1" smd roundrect (at -0.95 0) (size 1 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25)
(net 96 "Net-(J16-D+)") (pintype "passive") (tstamp ef4f5c6a-57dc-4969-b969-64a1797ade71))
(net 95 "Net-(J16-D+)") (pintype "passive") (tstamp ef4f5c6a-57dc-4969-b969-64a1797ade71))
(pad "2" smd roundrect (at 0.95 0) (size 1 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25)
(net 14 "GNDA") (pintype "passive") (tstamp 7a50b10a-acbe-4b49-ad70-6fb7a7ecb8ae))
(model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0805_2012Metric.wrl"
@ -2348,11 +2347,11 @@
(fp_circle (center -6.25 -2.25) (end -6.15 -2.25)
(stroke (width 0.2) (type solid)) (fill none) (layer "F.Fab") (tstamp ed601a1c-fa56-4b6c-acd0-fe5c1425b3dc))
(pad "1" smd rect (at -4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 91 "Net-(S1-Pad3)") (pintype "passive") (tstamp fc3a39ce-3b05-4173-bd2b-503f421b821d))
(net 90 "Net-(S1-Pad3)") (pintype "passive") (tstamp fc3a39ce-3b05-4173-bd2b-503f421b821d))
(pad "2" smd rect (at -4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 36 "Net-(J3-Pin_3)") (pintype "passive") (tstamp b12ed3f9-5ffc-4958-8373-ae7cec0128af))
(pad "3" smd rect (at 4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 92 "Net-(S2-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 9b23294b-d779-4464-9fa0-8022d800a6c2))
(net 91 "Net-(S2-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 9b23294b-d779-4464-9fa0-8022d800a6c2))
(pad "4" smd rect (at 4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 36 "Net-(J3-Pin_3)") (pintype "passive") (tstamp ce6609e3-33f1-47f4-8ea5-e1cc94a4fe59))
(model "${KIPRJMOD}/3D-Models/CUI_DEVICES_TS04-66-85-BK-160-SMT.step"
@ -2408,7 +2407,7 @@
(pad "1" smd roundrect (at -0.9125 0 270) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 18 "Net-(C20-Pad1)") (pintype "passive") (tstamp 01c0197d-feeb-4a1b-8093-1da18118796e))
(pad "2" smd roundrect (at 0.9125 0 270) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 90 "Net-(R22-Pad2)") (pintype "passive") (tstamp 4b58086d-3e69-4b4d-b8b9-5bb25fb70e1c))
(net 89 "Net-(R22-Pad2)") (pintype "passive") (tstamp 4b58086d-3e69-4b4d-b8b9-5bb25fb70e1c))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
@ -2800,9 +2799,9 @@
(fp_line (start 0 7.92) (end 0 7.32)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp aba4971a-ab6c-48c8-af39-7a80865ac3fd))
(pad "1" thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask")
(net 100 "/SDA") (pinfunction "Pin_1") (pintype "passive") (tstamp 6bbb546e-c4e0-4357-978a-b6fde0ac9091))
(net 99 "/SDA") (pinfunction "Pin_1") (pintype "passive") (tstamp 6bbb546e-c4e0-4357-978a-b6fde0ac9091))
(pad "2" thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask")
(net 101 "/SCL") (pinfunction "Pin_2") (pintype "passive") (tstamp edcd3ab6-18b8-4421-835a-ad1c6c430d59))
(net 100 "/SCL") (pinfunction "Pin_2") (pintype "passive") (tstamp edcd3ab6-18b8-4421-835a-ad1c6c430d59))
(pad "3" thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask")
(net 1 "+5V") (pinfunction "Pin_3") (pintype "passive") (tstamp 03b9652d-0007-4fc0-93a0-d9a1a3bdbc1c))
(pad "4" thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask")
@ -2847,7 +2846,7 @@
(fp_circle (center 0 0) (end 1.5 0)
(stroke (width 0.05) (type solid)) (fill none) (layer "F.CrtYd") (tstamp cf3ede8c-4040-4c0f-88c1-9507e078ed82))
(pad "1" smd circle (at 0 0) (size 2 2) (layers "F.Cu" "F.Mask")
(net 90 "Net-(R22-Pad2)") (pinfunction "1") (pintype "passive") (tstamp 30d8911d-56b4-4dc8-aec5-e5e8b49981a1))
(net 89 "Net-(R22-Pad2)") (pinfunction "1") (pintype "passive") (tstamp 30d8911d-56b4-4dc8-aec5-e5e8b49981a1))
)
(footprint "LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder" (layer "F.Cu")
@ -3183,7 +3182,7 @@
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 64 "Net-(U3-USBDM)") (pintype "passive") (tstamp 0f2a6868-a50d-46de-a79b-44f9577cfc9f))
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 95 "Net-(J16-D-)") (pintype "passive") (tstamp 004980a8-5c99-44ea-baa1-76da2a60f155))
(net 94 "Net-(J16-D-)") (pintype "passive") (tstamp 004980a8-5c99-44ea-baa1-76da2a60f155))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
@ -3619,11 +3618,11 @@
(fp_line (start 3.4 7.4) (end 3.4 -2.4)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7f9474d8-9968-4199-a92d-f6cc503f9bcf))
(pad "1" thru_hole rect (at 0 0 180) (size 1.8 1.8) (drill 1) (layers "*.Cu" "*.Mask")
(net 102 "Net-(C22-Pad1)") (pinfunction "1") (pintype "passive") (tstamp d3b8911e-2837-440c-a88d-9a0fa57d843e))
(net 101 "Net-(C22-Pad1)") (pinfunction "1") (pintype "passive") (tstamp d3b8911e-2837-440c-a88d-9a0fa57d843e))
(pad "2" thru_hole circle (at 0 2.5 180) (size 1.8 1.8) (drill 1) (layers "*.Cu" "*.Mask")
(net 19 "Net-(C21-Pad1)") (pinfunction "2") (pintype "passive") (tstamp fb0aabc5-b0cd-4fa3-8661-c4de3e20b8ff))
(pad "3" thru_hole circle (at 0 5 180) (size 1.8 1.8) (drill 1) (layers "*.Cu" "*.Mask")
(net 90 "Net-(R22-Pad2)") (pinfunction "3") (pintype "passive") (tstamp 63b21e5c-c8ea-43e9-90aa-aa0476e92d2e))
(net 89 "Net-(R22-Pad2)") (pinfunction "3") (pintype "passive") (tstamp 63b21e5c-c8ea-43e9-90aa-aa0476e92d2e))
(pad "MP" thru_hole roundrect (at 3.3 -2.5 180) (size 4 3) (drill oval 2.1 1.8) (layers "*.Cu" "*.Mask") (roundrect_rratio 0.25) (tstamp a2334b7d-1385-4baa-8d08-ab0e064ee077))
(pad "MP" thru_hole roundrect (at 3.3 7.5 180) (size 4 3) (drill oval 2.1 1.8) (layers "*.Cu" "*.Mask") (roundrect_rratio 0.25) (tstamp 9f66edbb-789a-4413-948c-611e451aac74))
(zone (net 0) (net_name "") (layer "F.Cu") (tstamp 25a16326-561f-4bad-98a2-65f963d4edd1) (name "Copper Keep Out") (hatch full 0.508)
@ -3705,7 +3704,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bdbd4632-82ef-49f4-b10e-04c8e22f74eb))
(pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 89 "Net-(R3-Pad1)") (pintype "passive") (tstamp 97461146-2d10-422b-b452-b631e3715527))
(net 1 "+5V") (pintype "passive") (tstamp 97461146-2d10-422b-b452-b631e3715527))
(pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 41 "/Mem 2") (pintype "passive") (tstamp 57f44d51-e705-4159-854e-4af89c67d0df))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -4142,11 +4141,11 @@
(fp_circle (center -6.25 -2.25) (end -6.15 -2.25)
(stroke (width 0.2) (type solid)) (fill none) (layer "F.Fab") (tstamp a543081c-7248-4541-9bbc-ab65756ffeb9))
(pad "1" smd rect (at -4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 92 "Net-(S2-Pad3)") (pintype "passive") (tstamp b899bad4-aac8-4868-aeb2-7a60b91123f8))
(net 91 "Net-(S2-Pad3)") (pintype "passive") (tstamp b899bad4-aac8-4868-aeb2-7a60b91123f8))
(pad "2" smd rect (at -4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 37 "Net-(J3-Pin_4)") (pintype "passive") (tstamp 279eeaf6-6d88-4285-9a5d-c6367572a60e))
(pad "3" smd rect (at 4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 93 "Net-(S3-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 71fdeb8e-46c0-4742-9172-e96754f7ef98))
(net 92 "Net-(S3-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 71fdeb8e-46c0-4742-9172-e96754f7ef98))
(pad "4" smd rect (at 4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 37 "Net-(J3-Pin_4)") (pintype "passive") (tstamp 876dcb2d-7d28-440b-b15a-a75e04855f19))
(model "${KIPRJMOD}/3D-Models/CUI_DEVICES_TS04-66-85-BK-160-SMT.step"
@ -4257,11 +4256,11 @@
(fp_circle (center -6.25 -2.25) (end -6.15 -2.25)
(stroke (width 0.2) (type solid)) (fill none) (layer "F.Fab") (tstamp cac6df34-88f2-40f8-8076-2ed4af52d34f))
(pad "1" smd rect (at -4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 93 "Net-(S3-Pad3)") (pintype "passive") (tstamp 569f0dd9-a328-42f8-9851-fcd73f9c692a))
(net 92 "Net-(S3-Pad3)") (pintype "passive") (tstamp 569f0dd9-a328-42f8-9851-fcd73f9c692a))
(pad "2" smd rect (at -4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 66 "Net-(J3-Pin_5)") (pintype "passive") (tstamp b6b39a6e-d698-4dea-acab-920ece1c41c6))
(pad "3" smd rect (at 4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 94 "Net-(S4-Pad3)") (pinfunction "3") (pintype "passive") (tstamp bbf5bcf6-2217-4f2f-8428-907f0ff2d319))
(net 93 "Net-(S4-Pad3)") (pinfunction "3") (pintype "passive") (tstamp bbf5bcf6-2217-4f2f-8428-907f0ff2d319))
(pad "4" smd rect (at 4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 66 "Net-(J3-Pin_5)") (pintype "passive") (tstamp 860b8d85-6c68-44bd-b036-acef3655bf22))
(model "${KIPRJMOD}/3D-Models/CUI_DEVICES_TS04-66-85-BK-160-SMT.step"
@ -5077,7 +5076,7 @@
(pad "2" smd rect (at -4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 35 "Net-(J3-Pin_2)") (pintype "passive") (tstamp c0610a24-229d-42e7-a297-b7c66f46a98f))
(pad "3" smd rect (at 4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 91 "Net-(S1-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 56c100a0-302c-4f8f-99cf-c2fab6ac39e5))
(net 90 "Net-(S1-Pad3)") (pinfunction "3") (pintype "passive") (tstamp 56c100a0-302c-4f8f-99cf-c2fab6ac39e5))
(pad "4" smd rect (at 4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 35 "Net-(J3-Pin_2)") (pintype "passive") (tstamp e7f604a4-7a75-4704-a329-c8dda4b824c9))
(model "${KIPRJMOD}/3D-Models/CUI_DEVICES_TS04-66-85-BK-160-SMT.step"
@ -5367,7 +5366,7 @@
(fp_circle (center -6.25 -2.25) (end -6.15 -2.25)
(stroke (width 0.2) (type solid)) (fill none) (layer "F.Fab") (tstamp 7f347f1c-3f0b-42e7-bbf4-f68f1153b863))
(pad "1" smd rect (at -4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 94 "Net-(S4-Pad3)") (pintype "passive") (tstamp b9a7c095-5335-4078-9c78-4b35c2ce1d03))
(net 93 "Net-(S4-Pad3)") (pintype "passive") (tstamp b9a7c095-5335-4078-9c78-4b35c2ce1d03))
(pad "2" smd rect (at -4.55 2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 87 "Net-(J3-Pin_6)") (pintype "passive") (tstamp 534c3633-5fc6-4ff9-9eb7-a3a745f27e63))
(pad "3" smd rect (at 4.55 -2.25) (size 2.1 1.4) (layers "F.Cu" "F.Paste" "F.Mask")
@ -5960,7 +5959,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 66fb8a2e-427c-4ed0-a6d1-17c5d2525a24))
(pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 89 "Net-(R3-Pad1)") (pintype "passive") (tstamp 742f9948-8ca5-4b73-b417-da59e930880d))
(net 1 "+5V") (pintype "passive") (tstamp 742f9948-8ca5-4b73-b417-da59e930880d))
(pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902439)
(net 40 "/Mem 3") (pintype "passive") (tstamp fa1c7ce9-f634-47ef-a23c-6547b4687683))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -6122,7 +6121,7 @@
(fp_line (start 1 0.625) (end -1 0.625)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cefbf9ad-16a0-4e4b-8981-20d143b25d96))
(pad "1" smd roundrect (at -1 0 90) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333)
(net 102 "Net-(C22-Pad1)") (pintype "passive") (tstamp bc9894ae-6595-4889-8e52-1ab563332661))
(net 101 "Net-(C22-Pad1)") (pintype "passive") (tstamp bc9894ae-6595-4889-8e52-1ab563332661))
(pad "2" smd roundrect (at 1 0 90) (size 1.2 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.2083333333)
(net 2 "GND") (pintype "passive") (tstamp 12e027ff-78bf-49fc-9c67-6fb46e3eded3))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.wrl"
@ -6331,9 +6330,9 @@
(pad "26" thru_hole oval (at 7.62 5.08 270) (size 1.6 1.6) (drill 0.8) (layers "*.Cu" "*.Mask")
(net 63 "/Key") (pinfunction "PC3") (pintype "bidirectional") (tstamp a8237ed5-ccef-45f0-9449-bd688fb1bde2))
(pad "27" thru_hole oval (at 7.62 2.54 270) (size 1.6 1.6) (drill 0.8) (layers "*.Cu" "*.Mask")
(net 100 "/SDA") (pinfunction "PC4") (pintype "bidirectional") (tstamp 26033468-b650-4477-95f1-28ca4addf8f2))
(net 99 "/SDA") (pinfunction "PC4") (pintype "bidirectional") (tstamp 26033468-b650-4477-95f1-28ca4addf8f2))
(pad "28" thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers "*.Cu" "*.Mask")
(net 101 "/SCL") (pinfunction "PC5") (pintype "bidirectional") (tstamp 72adffe7-5d76-438f-ad2d-d54add73d9a5))
(net 100 "/SCL") (pinfunction "PC5") (pintype "bidirectional") (tstamp 72adffe7-5d76-438f-ad2d-d54add73d9a5))
(model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-28_W7.62mm.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
@ -6561,7 +6560,7 @@
(pad "6" smd rect (at -2.6 0.9525 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 73 "unconnected-(U3-~{CTS}-Pad6)") (pinfunction "~{CTS}") (pintype "input+no_connect") (tstamp 0fde114b-8b4a-4033-a31f-8613f93b9616))
(pad "7" smd rect (at -2.6 1.5875 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 74 "unconnected-(U3-CBUS2-Pad7)") (pinfunction "CBUS2") (pintype "bidirectional+no_connect") (tstamp 5a4a254b-7330-46b6-967f-1a727af5800c))
(net 28 "Net-(D4-K)") (pinfunction "CBUS2") (pintype "bidirectional") (tstamp 5a4a254b-7330-46b6-967f-1a727af5800c))
(pad "8" smd rect (at -2.6 2.2225 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 65 "Net-(U3-USBDP)") (pinfunction "USBDP") (pintype "bidirectional") (tstamp d3f6f48e-801c-4038-83d1-37d8ae5fec69))
(pad "9" smd rect (at 2.6 2.2225 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
@ -6575,9 +6574,9 @@
(pad "13" smd rect (at 2.6 -0.3175 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 14 "GNDA") (pinfunction "GND") (pintype "power_in") (tstamp 7d62a380-6551-464a-8008-5a70f8237fa5))
(pad "14" smd rect (at 2.6 -0.9525 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 28 "Net-(D4-K)") (pinfunction "CBUS1") (pintype "bidirectional") (tstamp fba410d2-c8cb-4bb6-ba19-4ec9ef334fc5))
(net 30 "Net-(D5-K)") (pinfunction "CBUS1") (pintype "bidirectional") (tstamp fba410d2-c8cb-4bb6-ba19-4ec9ef334fc5))
(pad "15" smd rect (at 2.6 -1.5875 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 30 "Net-(D5-K)") (pinfunction "CBUS0") (pintype "bidirectional") (tstamp 9a98c4da-6853-4aa1-9cce-7b74b7cb2c20))
(net 74 "unconnected-(U3-CBUS0-Pad15)") (pinfunction "CBUS0") (pintype "bidirectional+no_connect") (tstamp 9a98c4da-6853-4aa1-9cce-7b74b7cb2c20))
(pad "16" smd rect (at 2.6 -2.2225 90) (size 1.2 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(net 67 "Net-(U3-CBUS3)") (pinfunction "CBUS3") (pintype "bidirectional") (tstamp 82f14614-ba2d-419b-8024-13898fa584ae))
(model "${KICAD6_3DMODEL_DIR}/Package_SO.3dshapes/SSOP-16_3.9x4.9mm_P0.635mm.wrl"
@ -6631,7 +6630,7 @@
(fp_line (start 1.6 0.8) (end -1.6 0.8)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 63c22381-94e5-42c2-b4b0-cac7c71fb6e2))
(pad "1" smd roundrect (at -1.5625 0 270) (size 1.325 1.8) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453)
(net 102 "Net-(C22-Pad1)") (pintype "passive") (tstamp 2e71afc4-afee-4653-88f4-84db6519e3fa))
(net 101 "Net-(C22-Pad1)") (pintype "passive") (tstamp 2e71afc4-afee-4653-88f4-84db6519e3fa))
(pad "2" smd roundrect (at 1.5625 0 270) (size 1.325 1.8) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1886792453)
(net 21 "Net-(C22-Pad2)") (pintype "passive") (tstamp 15b589b7-cbca-4d56-bb43-4160a0be45e5))
(model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1206_3216Metric.wrl"
@ -7540,6 +7539,7 @@
)
(segment (start 18.2861 70.5085) (end 18.288 70.5104) (width 0.5) (layer "F.Cu") (net 1) (tstamp 01c0b4f3-273f-4026-a73b-f3d477c49a6f))
(segment (start 25.3492 25.654) (end 23.7725 25.654) (width 0.25) (layer "F.Cu") (net 1) (tstamp 07005c9d-ee7a-4d04-9c8a-3409e746a6b1))
(segment (start 6.4516 70.5104) (end 18.288 70.5104) (width 1) (layer "F.Cu") (net 1) (tstamp 0cb1f34e-e745-40ee-8759-044f6a143670))
(segment (start 9.2964 4.6228) (end 29.6463 4.6228) (width 1) (layer "F.Cu") (net 1) (tstamp 12182b1b-2c04-475c-b0ea-dec5add6c8f3))
(segment (start 72.009 47.857) (end 69.955 49.911) (width 1) (layer "F.Cu") (net 1) (tstamp 1520a050-f3ff-4fb9-92ae-f9d36a98ffe1))
@ -7551,10 +7551,12 @@
(segment (start 63.6016 70.5104) (end 65.532 68.58) (width 1) (layer "F.Cu") (net 1) (tstamp 2a72f026-dde2-465e-b106-007ca19b7b23))
(segment (start 68.4276 39.2176) (end 69.6214 39.2176) (width 0.5) (layer "F.Cu") (net 1) (tstamp 2efa560e-b7eb-4b93-9c60-f0f879cd6cb4))
(segment (start 44.45 37.2872) (end 45.6692 38.5064) (width 0.5) (layer "F.Cu") (net 1) (tstamp 2f4196f4-69c9-4d9c-9bc8-20431dccabc8))
(segment (start 23.749 22.352) (end 23.749 22.853074) (width 0.25) (layer "F.Cu") (net 1) (tstamp 3296dbb7-3933-4b69-a6c2-e36e285bf123))
(segment (start 69.6214 39.2176) (end 72.009 36.83) (width 0.5) (layer "F.Cu") (net 1) (tstamp 36afe06b-3511-443c-8442-d16ee63cef7d))
(segment (start 56.2826 18.8976) (end 59.817 18.8976) (width 0.25) (layer "F.Cu") (net 1) (tstamp 3a26817a-15fa-4d23-827a-0b53bf0e6fd2))
(segment (start 66.68 58.42) (end 65.278 58.42) (width 1) (layer "F.Cu") (net 1) (tstamp 49a2c2ee-3e04-444c-beb2-5f6422c0ead9))
(segment (start 43.6372 37.2872) (end 44.45 37.2872) (width 0.5) (layer "F.Cu") (net 1) (tstamp 4b4045f9-29be-4fee-b91a-e7e4900651ec))
(segment (start 30.5308 20.6756) (end 20.9296 20.6756) (width 0.25) (layer "F.Cu") (net 1) (tstamp 4f8a59ba-6c97-4019-b027-525571238afa))
(segment (start 21.9744 66.9544) (end 22.7872 66.1416) (width 0.5) (layer "F.Cu") (net 1) (tstamp 4fc2bba2-0a6a-41dc-a124-0cad153fabc8))
(segment (start 35.9868 6.0756) (end 34.793 7.2694) (width 1) (layer "F.Cu") (net 1) (tstamp 519752a2-12c6-421f-ab04-d21397618063))
(segment (start 34.793 7.2694) (end 34.793 9.7695) (width 1) (layer "F.Cu") (net 1) (tstamp 5376a490-fb0d-4fdf-a827-be9f7378f6cc))
@ -7567,14 +7569,19 @@
(segment (start 72.009 29.995726) (end 72.007326 29.995726) (width 1) (layer "F.Cu") (net 1) (tstamp 756cfc67-cfea-48ea-88e3-090a8238f525))
(segment (start 34.4932 60.706) (end 34.039672 60.706) (width 0.5) (layer "F.Cu") (net 1) (tstamp 7575d3d8-6ea7-4a75-9e55-92885ddf61bf))
(segment (start 32.9692 70.5104) (end 63.6016 70.5104) (width 1) (layer "F.Cu") (net 1) (tstamp 75f2ee7c-ca87-489d-9b03-41a0b6985737))
(segment (start 23.7725 35.56) (end 25.2984 35.56) (width 0.25) (layer "F.Cu") (net 1) (tstamp 77718d50-9f0c-48f1-9e34-382e340e0fa4))
(segment (start 31.9024 20.6756) (end 31.9024 12.6601) (width 0.25) (layer "F.Cu") (net 1) (tstamp 81a7a464-d369-45f0-beb9-596035ac1728))
(segment (start 23.796 28.956) (end 25.3492 28.956) (width 0.25) (layer "F.Cu") (net 1) (tstamp 822be2ef-b7bf-45f7-bbdb-3760644fcd94))
(segment (start 5.802 36.79) (end 9.358 36.79) (width 1) (layer "F.Cu") (net 1) (tstamp 83517690-d51e-40b4-bccb-fde1275d754b))
(segment (start 56.261 18.876) (end 52.832 18.876) (width 0.25) (layer "F.Cu") (net 1) (tstamp 83b8bd9f-deeb-4182-a962-afda420cc017))
(segment (start 9.358 10.533994) (end 9.2964 10.472394) (width 1) (layer "F.Cu") (net 1) (tstamp 851243eb-4929-4110-9343-7afe6bc7286e))
(segment (start 18.288 70.5104) (end 32.9692 70.5104) (width 1) (layer "F.Cu") (net 1) (tstamp 873e36df-5a23-4a2d-b34e-011924ccc011))
(segment (start 48.758 22.95) (end 48.758 23.632) (width 0.25) (layer "F.Cu") (net 1) (tstamp 9518909a-7e17-477c-8ec4-44f94ff64ddc))
(segment (start 72.009 36.83) (end 72.009 29.995726) (width 1) (layer "F.Cu") (net 1) (tstamp 9788f174-e2c6-439c-908e-accf0f5dcd01))
(segment (start 25.2984 32.258) (end 25.3492 32.3088) (width 0.25) (layer "F.Cu") (net 1) (tstamp 9dec81c1-ce61-4e42-92cf-f0b156b527a8))
(segment (start 32.9692 61.674872) (end 32.9692 70.5104) (width 0.5) (layer "F.Cu") (net 1) (tstamp 9fcff212-a13a-4c74-8377-fc6959f54404))
(segment (start 20.4216 21.1836) (end 20.4216 22.352) (width 0.25) (layer "F.Cu") (net 1) (tstamp a249bfa0-a155-4f3d-8900-c31da16a2c46))
(segment (start 20.9296 20.6756) (end 20.4216 21.1836) (width 0.25) (layer "F.Cu") (net 1) (tstamp a31f0afd-6e52-4a05-8bbd-cab37f5be307))
(segment (start 65.532 68.58) (end 69.596 68.58) (width 1) (layer "F.Cu") (net 1) (tstamp a3f7e8ac-3436-45d4-99e8-e65e663e198b))
(segment (start 65.278 68.326) (end 65.532 68.58) (width 0.5) (layer "F.Cu") (net 1) (tstamp a468b564-c49e-46f6-bc22-b9ef78f3e0a2))
(segment (start 9.358 36.79) (end 9.358 10.533994) (width 1) (layer "F.Cu") (net 1) (tstamp a84602ad-6516-4795-970d-5ab1311caf04))
@ -7583,6 +7590,7 @@
(segment (start 67.288 52.578) (end 69.955 49.911) (width 1) (layer "F.Cu") (net 1) (tstamp b54b1c01-c4b9-45ac-a6e6-5a2762b840a7))
(segment (start 51.6636 7.366) (end 51.6636 9.8044) (width 1) (layer "F.Cu") (net 1) (tstamp b65570c2-557a-4676-be9a-0cca6de45f36))
(segment (start 50.3732 6.0756) (end 49.3776 6.0756) (width 1) (layer "F.Cu") (net 1) (tstamp be0c5061-8e25-43ef-b41b-6786cf9f519c))
(segment (start 23.749 32.258) (end 25.2984 32.258) (width 0.25) (layer "F.Cu") (net 1) (tstamp bebdbea6-ab80-48c0-991d-dc5d0b182e73))
(segment (start 9.2964 10.472394) (end 9.2964 4.6228) (width 1) (layer "F.Cu") (net 1) (tstamp c1ae5d94-b6f9-4d3f-a9fe-d8c8454417d8))
(segment (start 72.007326 29.995726) (end 68.858627 26.847027) (width 1) (layer "F.Cu") (net 1) (tstamp c42df000-0411-439e-ae0d-ed1b3fa475da))
(segment (start 56.261 18.876) (end 56.2826 18.8976) (width 0.25) (layer "F.Cu") (net 1) (tstamp c49078db-637c-41da-9a83-13b13736bf1c))
@ -7593,19 +7601,35 @@
(segment (start 52.832 18.876) (end 48.758 22.95) (width 0.25) (layer "F.Cu") (net 1) (tstamp ce3def18-8a18-403b-b016-b7d86f8ccfd6))
(segment (start 18.2861 66.9544) (end 18.2861 70.5085) (width 0.5) (layer "F.Cu") (net 1) (tstamp d8d5d2ce-f167-4512-8d33-49a2139a1c2a))
(segment (start 4.6228 37.9692) (end 4.6228 68.6816) (width 1) (layer "F.Cu") (net 1) (tstamp dec9a86b-694c-40ea-bf73-464fceab1d07))
(segment (start 25.2984 35.56) (end 25.3492 35.5092) (width 0.25) (layer "F.Cu") (net 1) (tstamp e165c5d2-3dfc-4099-b32f-03f562d8bf70))
(segment (start 10.4756 39.33) (end 12.528 39.33) (width 1) (layer "F.Cu") (net 1) (tstamp e523d883-0106-4fc6-b370-e7a47004784f))
(segment (start 23.749 22.853074) (end 22.716837 23.885237) (width 0.25) (layer "F.Cu") (net 1) (tstamp e99413f4-246a-4ad1-a3d7-5c7f367731a3))
(segment (start 49.276 10.4686) (end 50.9994 10.4686) (width 1) (layer "F.Cu") (net 1) (tstamp f1e234aa-5af4-4899-9386-9ce211ba18e5))
(segment (start 33.988872 60.6552) (end 32.9692 61.674872) (width 0.5) (layer "F.Cu") (net 1) (tstamp f3a919ce-d202-4fdd-93e9-a9df0b185a3c))
(segment (start 48.879027 26.847027) (end 48.641 26.609) (width 1) (layer "F.Cu") (net 1) (tstamp f6c2f40c-099f-417f-b46c-7b61dcf49533))
(segment (start 49.3776 6.0756) (end 35.9868 6.0756) (width 1) (layer "F.Cu") (net 1) (tstamp f9c0f136-7bf2-4856-9425-f847c00ba8f4))
(segment (start 4.6228 68.6816) (end 6.4516 70.5104) (width 1) (layer "F.Cu") (net 1) (tstamp fa0f920d-85b0-4bda-9080-8a1c9e7ee07e))
(via (at 20.4216 22.352) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 2ff41c0b-d875-4dd4-a04c-199293b8385e))
(via (at 45.6692 38.5064) (size 0.5) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp 465cdde3-dff4-4930-836e-d0ad4b6d5cf0))
(via (at 25.3492 25.654) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 55da00b1-6974-47dd-837a-b43631e93c40))
(via (at 25.3492 32.3088) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 7e1fa235-76d0-4f53-8e33-ca33b6de097c))
(via (at 25.3492 28.956) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp a41a7cce-e9d0-4f8c-a679-fca2a2afdb53))
(via (at 22.716837 23.885237) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp a6c29bb4-0c18-4e18-95e3-b12352e950e0))
(via (at 25.3492 35.5092) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp ad9a5e4d-659a-4070-887a-847890e4523c))
(via (at 72.009 36.83) (size 0.5) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp d250e96e-91d5-4eac-b368-fae53a89a327))
(via (at 68.4276 39.2176) (size 0.5) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp e291c97f-fd7b-469c-9cfb-3c7dd9fc93f5))
(segment (start 22.716837 23.885237) (end 23.580437 23.885237) (width 0.25) (layer "B.Cu") (net 1) (tstamp 0f0a5e41-9994-464b-a3b0-73031fbf9eff))
(segment (start 25.3492 25.654) (end 25.3492 28.956) (width 0.25) (layer "B.Cu") (net 1) (tstamp 1e73b42a-4654-4769-8985-ecef1c2cf8ea))
(segment (start 21.192837 23.885237) (end 22.716837 23.885237) (width 0.25) (layer "B.Cu") (net 1) (tstamp 26932021-0cc2-41c5-80dc-a5f12739c3e4))
(segment (start 25.3492 32.3088) (end 25.3492 35.5092) (width 0.25) (layer "B.Cu") (net 1) (tstamp 3c6f4b53-f5a8-42d5-ac3d-904addc830d9))
(segment (start 45.6692 38.5064) (end 46.3804 39.2176) (width 0.5) (layer "B.Cu") (net 1) (tstamp 473992ee-bd91-49b1-b457-5110edb0fa7b))
(segment (start 20.4216 22.352) (end 20.4216 23.114) (width 0.25) (layer "B.Cu") (net 1) (tstamp 5b28e340-a9d5-493c-9cca-daee3826fd48))
(segment (start 20.4216 23.114) (end 21.192837 23.885237) (width 0.25) (layer "B.Cu") (net 1) (tstamp 7511d47e-4c51-416a-9c31-6b970ffa8588))
(segment (start 25.3492 28.956) (end 25.3492 32.3088) (width 0.25) (layer "B.Cu") (net 1) (tstamp 99f7b804-f63f-4fe7-9e28-b592edfba034))
(segment (start 46.3804 39.2176) (end 68.4276 39.2176) (width 0.5) (layer "B.Cu") (net 1) (tstamp d8339d0c-6872-40d5-95d6-3cdf476ebd04))
(segment (start 72.009 36.83) (end 72.009 29.591) (width 1) (layer "B.Cu") (net 1) (tstamp e4844254-12cb-4510-8c6d-32bd62f10722))
(segment (start 72.009 29.591) (end 77.724 23.876) (width 1) (layer "B.Cu") (net 1) (tstamp eb2eca7d-0c32-45fe-bc8d-ca328c83c9e2))
(segment (start 23.580437 23.885237) (end 25.3492 25.654) (width 0.25) (layer "B.Cu") (net 1) (tstamp fe554315-bd82-4f72-a846-58757314431a))
(segment (start 43.688 39.6748) (end 47.8536 39.6748) (width 0.5) (layer "F.Cu") (net 2) (tstamp 008cffad-d39e-4a55-9986-66c1d7031d42))
(segment (start 77.724 49.911) (end 77.724 53.842) (width 1) (layer "F.Cu") (net 2) (tstamp 047a7761-377d-4dcb-9d8b-a8b7f0baae29))
(segment (start 47.8536 39.6748) (end 53.8912 39.6748) (width 0.5) (layer "F.Cu") (net 2) (tstamp 0b25fc1c-0826-45ce-919b-2e3d13390ec3))
@ -7944,34 +7968,16 @@
(segment (start 17.272 60.711) (end 15.6922 60.711) (width 0.5) (layer "B.Cu") (net 27) (tstamp 16c32e6c-c6e6-48c8-855e-68fd503f20d1))
(segment (start 15.24 61.1632) (end 15.24 62.8904) (width 0.5) (layer "B.Cu") (net 27) (tstamp 1a1177b9-dfe4-4756-aebc-4bb164f70b86))
(segment (start 15.24 62.8904) (end 15.1892 62.9412) (width 0.5) (layer "B.Cu") (net 27) (tstamp d2eff31c-9968-4f5a-b219-31d3b1c9efc6))
(segment (start 116.84 60.8076) (end 118.6688 62.6364) (width 0.25) (layer "F.Cu") (net 28) (tstamp 120fadb1-0181-4471-8a21-46929694916a))
(segment (start 128.27 72.263) (end 127.635 72.898) (width 0.25) (layer "F.Cu") (net 28) (tstamp 152d752b-7562-4a7c-97d7-d1a272c6259a))
(segment (start 101.854 71.628) (end 101.854 68.834) (width 0.25) (layer "F.Cu") (net 28) (tstamp 51cc900b-9168-4830-932d-6a9fe99b601f))
(segment (start 102.87 67.818) (end 102.87 65.786) (width 0.25) (layer "F.Cu") (net 28) (tstamp 9092a385-76f2-425e-b443-9c2fc384aca1))
(segment (start 107.442 53.086) (end 107.442 54.737) (width 0.25) (layer "F.Cu") (net 28) (tstamp ac7ad58b-89b6-4ed9-9164-3b0f27e421bd))
(segment (start 114.3 52.5405) (end 114.3 54.49) (width 0.25) (layer "F.Cu") (net 28) (tstamp d71567bb-e31e-403b-97e8-107c2ff29fd9))
(segment (start 101.854 68.834) (end 102.87 67.818) (width 0.25) (layer "F.Cu") (net 28) (tstamp d7bcaf87-8358-4eee-a2d2-ffba41ca75b3))
(segment (start 118.6688 70.6628) (end 118.8212 70.8152) (width 0.25) (layer "F.Cu") (net 28) (tstamp 57918a42-afa0-4d28-b2ad-0e242e528ee2))
(segment (start 116.84 59.69) (end 116.84 60.8076) (width 0.25) (layer "F.Cu") (net 28) (tstamp ad83d89b-464e-4a41-baf6-129133b6ad17))
(segment (start 118.6688 62.6364) (end 118.6688 70.6628) (width 0.25) (layer "F.Cu") (net 28) (tstamp bcdbd3a9-ede7-4f61-8aa6-15e614fc25ab))
(segment (start 128.27 70.485) (end 128.27 72.263) (width 0.25) (layer "F.Cu") (net 28) (tstamp f2e4bc5b-5792-4863-a899-0ddd977c4954))
(segment (start 106.68 52.324) (end 107.442 53.086) (width 0.25) (layer "F.Cu") (net 28) (tstamp f5137dc2-c922-4381-8ddf-f979beedfb81))
(via (at 106.68 52.324) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp 5300ae25-ad6c-4169-bb59-d63b9e4b888a))
(via (at 107.442 54.737) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp 8cc01bc8-a5c7-40c4-a2f0-a302d0c19187))
(via (at 127.635 72.898) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp c9cb7fa7-ea66-4b7f-b8ce-ba8d9684cd48))
(via (at 101.854 71.628) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp d5136f80-6f19-4715-b566-646e2444ba19))
(via (at 102.87 65.786) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp d9538350-baf2-4873-afc3-1d9b44753e4d))
(via (at 114.3 52.5405) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp eb349957-9cd4-4b39-8dd8-427def7ea228))
(segment (start 114.3 52.578) (end 114.898 53.176) (width 0.25) (layer "B.Cu") (net 28) (tstamp 21c376ac-b14d-447c-b123-45c1b380e25f))
(segment (start 103.886 72.898) (end 102.616 71.628) (width 0.25) (layer "B.Cu") (net 28) (tstamp 29a79655-ac53-4e33-b91d-66703b3a2561))
(segment (start 115.629396 51.366) (end 107.638 51.366) (width 0.25) (layer "B.Cu") (net 28) (tstamp 3beb9951-8ad0-4295-8234-8cbbd60339df))
(segment (start 102.616 71.628) (end 101.854 71.628) (width 0.25) (layer "B.Cu") (net 28) (tstamp 48da97ad-206b-4805-811c-df93a7ad8c81))
(segment (start 102.87 65.786) (end 102.87 54.991) (width 0.25) (layer "B.Cu") (net 28) (tstamp 4c73c4ab-b4aa-45ed-b33d-77dee2025540))
(segment (start 107.638 51.366) (end 106.68 52.324) (width 0.25) (layer "B.Cu") (net 28) (tstamp 4e411159-bb7f-436d-bf58-c1fc54270b73))
(segment (start 102.87 54.991) (end 103.124 54.737) (width 0.25) (layer "B.Cu") (net 28) (tstamp 4f6872f7-cff0-45ae-8845-201b2f65a2c9))
(segment (start 103.124 54.737) (end 107.442 54.737) (width 0.25) (layer "B.Cu") (net 28) (tstamp 58a5e83e-13ce-4bd2-9722-d4906c69b924))
(segment (start 114.3 52.5405) (end 114.3 52.578) (width 0.25) (layer "B.Cu") (net 28) (tstamp bc58c6bf-d609-4a01-a9e2-f1de6386f4ed))
(segment (start 127.635 72.898) (end 103.886 72.898) (width 0.25) (layer "B.Cu") (net 28) (tstamp cb313071-8883-41d6-8f56-f0c08da359bb))
(segment (start 116.168 52.751305) (end 116.168 51.904604) (width 0.25) (layer "B.Cu") (net 28) (tstamp d6f4d1b4-231b-4b9c-8b3c-3be804dd265a))
(segment (start 115.743305 53.176) (end 116.168 52.751305) (width 0.25) (layer "B.Cu") (net 28) (tstamp e41a4a62-2106-47c8-b117-4f31ffebae27))
(segment (start 114.898 53.176) (end 115.743305 53.176) (width 0.25) (layer "B.Cu") (net 28) (tstamp fde3fff6-61f4-4958-8a48-7917b748af67))
(segment (start 116.168 51.904604) (end 115.629396 51.366) (width 0.25) (layer "B.Cu") (net 28) (tstamp fe1f1004-3970-4906-b5b2-5a7219ad1ac5))
(via (at 118.8212 70.8152) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 28) (tstamp ed2c218a-f0a5-43d2-882d-90182aef0ba3))
(segment (start 118.8212 70.8152) (end 125.5522 70.8152) (width 0.25) (layer "B.Cu") (net 28) (tstamp 172a6aea-8131-4ce1-80ef-8d19e07f703a))
(segment (start 125.5522 70.8152) (end 127.635 72.898) (width 0.25) (layer "B.Cu") (net 28) (tstamp 38795461-bae4-4f1f-b859-47ab0ec354f8))
(segment (start 127 68.58) (end 127.145 68.435) (width 0.25) (layer "F.Cu") (net 29) (tstamp 1ed05ffa-7081-41f6-bc1d-8836715e85f4))
(segment (start 114.3 72.39) (end 125.73 72.39) (width 0.25) (layer "F.Cu") (net 29) (tstamp 70bd28fe-7216-42f9-9428-79ab6ab4839b))
(segment (start 127 71.12) (end 127 68.58) (width 0.25) (layer "F.Cu") (net 29) (tstamp 8ea43e5f-9241-4538-98e9-7e4c63b20d81))
@ -7981,13 +7987,10 @@
(segment (start 127.145 68.435) (end 128.27 68.435) (width 0.25) (layer "F.Cu") (net 29) (tstamp f3356e88-9fa0-4389-bb7b-7d9950c42084))
(segment (start 107.95 51.308) (end 109.22 52.578) (width 0.25) (layer "F.Cu") (net 30) (tstamp 25ef94ef-74ad-499f-91fd-aa2e847807cf))
(segment (start 101.972 66.666) (end 101.981 66.675) (width 0.25) (layer "F.Cu") (net 30) (tstamp 2961d859-8504-4769-b4db-3d3c5cff08bb))
(segment (start 113.665 53.64) (end 113.2005 53.1755) (width 0.25) (layer "F.Cu") (net 30) (tstamp 38254a5a-38b9-49f9-96dd-a5c5a37822e3))
(segment (start 101.981 52.578) (end 101.972 52.587) (width 0.25) (layer "F.Cu") (net 30) (tstamp 44e123ee-61bd-45f1-91fc-e2c7ea0682e7))
(segment (start 101.972 52.587) (end 101.972 66.666) (width 0.25) (layer "F.Cu") (net 30) (tstamp 8a44f199-b2b7-4a19-a985-7ab4533424b0))
(segment (start 101.981 52.578) (end 101.981 51.308) (width 0.25) (layer "F.Cu") (net 30) (tstamp b3ffb558-fbdf-40cc-9dba-c2d31a3655c8))
(segment (start 125.095 70.485) (end 125.095 71.6655) (width 0.25) (layer "F.Cu") (net 30) (tstamp b88a99b2-2ba1-4c47-8446-8ae504f2e0c5))
(segment (start 113.2005 53.1755) (end 112.776 53.1755) (width 0.25) (layer "F.Cu") (net 30) (tstamp bfcb2fc2-d2b7-45cb-a87e-922c6d8e284b))
(segment (start 113.665 54.49) (end 113.665 53.64) (width 0.25) (layer "F.Cu") (net 30) (tstamp ce86b155-d29a-4a54-8271-0f3b34f56394))
(segment (start 101.981 51.308) (end 107.95 51.308) (width 0.25) (layer "F.Cu") (net 30) (tstamp f355e6b6-7aea-4f64-8a34-e9d0b0c23b3d))
(via (at 112.776 53.1755) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 30) (tstamp 4ee999c8-4425-44a3-93b4-239c4c7a69e4))
(via (at 125.095 71.6655) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 30) (tstamp 601b1483-1f75-4218-b690-4f0d100b5b85))
@ -8314,107 +8317,89 @@
(segment (start 41.6052 33.2232) (end 41.7068 33.3248) (width 0.25) (layer "B.Cu") (net 88) (tstamp cad57356-40ae-42c6-bddd-05574144794c))
(segment (start 28.2956 33.2232) (end 41.6052 33.2232) (width 0.25) (layer "B.Cu") (net 88) (tstamp cb8c48b1-9751-4c6e-9c74-6603e9117c26))
(segment (start 42.418 29.972) (end 41.138 31.252) (width 0.25) (layer "B.Cu") (net 88) (tstamp f8944f8e-52f5-493e-8940-e21623f7f531))
(segment (start 25.3492 25.654) (end 23.7725 25.654) (width 0.25) (layer "F.Cu") (net 89) (tstamp 07005c9d-ee7a-4d04-9c8a-3409e746a6b1))
(segment (start 23.749 22.352) (end 23.749 22.853074) (width 0.25) (layer "F.Cu") (net 89) (tstamp 3296dbb7-3933-4b69-a6c2-e36e285bf123))
(segment (start 23.7725 35.56) (end 25.2984 35.56) (width 0.25) (layer "F.Cu") (net 89) (tstamp 77718d50-9f0c-48f1-9e34-382e340e0fa4))
(segment (start 23.796 28.956) (end 25.3492 28.956) (width 0.25) (layer "F.Cu") (net 89) (tstamp 822be2ef-b7bf-45f7-bbdb-3760644fcd94))
(segment (start 25.2984 32.258) (end 25.3492 32.3088) (width 0.25) (layer "F.Cu") (net 89) (tstamp 9dec81c1-ce61-4e42-92cf-f0b156b527a8))
(segment (start 23.749 32.258) (end 25.2984 32.258) (width 0.25) (layer "F.Cu") (net 89) (tstamp bebdbea6-ab80-48c0-991d-dc5d0b182e73))
(segment (start 25.2984 35.56) (end 25.3492 35.5092) (width 0.25) (layer "F.Cu") (net 89) (tstamp e165c5d2-3dfc-4099-b32f-03f562d8bf70))
(segment (start 23.749 22.853074) (end 22.716837 23.885237) (width 0.25) (layer "F.Cu") (net 89) (tstamp e99413f4-246a-4ad1-a3d7-5c7f367731a3))
(via (at 25.3492 25.654) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 55da00b1-6974-47dd-837a-b43631e93c40))
(via (at 25.3492 32.3088) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 7e1fa235-76d0-4f53-8e33-ca33b6de097c))
(via (at 25.3492 28.956) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp a41a7cce-e9d0-4f8c-a679-fca2a2afdb53))
(via (at 22.716837 23.885237) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp a6c29bb4-0c18-4e18-95e3-b12352e950e0))
(via (at 25.3492 35.5092) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp ad9a5e4d-659a-4070-887a-847890e4523c))
(segment (start 22.716837 23.885237) (end 23.580437 23.885237) (width 0.25) (layer "B.Cu") (net 89) (tstamp 0f0a5e41-9994-464b-a3b0-73031fbf9eff))
(segment (start 25.3492 25.654) (end 25.3492 28.956) (width 0.25) (layer "B.Cu") (net 89) (tstamp 1e73b42a-4654-4769-8985-ecef1c2cf8ea))
(segment (start 25.3492 32.3088) (end 25.3492 35.5092) (width 0.25) (layer "B.Cu") (net 89) (tstamp 3c6f4b53-f5a8-42d5-ac3d-904addc830d9))
(segment (start 25.3492 28.956) (end 25.3492 32.3088) (width 0.25) (layer "B.Cu") (net 89) (tstamp 99f7b804-f63f-4fe7-9e28-b592edfba034))
(segment (start 23.580437 23.885237) (end 25.3492 25.654) (width 0.25) (layer "B.Cu") (net 89) (tstamp fe554315-bd82-4f72-a846-58757314431a))
(segment (start 14.9352 46.228) (end 14.9352 50.7492) (width 0.25) (layer "F.Cu") (net 90) (tstamp 0f7666b2-3e27-4194-809f-ce2e3e6ed676))
(segment (start 14.9352 50.7492) (end 10.4648 50.7492) (width 0.25) (layer "F.Cu") (net 90) (tstamp 16dff2e6-d44d-4108-96ec-99dba665d37f))
(segment (start 16.6116 44.5516) (end 14.9352 46.228) (width 0.25) (layer "F.Cu") (net 90) (tstamp 2cfead59-ac49-4c7f-8a6c-32cf18f3b659))
(segment (start 10.4648 50.7492) (end 9.6012 51.6128) (width 0.25) (layer "F.Cu") (net 90) (tstamp 38b46cac-036c-4484-8b12-023e775f8f24))
(segment (start 16.6624 50.7492) (end 14.9352 50.7492) (width 0.25) (layer "F.Cu") (net 90) (tstamp 863827df-991b-4475-b036-b6b2ab645afb))
(via (at 9.6012 51.6128) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp f49c8890-b288-4b0f-af9b-fa470cfcb8ce))
(segment (start 6.8072 54.4068) (end 6.8072 62.5932) (width 0.25) (layer "B.Cu") (net 90) (tstamp 156e256a-fd4b-4560-8f95-9e277a588db9))
(segment (start 9.6012 51.6128) (end 6.8072 54.4068) (width 0.25) (layer "B.Cu") (net 90) (tstamp 16e6ba5c-bd67-4bf3-8a47-7d8cd7bf29e4))
(segment (start 6.8072 62.5932) (end 8.588 64.374) (width 0.25) (layer "B.Cu") (net 90) (tstamp 94e200d2-4606-4d3c-ab72-664ac0911721))
(segment (start 143.764 10.25) (end 140.88 10.25) (width 0.5) (layer "F.Cu") (net 91) (tstamp 2eb29f4e-cb1d-4a68-bf30-bff6d3a2fc8d))
(segment (start 138.684 12.446) (end 133.096 12.446) (width 0.5) (layer "F.Cu") (net 91) (tstamp 531fc555-dab9-472d-bbf1-f4a0e98c11be))
(segment (start 133.096 12.446) (end 133.096 21.226) (width 0.5) (layer "F.Cu") (net 91) (tstamp b96fb073-3bdc-4b80-8f65-185f29975ae2))
(segment (start 133.096 21.226) (end 134.62 22.75) (width 0.5) (layer "F.Cu") (net 91) (tstamp c91cb187-f3ff-47b4-b53c-e62ad312998a))
(segment (start 140.88 10.25) (end 138.684 12.446) (width 0.5) (layer "F.Cu") (net 91) (tstamp fdf1be44-1475-42a3-a646-4927d89b97fe))
(segment (start 134.45 34.755) (end 134.45 35.25) (width 0.5) (layer "F.Cu") (net 92) (tstamp 2c882465-8ec3-40b2-b9b3-1c06108f839b))
(segment (start 132.842 33.147) (end 134.45 34.755) (width 0.5) (layer "F.Cu") (net 92) (tstamp 42b7edfc-9419-467b-bb88-bb46dfd29379))
(segment (start 140.318 22.75) (end 138.303 24.765) (width 0.5) (layer "F.Cu") (net 92) (tstamp 5d8ceb4c-f235-43c0-b890-614371d7ecd8))
(segment (start 138.303 24.765) (end 132.842 24.765) (width 0.5) (layer "F.Cu") (net 92) (tstamp 7b6a436c-6aab-45bb-8a8a-29f35b1d923b))
(segment (start 143.72 22.75) (end 140.318 22.75) (width 0.5) (layer "F.Cu") (net 92) (tstamp b0ffcc92-6adb-432a-a8e6-2d63dceeebdf))
(segment (start 132.842 24.765) (end 132.842 33.147) (width 0.5) (layer "F.Cu") (net 92) (tstamp d09cba9f-bfa0-4167-8fe9-16aab03b6749))
(segment (start 138.684 37.592) (end 141.026 35.25) (width 0.5) (layer "F.Cu") (net 93) (tstamp 68d40029-773c-4944-9776-1327b4f67b46))
(segment (start 133.229 47.25) (end 132.461 46.482) (width 0.5) (layer "F.Cu") (net 93) (tstamp 8ab77c3a-cffa-447e-a04b-232faddcd28d))
(segment (start 132.461 46.482) (end 132.461 37.592) (width 0.5) (layer "F.Cu") (net 93) (tstamp 8bbbab18-d006-4ab2-baa4-7f916ab3856e))
(segment (start 134.45 47.25) (end 133.229 47.25) (width 0.5) (layer "F.Cu") (net 93) (tstamp a9556c91-4add-4521-b54c-2a0b1956e283))
(segment (start 132.461 37.592) (end 138.684 37.592) (width 0.5) (layer "F.Cu") (net 93) (tstamp c4fe0d12-1726-468f-8f29-0916775d8bf4))
(segment (start 141.026 35.25) (end 143.55 35.25) (width 0.5) (layer "F.Cu") (net 93) (tstamp d209c029-ad98-4963-a493-8234fdea43ed))
(segment (start 132.461 49.276) (end 132.461 57.261) (width 0.5) (layer "F.Cu") (net 94) (tstamp 2d1bf45d-3e17-4ebd-adbd-b88781dc5035))
(segment (start 143.55 47.25) (end 141.218 47.25) (width 0.5) (layer "F.Cu") (net 94) (tstamp 4cf10d90-f878-4262-9db9-c5c00d8640fb))
(segment (start 139.192 49.276) (end 132.461 49.276) (width 0.5) (layer "F.Cu") (net 94) (tstamp 4dcf40c2-1537-46a4-82a0-9693c2c477bd))
(segment (start 132.461 57.261) (end 134.45 59.25) (width 0.5) (layer "F.Cu") (net 94) (tstamp 85705d4e-d43b-4dcc-86fb-4dc7c47e3ac1))
(segment (start 141.218 47.25) (end 139.192 49.276) (width 0.5) (layer "F.Cu") (net 94) (tstamp ea631d65-78f4-44e8-8bc1-ab1088b673db))
(segment (start 121.793 56.388) (end 123.19 56.388) (width 0.25) (layer "F.Cu") (net 95) (tstamp 3768067b-b014-421b-a70b-902835bf32f9))
(segment (start 120.015 54.61) (end 121.793 56.388) (width 0.25) (layer "F.Cu") (net 95) (tstamp 4a9e22f1-85d0-4f71-9560-523a8c734b71))
(segment (start 122.508695 61.759) (end 124.209 61.759) (width 0.25) (layer "F.Cu") (net 95) (tstamp 801b2f7a-c7c5-45e7-a403-efab0c1d77db))
(segment (start 121.9125 62.355195) (end 122.508695 61.759) (width 0.25) (layer "F.Cu") (net 95) (tstamp a731aa28-f1be-484c-8485-41716bb62f57))
(segment (start 122.4655 63.627) (end 122.4655 64.447) (width 0.25) (layer "F.Cu") (net 95) (tstamp bcd8635b-0d88-4e3e-a015-77b4a73f3ab9))
(segment (start 121.9125 65) (end 121.9125 62.355195) (width 0.25) (layer "F.Cu") (net 95) (tstamp d1250fdc-7cf9-4890-a8f1-0ad46f2ad6fa))
(segment (start 124.6 62.15) (end 125.45 62.15) (width 0.25) (layer "F.Cu") (net 95) (tstamp f136de94-53d7-4cd9-a924-f9ca25b942a9))
(segment (start 124.209 61.759) (end 124.6 62.15) (width 0.25) (layer "F.Cu") (net 95) (tstamp f8495102-0bf5-4d65-aac5-ff6100f8002d))
(segment (start 122.4655 64.447) (end 121.9125 65) (width 0.25) (layer "F.Cu") (net 95) (tstamp f9bd9590-34a8-4c66-8c0c-b9ce247bd0b7))
(via (at 122.4655 63.627) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 0a65076a-ea00-4596-975c-18d76d23a88d))
(via (at 123.19 56.388) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 57a24b82-00aa-41c6-bdb3-7eefa4424b3b))
(segment (start 122.084 62.183695) (end 122.084 63.2455) (width 0.25) (layer "B.Cu") (net 95) (tstamp 15b139ac-4f12-46f6-bb43-7d04db427cfc))
(segment (start 122.084 63.2455) (end 122.4655 63.627) (width 0.25) (layer "B.Cu") (net 95) (tstamp 4daaca44-078b-4728-becc-f6806a7b618f))
(segment (start 123.19 56.388) (end 123.19 61.077695) (width 0.25) (layer "B.Cu") (net 95) (tstamp 5f3df5fd-bd4e-415b-afcc-3d1dfea44acb))
(segment (start 123.19 61.077695) (end 122.084 62.183695) (width 0.25) (layer "B.Cu") (net 95) (tstamp d22aacab-8174-4c86-8910-2c4f1ca68410))
(segment (start 121.19 61.309) (end 120.925 61.574) (width 0.25) (layer "F.Cu") (net 96) (tstamp 24cca864-301f-455d-a51a-89398fe5d6bf))
(segment (start 124.395396 61.309) (end 121.19 61.309) (width 0.25) (layer "F.Cu") (net 96) (tstamp 27408190-2c42-4d3d-8c84-323b22530448))
(segment (start 121.19 61.309) (end 121.19 59.1425) (width 0.25) (layer "F.Cu") (net 96) (tstamp 3a816e6d-8f4d-41fb-b9dd-2c36eede4f15))
(segment (start 124.586396 61.5) (end 124.395396 61.309) (width 0.25) (layer "F.Cu") (net 96) (tstamp 4fe07238-6c66-4e3d-99dd-d31cfe1b0967))
(segment (start 125.45 61.5) (end 124.586396 61.5) (width 0.25) (layer "F.Cu") (net 96) (tstamp 52a128ea-73ed-4b21-90a8-df0264207a89))
(segment (start 121.19 59.1425) (end 121.9125 58.42) (width 0.25) (layer "F.Cu") (net 96) (tstamp 81e36762-6198-452d-aea7-f383fdcf19b0))
(segment (start 120.925 61.574) (end 120.925 67.705) (width 0.25) (layer "F.Cu") (net 96) (tstamp a4300f1d-4237-4673-9541-431de8e39d26))
(segment (start 120.925 67.705) (end 120.05 68.58) (width 0.25) (layer "F.Cu") (net 96) (tstamp e5a2e866-c9c3-4c7c-b0d1-455735a659ed))
(segment (start 123.125 62.8) (end 125.45 62.8) (width 0.25) (layer "F.Cu") (net 97) (tstamp 0ecc6be9-9402-4937-b6e7-392cc549d112))
(segment (start 122.809 62.484) (end 123.125 62.8) (width 0.25) (layer "F.Cu") (net 97) (tstamp 2f3fa6f3-ff2c-40f6-9a09-eb1afc132c21))
(segment (start 113.03 65.405) (end 114.046 65.405) (width 0.25) (layer "F.Cu") (net 97) (tstamp 68c5a698-3078-4cf6-a223-09c521c56e25))
(segment (start 114.046 65.405) (end 114.808 66.167) (width 0.25) (layer "F.Cu") (net 97) (tstamp fc5d3d1f-bfd1-4a3a-a993-e65906015e49))
(via (at 114.808 66.167) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp d2794c22-41d8-4436-9693-4a51b49b6d6e))
(via (at 122.809 62.484) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp f2e85531-4f6c-487c-823a-7d2171f0c278))
(segment (start 114.808 66.167) (end 123.19 66.167) (width 0.25) (layer "B.Cu") (net 97) (tstamp 2641e990-ea0f-471d-a365-2161b57bf6b4))
(segment (start 123.19 62.865) (end 122.809 62.484) (width 0.25) (layer "B.Cu") (net 97) (tstamp 8ab8d4d2-c737-4879-ac0e-e00f5b2d8d18))
(segment (start 123.19 66.167) (end 123.19 62.865) (width 0.25) (layer "B.Cu") (net 97) (tstamp eb951062-8a04-41d4-861c-143eba19ce7c))
(segment (start 61.458 33.692926) (end 55.083826 40.0671) (width 0.25) (layer "F.Cu") (net 100) (tstamp 6d2bf743-db28-4219-8c38-d3c4aa320197))
(segment (start 61.458 31.252) (end 61.458 33.692926) (width 0.25) (layer "F.Cu") (net 100) (tstamp 709bbfc9-69ce-48b9-8d59-96416b5c1cd4))
(via (at 55.083826 40.0671) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp 73f72d85-9746-4976-8a57-e7978e757ab1))
(segment (start 14.2748 38.177596) (end 14.2748 34.7472) (width 0.25) (layer "B.Cu") (net 100) (tstamp 552811ba-130f-4c89-bc22-4f8b06da8693))
(segment (start 55.083826 40.0671) (end 16.164304 40.0671) (width 0.25) (layer "B.Cu") (net 100) (tstamp 567ea77d-2e38-4130-8336-bbb86d0aedb2))
(segment (start 16.164304 40.0671) (end 14.2748 38.177596) (width 0.25) (layer "B.Cu") (net 100) (tstamp 9e5a2f0a-e58b-47d9-a634-90e39ef98402))
(segment (start 14.2748 34.7472) (end 13.7776 34.25) (width 0.25) (layer "B.Cu") (net 100) (tstamp c55a3cbf-9556-4796-8a30-9caf106d055e))
(segment (start 13.7776 34.25) (end 12.528 34.25) (width 0.25) (layer "B.Cu") (net 100) (tstamp f570fea0-0877-41be-aa6c-1033a681840e))
(segment (start 63.998 31.252) (end 63.998 32.8268) (width 0.25) (layer "F.Cu") (net 101) (tstamp 1ba3b291-a4c1-4750-9222-ec89ef7e1912))
(segment (start 56.0324 40.7924) (end 56.0324 40.894) (width 0.25) (layer "F.Cu") (net 101) (tstamp 302bd90d-7438-4df3-a33e-ac7598d4a454))
(segment (start 63.998 32.8268) (end 56.0324 40.7924) (width 0.25) (layer "F.Cu") (net 101) (tstamp e80a269e-402a-4311-9056-a5f49654a2ba))
(via (at 56.0324 40.894) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 101) (tstamp a48b560e-c98c-4f69-9c32-ef5a55cb2e81))
(segment (start 12.528 37.067192) (end 12.528 36.79) (width 0.25) (layer "B.Cu") (net 101) (tstamp 22a9245d-bc39-4b67-b6f7-13d10ddbe035))
(segment (start 16.354808 40.894) (end 12.528 37.067192) (width 0.25) (layer "B.Cu") (net 101) (tstamp 49e43f1c-a10c-49f1-a7f7-4546f7391f9f))
(segment (start 56.0324 40.894) (end 16.354808 40.894) (width 0.25) (layer "B.Cu") (net 101) (tstamp 62b5164f-d837-4847-b956-cada3d69d32f))
(segment (start 8.588 52.8536) (end 8.588 59.374) (width 0.25) (layer "F.Cu") (net 102) (tstamp 7b538e20-cd74-445d-ba02-60f214a437ae))
(segment (start 8.7719 53.0375) (end 8.588 52.8536) (width 0.25) (layer "F.Cu") (net 102) (tstamp 8145dec7-bebb-4803-8daa-d214c59a9a6c))
(segment (start 19.6881 53.0375) (end 8.7719 53.0375) (width 0.25) (layer "F.Cu") (net 102) (tstamp b8fa23fb-dd90-44b2-bda5-62757004cad0))
(segment (start 6.9596 51.2252) (end 8.588 52.8536) (width 0.25) (layer "F.Cu") (net 102) (tstamp d9ed87c7-a97f-4da0-9ba6-c295163373e4))
(segment (start 20.6756 54.025) (end 19.6881 53.0375) (width 0.25) (layer "F.Cu") (net 102) (tstamp fada12b3-7de3-4a68-8a02-5914e55f5494))
(segment (start 14.9352 46.228) (end 14.9352 50.7492) (width 0.25) (layer "F.Cu") (net 89) (tstamp 0f7666b2-3e27-4194-809f-ce2e3e6ed676))
(segment (start 14.9352 50.7492) (end 10.4648 50.7492) (width 0.25) (layer "F.Cu") (net 89) (tstamp 16dff2e6-d44d-4108-96ec-99dba665d37f))
(segment (start 16.6116 44.5516) (end 14.9352 46.228) (width 0.25) (layer "F.Cu") (net 89) (tstamp 2cfead59-ac49-4c7f-8a6c-32cf18f3b659))
(segment (start 10.4648 50.7492) (end 9.6012 51.6128) (width 0.25) (layer "F.Cu") (net 89) (tstamp 38b46cac-036c-4484-8b12-023e775f8f24))
(segment (start 16.6624 50.7492) (end 14.9352 50.7492) (width 0.25) (layer "F.Cu") (net 89) (tstamp 863827df-991b-4475-b036-b6b2ab645afb))
(via (at 9.6012 51.6128) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp f49c8890-b288-4b0f-af9b-fa470cfcb8ce))
(segment (start 6.8072 54.4068) (end 6.8072 62.5932) (width 0.25) (layer "B.Cu") (net 89) (tstamp 156e256a-fd4b-4560-8f95-9e277a588db9))
(segment (start 9.6012 51.6128) (end 6.8072 54.4068) (width 0.25) (layer "B.Cu") (net 89) (tstamp 16e6ba5c-bd67-4bf3-8a47-7d8cd7bf29e4))
(segment (start 6.8072 62.5932) (end 8.588 64.374) (width 0.25) (layer "B.Cu") (net 89) (tstamp 94e200d2-4606-4d3c-ab72-664ac0911721))
(segment (start 143.764 10.25) (end 140.88 10.25) (width 0.5) (layer "F.Cu") (net 90) (tstamp 2eb29f4e-cb1d-4a68-bf30-bff6d3a2fc8d))
(segment (start 138.684 12.446) (end 133.096 12.446) (width 0.5) (layer "F.Cu") (net 90) (tstamp 531fc555-dab9-472d-bbf1-f4a0e98c11be))
(segment (start 133.096 12.446) (end 133.096 21.226) (width 0.5) (layer "F.Cu") (net 90) (tstamp b96fb073-3bdc-4b80-8f65-185f29975ae2))
(segment (start 133.096 21.226) (end 134.62 22.75) (width 0.5) (layer "F.Cu") (net 90) (tstamp c91cb187-f3ff-47b4-b53c-e62ad312998a))
(segment (start 140.88 10.25) (end 138.684 12.446) (width 0.5) (layer "F.Cu") (net 90) (tstamp fdf1be44-1475-42a3-a646-4927d89b97fe))
(segment (start 134.45 34.755) (end 134.45 35.25) (width 0.5) (layer "F.Cu") (net 91) (tstamp 2c882465-8ec3-40b2-b9b3-1c06108f839b))
(segment (start 132.842 33.147) (end 134.45 34.755) (width 0.5) (layer "F.Cu") (net 91) (tstamp 42b7edfc-9419-467b-bb88-bb46dfd29379))
(segment (start 140.318 22.75) (end 138.303 24.765) (width 0.5) (layer "F.Cu") (net 91) (tstamp 5d8ceb4c-f235-43c0-b890-614371d7ecd8))
(segment (start 138.303 24.765) (end 132.842 24.765) (width 0.5) (layer "F.Cu") (net 91) (tstamp 7b6a436c-6aab-45bb-8a8a-29f35b1d923b))
(segment (start 143.72 22.75) (end 140.318 22.75) (width 0.5) (layer "F.Cu") (net 91) (tstamp b0ffcc92-6adb-432a-a8e6-2d63dceeebdf))
(segment (start 132.842 24.765) (end 132.842 33.147) (width 0.5) (layer "F.Cu") (net 91) (tstamp d09cba9f-bfa0-4167-8fe9-16aab03b6749))
(segment (start 138.684 37.592) (end 141.026 35.25) (width 0.5) (layer "F.Cu") (net 92) (tstamp 68d40029-773c-4944-9776-1327b4f67b46))
(segment (start 133.229 47.25) (end 132.461 46.482) (width 0.5) (layer "F.Cu") (net 92) (tstamp 8ab77c3a-cffa-447e-a04b-232faddcd28d))
(segment (start 132.461 46.482) (end 132.461 37.592) (width 0.5) (layer "F.Cu") (net 92) (tstamp 8bbbab18-d006-4ab2-baa4-7f916ab3856e))
(segment (start 134.45 47.25) (end 133.229 47.25) (width 0.5) (layer "F.Cu") (net 92) (tstamp a9556c91-4add-4521-b54c-2a0b1956e283))
(segment (start 132.461 37.592) (end 138.684 37.592) (width 0.5) (layer "F.Cu") (net 92) (tstamp c4fe0d12-1726-468f-8f29-0916775d8bf4))
(segment (start 141.026 35.25) (end 143.55 35.25) (width 0.5) (layer "F.Cu") (net 92) (tstamp d209c029-ad98-4963-a493-8234fdea43ed))
(segment (start 132.461 49.276) (end 132.461 57.261) (width 0.5) (layer "F.Cu") (net 93) (tstamp 2d1bf45d-3e17-4ebd-adbd-b88781dc5035))
(segment (start 143.55 47.25) (end 141.218 47.25) (width 0.5) (layer "F.Cu") (net 93) (tstamp 4cf10d90-f878-4262-9db9-c5c00d8640fb))
(segment (start 139.192 49.276) (end 132.461 49.276) (width 0.5) (layer "F.Cu") (net 93) (tstamp 4dcf40c2-1537-46a4-82a0-9693c2c477bd))
(segment (start 132.461 57.261) (end 134.45 59.25) (width 0.5) (layer "F.Cu") (net 93) (tstamp 85705d4e-d43b-4dcc-86fb-4dc7c47e3ac1))
(segment (start 141.218 47.25) (end 139.192 49.276) (width 0.5) (layer "F.Cu") (net 93) (tstamp ea631d65-78f4-44e8-8bc1-ab1088b673db))
(segment (start 121.793 56.388) (end 123.19 56.388) (width 0.25) (layer "F.Cu") (net 94) (tstamp 3768067b-b014-421b-a70b-902835bf32f9))
(segment (start 120.015 54.61) (end 121.793 56.388) (width 0.25) (layer "F.Cu") (net 94) (tstamp 4a9e22f1-85d0-4f71-9560-523a8c734b71))
(segment (start 122.508695 61.759) (end 124.209 61.759) (width 0.25) (layer "F.Cu") (net 94) (tstamp 801b2f7a-c7c5-45e7-a403-efab0c1d77db))
(segment (start 121.9125 62.355195) (end 122.508695 61.759) (width 0.25) (layer "F.Cu") (net 94) (tstamp a731aa28-f1be-484c-8485-41716bb62f57))
(segment (start 122.4655 63.627) (end 122.4655 64.447) (width 0.25) (layer "F.Cu") (net 94) (tstamp bcd8635b-0d88-4e3e-a015-77b4a73f3ab9))
(segment (start 121.9125 65) (end 121.9125 62.355195) (width 0.25) (layer "F.Cu") (net 94) (tstamp d1250fdc-7cf9-4890-a8f1-0ad46f2ad6fa))
(segment (start 124.6 62.15) (end 125.45 62.15) (width 0.25) (layer "F.Cu") (net 94) (tstamp f136de94-53d7-4cd9-a924-f9ca25b942a9))
(segment (start 124.209 61.759) (end 124.6 62.15) (width 0.25) (layer "F.Cu") (net 94) (tstamp f8495102-0bf5-4d65-aac5-ff6100f8002d))
(segment (start 122.4655 64.447) (end 121.9125 65) (width 0.25) (layer "F.Cu") (net 94) (tstamp f9bd9590-34a8-4c66-8c0c-b9ce247bd0b7))
(via (at 122.4655 63.627) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 0a65076a-ea00-4596-975c-18d76d23a88d))
(via (at 123.19 56.388) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 57a24b82-00aa-41c6-bdb3-7eefa4424b3b))
(segment (start 122.084 62.183695) (end 122.084 63.2455) (width 0.25) (layer "B.Cu") (net 94) (tstamp 15b139ac-4f12-46f6-bb43-7d04db427cfc))
(segment (start 122.084 63.2455) (end 122.4655 63.627) (width 0.25) (layer "B.Cu") (net 94) (tstamp 4daaca44-078b-4728-becc-f6806a7b618f))
(segment (start 123.19 56.388) (end 123.19 61.077695) (width 0.25) (layer "B.Cu") (net 94) (tstamp 5f3df5fd-bd4e-415b-afcc-3d1dfea44acb))
(segment (start 123.19 61.077695) (end 122.084 62.183695) (width 0.25) (layer "B.Cu") (net 94) (tstamp d22aacab-8174-4c86-8910-2c4f1ca68410))
(segment (start 121.19 61.309) (end 120.925 61.574) (width 0.25) (layer "F.Cu") (net 95) (tstamp 24cca864-301f-455d-a51a-89398fe5d6bf))
(segment (start 124.395396 61.309) (end 121.19 61.309) (width 0.25) (layer "F.Cu") (net 95) (tstamp 27408190-2c42-4d3d-8c84-323b22530448))
(segment (start 121.19 61.309) (end 121.19 59.1425) (width 0.25) (layer "F.Cu") (net 95) (tstamp 3a816e6d-8f4d-41fb-b9dd-2c36eede4f15))
(segment (start 124.586396 61.5) (end 124.395396 61.309) (width 0.25) (layer "F.Cu") (net 95) (tstamp 4fe07238-6c66-4e3d-99dd-d31cfe1b0967))
(segment (start 125.45 61.5) (end 124.586396 61.5) (width 0.25) (layer "F.Cu") (net 95) (tstamp 52a128ea-73ed-4b21-90a8-df0264207a89))
(segment (start 121.19 59.1425) (end 121.9125 58.42) (width 0.25) (layer "F.Cu") (net 95) (tstamp 81e36762-6198-452d-aea7-f383fdcf19b0))
(segment (start 120.925 61.574) (end 120.925 67.705) (width 0.25) (layer "F.Cu") (net 95) (tstamp a4300f1d-4237-4673-9541-431de8e39d26))
(segment (start 120.925 67.705) (end 120.05 68.58) (width 0.25) (layer "F.Cu") (net 95) (tstamp e5a2e866-c9c3-4c7c-b0d1-455735a659ed))
(segment (start 123.125 62.8) (end 125.45 62.8) (width 0.25) (layer "F.Cu") (net 96) (tstamp 0ecc6be9-9402-4937-b6e7-392cc549d112))
(segment (start 122.809 62.484) (end 123.125 62.8) (width 0.25) (layer "F.Cu") (net 96) (tstamp 2f3fa6f3-ff2c-40f6-9a09-eb1afc132c21))
(segment (start 113.03 65.405) (end 114.046 65.405) (width 0.25) (layer "F.Cu") (net 96) (tstamp 68c5a698-3078-4cf6-a223-09c521c56e25))
(segment (start 114.046 65.405) (end 114.808 66.167) (width 0.25) (layer "F.Cu") (net 96) (tstamp fc5d3d1f-bfd1-4a3a-a993-e65906015e49))
(via (at 114.808 66.167) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp d2794c22-41d8-4436-9693-4a51b49b6d6e))
(via (at 122.809 62.484) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp f2e85531-4f6c-487c-823a-7d2171f0c278))
(segment (start 114.808 66.167) (end 123.19 66.167) (width 0.25) (layer "B.Cu") (net 96) (tstamp 2641e990-ea0f-471d-a365-2161b57bf6b4))
(segment (start 123.19 62.865) (end 122.809 62.484) (width 0.25) (layer "B.Cu") (net 96) (tstamp 8ab8d4d2-c737-4879-ac0e-e00f5b2d8d18))
(segment (start 123.19 66.167) (end 123.19 62.865) (width 0.25) (layer "B.Cu") (net 96) (tstamp eb951062-8a04-41d4-861c-143eba19ce7c))
(segment (start 61.458 33.692926) (end 55.083826 40.0671) (width 0.25) (layer "F.Cu") (net 99) (tstamp 6d2bf743-db28-4219-8c38-d3c4aa320197))
(segment (start 61.458 31.252) (end 61.458 33.692926) (width 0.25) (layer "F.Cu") (net 99) (tstamp 709bbfc9-69ce-48b9-8d59-96416b5c1cd4))
(via (at 55.083826 40.0671) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp 73f72d85-9746-4976-8a57-e7978e757ab1))
(segment (start 14.2748 38.177596) (end 14.2748 34.7472) (width 0.25) (layer "B.Cu") (net 99) (tstamp 552811ba-130f-4c89-bc22-4f8b06da8693))
(segment (start 55.083826 40.0671) (end 16.164304 40.0671) (width 0.25) (layer "B.Cu") (net 99) (tstamp 567ea77d-2e38-4130-8336-bbb86d0aedb2))
(segment (start 16.164304 40.0671) (end 14.2748 38.177596) (width 0.25) (layer "B.Cu") (net 99) (tstamp 9e5a2f0a-e58b-47d9-a634-90e39ef98402))
(segment (start 14.2748 34.7472) (end 13.7776 34.25) (width 0.25) (layer "B.Cu") (net 99) (tstamp c55a3cbf-9556-4796-8a30-9caf106d055e))
(segment (start 13.7776 34.25) (end 12.528 34.25) (width 0.25) (layer "B.Cu") (net 99) (tstamp f570fea0-0877-41be-aa6c-1033a681840e))
(segment (start 63.998 31.252) (end 63.998 32.8268) (width 0.25) (layer "F.Cu") (net 100) (tstamp 1ba3b291-a4c1-4750-9222-ec89ef7e1912))
(segment (start 56.0324 40.7924) (end 56.0324 40.894) (width 0.25) (layer "F.Cu") (net 100) (tstamp 302bd90d-7438-4df3-a33e-ac7598d4a454))
(segment (start 63.998 32.8268) (end 56.0324 40.7924) (width 0.25) (layer "F.Cu") (net 100) (tstamp e80a269e-402a-4311-9056-a5f49654a2ba))
(via (at 56.0324 40.894) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp a48b560e-c98c-4f69-9c32-ef5a55cb2e81))
(segment (start 12.528 37.067192) (end 12.528 36.79) (width 0.25) (layer "B.Cu") (net 100) (tstamp 22a9245d-bc39-4b67-b6f7-13d10ddbe035))
(segment (start 16.354808 40.894) (end 12.528 37.067192) (width 0.25) (layer "B.Cu") (net 100) (tstamp 49e43f1c-a10c-49f1-a7f7-4546f7391f9f))
(segment (start 56.0324 40.894) (end 16.354808 40.894) (width 0.25) (layer "B.Cu") (net 100) (tstamp 62b5164f-d837-4847-b956-cada3d69d32f))
(segment (start 8.588 52.8536) (end 8.588 59.374) (width 0.25) (layer "F.Cu") (net 101) (tstamp 7b538e20-cd74-445d-ba02-60f214a437ae))
(segment (start 8.7719 53.0375) (end 8.588 52.8536) (width 0.25) (layer "F.Cu") (net 101) (tstamp 8145dec7-bebb-4803-8daa-d214c59a9a6c))
(segment (start 19.6881 53.0375) (end 8.7719 53.0375) (width 0.25) (layer "F.Cu") (net 101) (tstamp b8fa23fb-dd90-44b2-bda5-62757004cad0))
(segment (start 6.9596 51.2252) (end 8.588 52.8536) (width 0.25) (layer "F.Cu") (net 101) (tstamp d9ed87c7-a97f-4da0-9ba6-c295163373e4))
(segment (start 20.6756 54.025) (end 19.6881 53.0375) (width 0.25) (layer "F.Cu") (net 101) (tstamp fada12b3-7de3-4a68-8a02-5914e55f5494))
(zone (net 1) (net_name "+5V") (layer "F.Cu") (tstamp c07fdb34-7c10-403b-a0b2-c027cafbbb76) (hatch edge 0.5)
(connect_pads (clearance 0.5))

@ -1,6 +1,6 @@
{
"board": {
"active_layer": 0,
"active_layer": 31,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],

@ -6,8 +6,8 @@
(title_block
(title "BJ-Keyer")
(date "2023-05-20")
(rev "1.01")
(date "2023-09-08")
(rev "1.03")
(company "Tom, DL7BJ")
(comment 1 "Morsekeyer für 2 TRX, 3 Paddle, 3 Handtasten")
(comment 2 "tom@dl7bj.de - https://isnix.de")
@ -3582,7 +3582,7 @@
)
(no_connect (at 369.57 137.16) (uuid 2e127829-fe4c-40ba-84f8-01ca0d3bf6c6))
(no_connect (at 290.83 232.41) (uuid 340178ee-d2dc-444f-8c7e-b00ede0da2ce))
(no_connect (at 290.83 227.33) (uuid 340178ee-d2dc-444f-8c7e-b00ede0da2ce))
(no_connect (at 270.51 180.34) (uuid 488fdef4-13e4-4c66-9bdc-461d266fa7a6))
(no_connect (at 246.38 187.96) (uuid 5f8f81a8-a273-4b25-9e1e-2802dc3d614f))
(no_connect (at 290.83 222.25) (uuid 740ed114-4f42-454c-8f77-ef7074d0f47b))
@ -3790,7 +3790,7 @@
(stroke (width 0) (type default))
(uuid 1cd5f937-d236-49c7-a662-cae572f33993)
)
(wire (pts (xy 158.75 74.93) (xy 163.83 74.93))
(wire (pts (xy 153.67 54.61) (xy 158.75 54.61))
(stroke (width 0) (type default))
(uuid 1ce9891e-de8d-46d8-be4f-a2b1c4f0d2b7)
)
@ -3962,7 +3962,7 @@
(stroke (width 0) (type default))
(uuid 338db1c9-1b05-4297-90bf-b63f4b18c7e5)
)
(wire (pts (xy 158.75 72.39) (xy 163.83 72.39))
(wire (pts (xy 153.67 52.07) (xy 158.75 52.07))
(stroke (width 0) (type default))
(uuid 33fc2d12-ad63-4a4f-9905-f6e53221169a)
)
@ -4014,6 +4014,10 @@
(stroke (width 0) (type default))
(uuid 3ad9dea7-ec07-4033-b625-5c22ee2d5e26)
)
(wire (pts (xy 290.83 232.41) (xy 266.7 232.41))
(stroke (width 0) (type default))
(uuid 3ba5e0cc-d6ce-47b0-8933-dd888db9eacb)
)
(wire (pts (xy 242.57 193.04) (xy 242.57 196.85))
(stroke (width 0) (type default))
(uuid 3d1f44ab-d708-4aaf-8067-3ecf5d7073fd)
@ -4086,10 +4090,6 @@
(stroke (width 0) (type default))
(uuid 459f6874-df9c-4ff2-9668-ee869dc81e00)
)
(wire (pts (xy 210.82 69.85) (xy 210.82 74.93))
(stroke (width 0) (type default))
(uuid 46102f0f-ed6d-4bea-a49c-98f412f91191)
)
(wire (pts (xy 22.86 170.18) (xy 22.86 195.58))
(stroke (width 0) (type default))
(uuid 4628d9ad-ee4a-4569-b877-e6aefe8041ab)
@ -4130,6 +4130,10 @@
(stroke (width 0) (type default))
(uuid 493c280b-f1a1-4440-ac2d-eb89992f998d)
)
(wire (pts (xy 210.82 69.85) (xy 210.82 74.93))
(stroke (width 0) (type default))
(uuid 4947cf42-cf05-42ac-b353-c63b80671a7c)
)
(wire (pts (xy 69.85 110.49) (xy 69.85 113.03))
(stroke (width 0) (type default))
(uuid 4c0428a2-021d-4734-a7f2-d4ee4e82b59d)
@ -4298,7 +4302,7 @@
(stroke (width 0) (type default))
(uuid 67c9d24f-7519-4b9b-8512-33f6ecc25662)
)
(wire (pts (xy 158.75 69.85) (xy 170.18 69.85))
(wire (pts (xy 153.67 49.53) (xy 165.1 49.53))
(stroke (width 0) (type default))
(uuid 690e4710-fed8-4c3c-a001-fb065e893716)
)
@ -4314,6 +4318,10 @@
(stroke (width 0) (type default))
(uuid 6af35c54-6a0f-40df-b884-e917fce73a84)
)
(wire (pts (xy 290.83 229.87) (xy 274.32 229.87))
(stroke (width 0) (type default))
(uuid 6af4db32-ebb4-44fc-ad54-d7f5f8f0660d)
)
(wire (pts (xy 367.03 43.18) (xy 351.79 43.18))
(stroke (width 0) (type default))
(uuid 6bf9808d-ccb8-4571-a02e-4fdbe1aaa5c6)
@ -4346,6 +4354,10 @@
(stroke (width 0) (type default))
(uuid 6f14f678-76f6-462d-a483-762f7fca7d7b)
)
(wire (pts (xy 245.11 62.23) (xy 245.11 59.69))
(stroke (width 0) (type default))
(uuid 7004ad59-f322-474a-8846-bdeae92e8d22)
)
(wire (pts (xy 361.95 77.47) (xy 361.95 96.52))
(stroke (width 0) (type default))
(uuid 72619eb2-0e80-41ba-8c90-0f5c6fbc5570)
@ -4482,10 +4494,6 @@
(stroke (width 0) (type default))
(uuid 80f08767-14a1-4911-a559-9f40001c767f)
)
(wire (pts (xy 266.7 229.87) (xy 290.83 229.87))
(stroke (width 0) (type default))
(uuid 81cc6a99-f8e6-4327-baa4-a2edf0b0753b)
)
(wire (pts (xy 34.29 30.48) (xy 35.56 30.48))
(stroke (width 0) (type default))
(uuid 8355efdb-b183-4acb-8a10-7ba0b7ea25cb)
@ -4586,7 +4594,7 @@
(stroke (width 0) (type default))
(uuid 900718d2-2536-445c-9710-b3ac26fa091a)
)
(wire (pts (xy 266.7 224.79) (xy 266.7 229.87))
(wire (pts (xy 266.7 224.79) (xy 266.7 232.41))
(stroke (width 0) (type default))
(uuid 9040dcf3-3151-4497-8c86-5fdcd15e7a07)
)
@ -4778,7 +4786,7 @@
(stroke (width 0) (type default))
(uuid a92d4221-15b1-42e6-a834-61e47452ce06)
)
(wire (pts (xy 158.75 67.31) (xy 173.99 67.31))
(wire (pts (xy 153.67 46.99) (xy 168.91 46.99))
(stroke (width 0) (type default))
(uuid a97c1432-3052-4c32-bbd3-3d9f64cfb4fc)
)
@ -4954,7 +4962,7 @@
(stroke (width 0) (type default))
(uuid c8f22f7f-31c3-4ab0-ab5a-79a089ae54b0)
)
(wire (pts (xy 170.18 69.85) (xy 170.18 63.5))
(wire (pts (xy 165.1 49.53) (xy 165.1 43.18))
(stroke (width 0) (type default))
(uuid ca4c3164-f89f-43eb-ba67-ada354398160)
)
@ -5022,7 +5030,7 @@
(stroke (width 0) (type default))
(uuid da9aeb3c-0897-479a-b4ee-d391361c0e33)
)
(wire (pts (xy 274.32 224.79) (xy 274.32 227.33))
(wire (pts (xy 274.32 224.79) (xy 274.32 229.87))
(stroke (width 0) (type default))
(uuid dac3b296-e633-4c73-91d4-b0b6f527ae18)
)
@ -5054,14 +5062,10 @@
(stroke (width 0) (type default))
(uuid e0265fd7-dca0-4257-b31b-b8f022d2266c)
)
(wire (pts (xy 173.99 67.31) (xy 173.99 78.74))
(wire (pts (xy 168.91 46.99) (xy 168.91 58.42))
(stroke (width 0) (type default))
(uuid e027771f-510e-460a-83c2-77844088536b)
)
(wire (pts (xy 290.83 227.33) (xy 274.32 227.33))
(stroke (width 0) (type default))
(uuid e221cd78-1e75-4c1e-9866-b169c3eb9f20)
)
(wire (pts (xy 171.45 133.35) (xy 171.45 134.62))
(stroke (width 0) (type default))
(uuid e3d7383e-5bab-4581-8e68-b7d5e356d08f)
@ -5389,7 +5393,7 @@
(effects (font (size 1.27 1.27)) (justify right bottom))
(uuid 51e12b9b-47e7-43ef-b4a1-34c1a08959bc)
)
(label "SCL" (at 163.83 72.39 0) (fields_autoplaced)
(label "SCL" (at 158.75 52.07 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 568607cf-6cc9-4851-857c-65df96dac3e9)
)
@ -5409,6 +5413,10 @@
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 689a1abc-0089-4da0-a470-714bd37d5a53)
)
(label "Right Paddle" (at 131.8253 119.38 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 755c69cc-f9fc-48bd-a3a3-e189ffdbe601)
)
(label "Mem 5" (at 132.08 158.75 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 8a05fcee-2f48-4917-b876-4151b5b8453d)
@ -5429,6 +5437,10 @@
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid a4e06414-5fa1-4d4e-a548-8907a0f47961)
)
(label "Straight Key" (at 132.08 121.92 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid ad2252fc-8cc3-4d84-8265-01626c282f84)
)
(label "Mem 2" (at 132.08 127 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid bf4c4b63-4e55-48a7-9ea3-7210f2a2e845)
@ -5445,6 +5457,10 @@
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid cd6c02ad-23ad-4175-aa53-94c41a3a5574)
)
(label "Left Paddle" (at 132.08 116.84 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid d4e8262e-183f-48f5-8306-2917aa406144)
)
(label "Mem 4" (at 220.98 85.09 270) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right bottom))
(uuid d6bc52ff-5a0d-4808-b5a5-c45375667891)
@ -5457,7 +5473,7 @@
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid e2af9a58-352b-4e61-91e5-2e266f08b1c3)
)
(label "SDA" (at 163.83 74.93 0) (fields_autoplaced)
(label "SDA" (at 158.75 54.61 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid efd7e70a-82e0-4819-964e-9f5877ddf8d3)
)
@ -5713,6 +5729,31 @@
)
)
(symbol (lib_id "power:+5V") (at 245.11 59.69 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 0d97f26d-e0dc-461c-ad32-a65403cc2ed3)
(property "Reference" "#PWR062" (at 245.11 63.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "+5V" (at 245.11 55.447 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 245.11 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 245.11 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 81014ff9-f153-4b14-a878-98fd194501ee))
(instances
(project "BJ-Keyer"
(path "/854b5595-86e1-4ffa-88fb-a2c16da0c22c"
(reference "#PWR062") (unit 1)
)
)
)
)
(symbol (lib_id "power:+5V") (at 242.57 163.83 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 0e6a14c2-4efb-42f6-9d74-c2cdc21fa21d)
@ -6233,19 +6274,19 @@
)
)
(symbol (lib_id "power:GND") (at 173.99 78.74 0) (unit 1)
(symbol (lib_id "power:GND") (at 168.91 58.42 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 2ae8b5de-6656-4ee2-a612-2657424ae528)
(property "Reference" "#PWR017" (at 173.99 85.09 0)
(property "Reference" "#PWR017" (at 168.91 64.77 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 173.99 82.983 0)
(property "Value" "GND" (at 168.91 62.663 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 173.99 78.74 0)
(property "Footprint" "" (at 168.91 58.42 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 173.99 78.74 0)
(property "Datasheet" "" (at 168.91 58.42 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid ee5fe580-3434-4755-b990-c2314060ae97))
@ -7085,6 +7126,31 @@
)
)
(symbol (lib_id "power:+5V") (at -24.13 -137.16 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 54f5660c-7de6-4698-82c8-a2d04fbf23a1)
(property "Reference" "#PWR063" (at -24.13 -133.35 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "+5V" (at -24.13 -141.403 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at -24.13 -137.16 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at -24.13 -137.16 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 62fa0da3-0292-4af6-8369-14f54cac4c98))
(instances
(project "BJ-Keyer"
(path "/854b5595-86e1-4ffa-88fb-a2c16da0c22c"
(reference "#PWR063") (unit 1)
)
)
)
)
(symbol (lib_id "Device:L") (at 60.96 234.95 90) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 5507e88c-a5c6-4a39-b08f-02f1bd5dd263)
@ -7353,6 +7419,31 @@
)
)
(symbol (lib_id "power:+5V") (at -220.98 -294.64 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 62f6c9ed-20e7-420d-827f-2c974719cc15)
(property "Reference" "#PWR064" (at -220.98 -290.83 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "+5V" (at -220.98 -298.883 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at -220.98 -294.64 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at -220.98 -294.64 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 38c0edc8-c833-4fdd-bd85-e0d2fedc098a))
(instances
(project "BJ-Keyer"
(path "/854b5595-86e1-4ffa-88fb-a2c16da0c22c"
(reference "#PWR064") (unit 1)
)
)
)
)
(symbol (lib_id "Device:R_Small") (at 316.23 46.99 90) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 637382ab-9150-4e0e-bd57-613be486abe6)
@ -8004,19 +8095,19 @@
)
)
(symbol (lib_id "power:+5V") (at 170.18 63.5 0) (unit 1)
(symbol (lib_id "power:+5V") (at 165.1 43.18 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 864dd097-72fc-4876-abfe-4e83e1b7d590)
(property "Reference" "#PWR012" (at 170.18 67.31 0)
(property "Reference" "#PWR012" (at 165.1 46.99 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "+5V" (at 170.18 59.257 0)
(property "Value" "+5V" (at 165.1 38.937 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 170.18 63.5 0)
(property "Footprint" "" (at 165.1 43.18 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 170.18 63.5 0)
(property "Datasheet" "" (at 165.1 43.18 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b519ff94-6029-4de8-bcd6-c93e79ab18b7))
@ -9595,19 +9686,19 @@
)
)
(symbol (lib_id "Connector:Conn_01x04_Female") (at 153.67 72.39 180) (unit 1)
(symbol (lib_id "Connector:Conn_01x04_Female") (at 148.59 52.07 180) (unit 1)
(in_bom yes) (on_board yes) (dnp no)
(uuid dc4ed332-cb5b-4bf3-bf2c-f8eaa4179c13)
(property "Reference" "J6" (at 151.13 71.12 0)
(property "Reference" "J6" (at 146.05 50.8 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "OLED Display" (at 156.21 64.77 0)
(property "Value" "OLED Display" (at 151.13 44.45 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Horizontal" (at 153.67 72.39 0)
(property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Horizontal" (at 148.59 52.07 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 153.67 72.39 0)
(property "Datasheet" "~" (at 148.59 52.07 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 43ede938-d509-4542-a802-fbd1a09beadd))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,6 @@
*.aux
*.lof
*.log
*.lot
*.toc
*.out

Binary file not shown.

Binary file not shown.

@ -0,0 +1,158 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand*\new@tpo@label[2]{}
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
\catcode `"\active
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand\BKM@entry[2]{}
\babel@aux{ngerman}{}
\BKM@entry{id=1,dest={636861707465722E31},srcline={139},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030485C303030695C3030306E5C303030775C303030655C303030695C303030735C303030655C3030305C3034305C3030307A5C303030755C303030725C3030305C3034305C303030445C3030306F5C3030306B5C303030755C3030306D5C303030655C3030306E5C303030745C303030615C303030745C303030695C3030306F5C3030306E}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Hinweise zur Dokumentation}{5}{chapter.1}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\BKM@entry{id=2,dest={636861707465722E32},srcline={143},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030465C303030755C3030306E5C3030306B5C303030745C303030695C3030306F5C3030306E5C303030735C3030305C3337345C303030625C303030655C303030725C303030735C303030695C303030635C303030685C30303074}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Funktionsübersicht}{7}{chapter.2}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\BKM@entry{id=3,dest={636861707465722E33},srcline={167},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030475C303030725C303030755C3030306E5C303030645C3030306C5C303030615C303030675C303030655C3030306E}
\BKM@entry{id=4,dest={73656374696F6E2E332E31},srcline={168},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030425C303030655C303030745C303030725C303030695C303030655C303030625C303030735C303030615C303030725C303030745C303030655C3030306E5C3030305C3034305C303030655C303030695C3030306E5C303030655C303030735C3030305C3034305C3030304D5C3030306F5C303030725C303030735C303030655C3030302D5C3030304B5C303030655C303030795C303030655C303030725C30303073}
\BKM@entry{id=5,dest={73756273656374696F6E2E332E312E31},srcline={174},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030495C303030615C3030306D5C303030625C303030695C303030635C3030305C3034305C30303041}
\BKM@entry{id=6,dest={73756273656374696F6E2E332E312E32},srcline={203},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030495C303030615C3030306D5C303030625C303030695C303030635C3030305C3034305C30303042}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Grundlagen}{9}{chapter.3}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Betriebsarten eines Morse-Keyers}{9}{section.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Iambic A}{9}{subsection.3.1.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Diagramm Iambic Mode A\relax }}{9}{figure.caption.4}\protected@file@percent }
\BKM@entry{id=7,dest={73756273656374696F6E2E332E312E33},srcline={235},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030555C3030306C5C303030745C303030695C3030306D5C303030615C303030745C303030695C30303063}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Iambic B}{10}{subsection.3.1.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Diagramm Iambic Mode B\relax }}{10}{figure.caption.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Ultimatic}{10}{subsection.3.1.3}\protected@file@percent }
\BKM@entry{id=8,dest={73756273656374696F6E2E332E312E34},srcline={268},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030475C303030655C303030775C303030695C303030635C303030685C303030745C303030755C3030306E5C30303067}
\BKM@entry{id=9,dest={73756273656374696F6E2E332E312E35},srcline={297},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030505C303030755C3030306E5C3030306B5C303030745C3030302F5C303030535C303030745C303030725C303030695C303030635C303030685C3030305C3034305C303030525C303030615C303030745C303030695C3030306F}
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Diagramm Ultimatic Mode\relax }}{11}{figure.caption.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Gewichtung}{11}{subsection.3.1.4}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Diagramm Gewichtung\relax }}{11}{figure.caption.7}\protected@file@percent }
\BKM@entry{id=10,dest={73756273656374696F6E2E332E312E36},srcline={324},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030505C303030755C3030306E5C3030306B5C303030745C3030302D5C303030535C303030745C303030725C303030695C303030635C303030685C3030305C3034305C303030535C303030705C303030655C303030695C303030635C303030685C303030655C30303072}
\BKM@entry{id=11,dest={73756273656374696F6E2E332E312E37},srcline={326},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030485C303030615C3030306E5C303030645C303030745C303030615C303030735C303030745C30303065}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.5}Punkt/Strich Ratio}{12}{subsection.3.1.5}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Diagramm Punkt/Strich Ratio\relax }}{12}{figure.caption.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.6}Punkt-Strich Speicher}{12}{subsection.3.1.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.7}Handtaste}{12}{subsection.3.1.7}\protected@file@percent }
\BKM@entry{id=12,dest={636861707465722E34},srcline={329},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030445C303030695C303030655C3030305C3034305C303030425C303030655C303030645C303030695C303030655C3030306E5C303030755C3030306E5C30303067}
\BKM@entry{id=13,dest={73656374696F6E2E342E31},srcline={330},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030425C303030655C303030645C303030695C303030655C3030306E5C303030655C3030306C5C303030655C3030306D5C303030655C3030306E5C303030745C30303065}
\BKM@entry{id=14,dest={73656374696F6E2E342E32},srcline={332},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C3030304D5C303030655C3030306E5C303030755C303030655C303030735C303030745C303030725C303030755C3030306B5C303030745C303030755C30303072}
\BKM@entry{id=15,dest={73656374696F6E2E342E33},srcline={334},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030455C303030695C3030306E5C303030735C303030745C303030655C3030306C5C3030306C5C303030755C3030306E5C303030675C303030655C3030306E}
\BKM@entry{id=16,dest={73756273656374696F6E2E342E332E31},srcline={335},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030725C303030615C3030306E5C303030735C303030635C303030655C303030695C303030765C303030655C303030725C303030735C303030745C303030655C303030755C303030655C303030725C303030755C3030306E5C30303067}
\BKM@entry{id=17,dest={73756273656374696F6E2E342E332E32},srcline={336},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C3030304D5C303030695C303030745C303030685C3030305C3336365C303030725C303030745C3030306F5C3030306E}
\BKM@entry{id=18,dest={73756273656374696F6E2E342E332E33},srcline={337},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030495C303030615C3030306D5C303030625C303030695C303030635C3030305C3034305C3030304D5C3030306F5C303030645C303030655C30303073}
\BKM@entry{id=19,dest={73756273656374696F6E2E342E332E34},srcline={338},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030505C303030755C3030306E5C3030306B5C303030745C3030302F5C303030535C303030745C303030725C303030695C303030635C303030685C3030305C3034305C303030535C303030705C303030655C303030695C303030635C303030685C303030655C30303072}
\BKM@entry{id=20,dest={73756273656374696F6E2E342E332E35},srcline={339},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C3030304C5C303030695C3030306E5C3030306B5C303030735C3030302D5C3030305C3034305C303030755C3030306E5C303030645C3030305C3034305C303030525C303030655C303030635C303030685C303030745C303030735C303030685C3030305C3334345C3030306E5C303030645C303030655C30303072}
\BKM@entry{id=21,dest={73756273656374696F6E2E342E332E36},srcline={340},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030505C303030755C3030306E5C3030306B5C303030745C3030302F5C303030535C303030745C303030725C303030695C303030635C303030685C3030305C3034305C303030565C303030655C303030725C303030685C3030305C3334345C3030306C5C303030745C3030306E5C303030695C30303073}
\BKM@entry{id=22,dest={73756273656374696F6E2E342E332E37},srcline={341},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030505C303030755C3030306E5C3030306B5C303030745C3030302F5C303030535C303030745C303030725C303030695C303030635C303030685C3030305C3034305C303030565C303030655C303030725C303030685C3030305C3334345C3030306C5C303030745C3030306E5C303030695C303030735C3030305C3034305C303030615C303030755C303030745C3030306F5C3030306D5C303030615C303030745C303030695C303030735C303030635C30303068}
\BKM@entry{id=23,dest={73756273656374696F6E2E342E332E38},srcline={342},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030475C303030655C303030735C303030635C303030685C303030775C303030695C3030306E5C303030645C303030695C303030675C3030306B5C303030655C303030695C303030745C303030735C303030615C3030306E5C3030307A5C303030655C303030695C303030675C30303065}
\BKM@entry{id=24,dest={73756273656374696F6E2E342E332E39},srcline={343},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030415C3030306E5C303030735C303030745C303030695C303030655C303030675C303030735C3030307A5C303030655C303030695C303030745C3030305C3034305C3030304D5C303030695C303030745C303030685C3030305C3336365C303030725C303030745C3030306F5C3030306E}
\BKM@entry{id=25,dest={73756273656374696F6E2E342E332E3130},srcline={344},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030455C3030306E5C303030745C303030705C303030725C303030655C3030306C5C3030306C5C303030755C3030306E5C303030675C3030305C3034305C303030665C3030305C3337345C303030725C3030305C3034305C303030485C303030615C3030306E5C303030645C303030745C303030615C303030735C303030745C303030655C3030306E}
\BKM@entry{id=26,dest={73656374696F6E2E342E34},srcline={346},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030455C303030695C3030306E5C303030735C303030745C303030655C3030306C5C3030306C5C303030655C3030306E5C3030305C3034305C303030645C303030655C303030725C3030305C3034305C303030475C303030655C303030735C303030635C303030685C303030775C303030695C3030306E5C303030645C303030695C303030675C3030306B5C303030655C303030695C30303074}
\BKM@entry{id=27,dest={73656374696F6E2E342E35},srcline={347},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C3030304C5C303030615C303030755C303030745C303030735C303030745C3030305C3334345C303030725C3030306B5C303030655C3030305C3034305C3030304D5C303030695C303030745C303030685C3030305C3336365C303030725C303030745C3030306F5C3030306E}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Die Bedienung}{13}{chapter.4}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Bedienelemente}{13}{section.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Menuestruktur}{14}{section.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4.3}Einstellungen}{14}{section.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Transceiversteuerung}{14}{subsection.4.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Mithörton}{14}{subsection.4.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}Iambic Modes}{14}{subsection.4.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.4}Punkt/Strich Speicher}{14}{subsection.4.3.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.5}Links- und Rechtshänder}{14}{subsection.4.3.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.6}Punkt/Strich Verhältnis}{14}{subsection.4.3.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.7}Punkt/Strich Verhältnis automatisch}{14}{subsection.4.3.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.8}Geschwindigkeitsanzeige}{14}{subsection.4.3.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.9}Anstiegszeit Mithörton}{14}{subsection.4.3.9}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.10}Entprellung für Handtasten}{14}{subsection.4.3.10}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4.4}Einstellen der Geschwindigkeit}{14}{section.4.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4.5}Lautstärke Mithörton}{14}{section.4.5}\protected@file@percent }
\BKM@entry{id=28,dest={636861707465722E35},srcline={349},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030445C303030695C303030655C3030305C3034305C303030535C303030635C303030685C303030615C3030306C5C303030745C303030755C3030306E5C30303067}
\BKM@entry{id=29,dest={73656374696F6E2E352E31},srcline={351},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030535C303030705C303030615C3030306E5C3030306E5C303030755C3030306E5C303030675C303030735C303030765C303030655C303030725C303030735C3030306F5C303030725C303030675C303030755C3030306E5C30303067}
\BKM@entry{id=30,dest={73656374696F6E2E352E32},srcline={359},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C3030304D5C303030695C3030306B5C303030725C3030306F5C303030635C3030306F5C3030306E5C303030745C303030725C3030306F5C3030306C5C3030306C5C303030655C303030725C3030305C3034305C303030415C303030545C3030304D5C303030655C303030675C303030615C303030335C303030325C303030385C30303050}
\BKM@entry{id=31,dest={73656374696F6E2E352E33},srcline={367},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030555C303030535C303030425C3030305C3034305C303030435C3030306F5C3030306E5C303030745C303030725C3030306F5C3030306C5C3030306C5C303030655C303030725C3030305C3034305C303030465C303030545C303030325C303030335C30303030}
\BKM@entry{id=32,dest={73656374696F6E2E352E34},srcline={374},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030435C3030306C5C303030615C303030735C303030735C3030305C3034305C303030445C3030305C3034305C3030304E5C303030465C3030302D5C303030565C303030655C303030725C303030735C303030745C3030305C3334345C303030725C3030306B5C303030655C30303072}
\BKM@entry{id=33,dest={73756273656374696F6E2E352E342E31},srcline={381},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030435C303030615C303030755C303030655C303030725C3030302D5C303030465C303030695C3030306C5C303030745C303030655C30303072}
\BKM@entry{id=34,dest={73656374696F6E2E352E35},srcline={383},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030435C3030306C5C303030615C303030735C303030735C3030305C3034305C303030445C3030305C3034305C3030304E5C303030465C3030302D5C303030565C303030655C303030725C303030735C303030745C3030305C3334345C303030725C3030306B5C303030655C30303072}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Die Schaltung}{15}{chapter.5}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Spannungsversorgung}{15}{section.5.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Schaltung Spannungsversorgung\relax }}{15}{figure.caption.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5.2}Mikrocontroller ATMega328P}{15}{section.5.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5.3}USB Controller FT230}{15}{section.5.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5.4}Class D NF-Verstärker}{15}{section.5.4}\protected@file@percent }
\BKM@entry{id=35,dest={73656374696F6E2E352E36},srcline={392},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030425C303030655C303030735C303030635C303030685C303030725C303030655C303030695C303030625C303030755C3030306E5C30303067}
\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Schaltung Mikrocontroller\relax }}{16}{figure.caption.10}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Cauer-Filter}{16}{subsection.5.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5.5}Class D NF-Verstärker}{16}{section.5.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5.6}Beschreibung}{16}{section.5.6}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Schaltung USB\relax }}{17}{figure.caption.11}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Schaltung ClassD Verstärker\relax }}{18}{figure.caption.12}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Schaltung Cauer Filter\relax }}{18}{figure.caption.13}\protected@file@percent }
\BKM@entry{id=36,dest={636861707465722E36},srcline={393},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030445C303030695C303030655C3030305C3034305C303030535C3030306F5C303030665C303030745C303030775C303030615C303030725C30303065}
\BKM@entry{id=37,dest={73656374696F6E2E362E31},srcline={394},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030695C3030306D5C303030655C303030725C3030305C3034305C30303032}
\BKM@entry{id=38,dest={73656374696F6E2E362E32},srcline={397},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030695C3030306D5C303030655C303030725C3030305C3034305C30303031}
\BKM@entry{id=39,dest={73656374696F6E2E362E33},srcline={400},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030695C3030306D5C303030655C303030725C3030305C3034305C30303030}
\BKM@entry{id=40,dest={73756273656374696F6E2E362E332E31},srcline={403},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030695C3030306D5C303030655C303030725C3030305C3034305C303030655C303030695C3030306E5C303030735C303030745C303030655C3030306C5C3030306C5C303030655C3030306E}
\BKM@entry{id=41,dest={73656374696F6E2E362E34},srcline={408},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030535C303030695C3030306E5C303030755C303030735C3030305C3034305C3030304D5C303030695C303030745C303030685C3030305C3336365C303030725C303030745C3030306F5C3030306E5C3030305C3034305C303030645C303030755C303030725C303030635C303030685C3030305C3034305C303030505C303030755C3030306C5C303030735C303030775C303030655C303030695C303030745C303030655C3030306E5C3030306D5C3030306F5C303030645C303030755C3030306C5C303030615C303030745C303030695C3030306F5C3030306E}
\BKM@entry{id=42,dest={73756273656374696F6E2E362E342E31},srcline={413},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030475C303030725C303030755C3030306E5C303030645C3030306C5C303030615C303030675C303030655C3030306E}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Die Software}{19}{chapter.6}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}Timer 2}{19}{section.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6.2}Timer 1}{19}{section.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6.3}Timer 0}{19}{section.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}Timer einstellen}{19}{subsection.6.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6.4}Sinus Mithörton durch Pulsweitenmodulation}{19}{section.6.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}Grundlagen}{20}{subsection.6.4.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Pulswellenmodulation\relax }}{20}{figure.caption.14}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\nonumberline Pulsweitenmodulation}{20}{subsubsection*.16}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Symmetrisches Rechtecksignal an PB3\relax }}{21}{figure.caption.17}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces PWM - Tastgrad - Sinus\relax }}{22}{figure.caption.18}\protected@file@percent }
\BKM@entry{id=43,dest={73756273656374696F6E2E362E342E32},srcline={541},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030535C303030695C3030306E5C303030755C303030735C303030745C303030615C303030625C303030655C3030306C5C3030306C5C30303065}
\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces OCR1A Werte für verschiedene Frequenzen des Mithörtons\relax }}{23}{table.caption.19}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}Sinustabelle}{23}{subsection.6.4.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6.4}{\ignorespaces Sinus nach Tabelle vom Python3 Script als Linie\relax }}{24}{figure.caption.20}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6.5}{\ignorespaces Sinus nach der Tabelle vom Python3 Script mit Stützpunkten\relax }}{24}{figure.caption.21}\protected@file@percent }
\BKM@entry{id=44,dest={636861707465722E37},srcline={571},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030455C3030306E5C303030745C303030775C303030695C303030635C3030306B5C3030306C5C303030755C3030306E5C303030675C303030735C303030755C3030306D5C303030675C303030655C303030625C303030755C3030306E5C30303067}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Entwicklungsumgebung}{25}{chapter.7}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\BKM@entry{id=45,dest={636861707465722A2E3232},srcline={596},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030545C303030615C303030625C303030655C3030306C5C3030306C5C303030655C3030306E}
\@writefile{toc}{\contentsline {chapter}{\nonumberline Tabellen}{27}{chapter*.22}\protected@file@percent }
\gdef\lot@l@number{41.11653pt}
\BKM@entry{id=46,dest={636861707465722A2E3233},srcline={597},srcfile={2E2F446F6B756D656E746174696F6E20424A2D4B657965722E746578}}{5C3337365C3337375C303030415C303030625C303030625C303030695C3030306C5C303030645C303030755C3030306E5C303030675C303030655C3030306E}
\@writefile{toc}{\contentsline {chapter}{\nonumberline Abbildungen}{29}{chapter*.23}\protected@file@percent }
\gdef\lof@l@number{43.9643pt}
\global\@namedef{scr@dte@chapter@lastmaxnumwidth}{10.40242pt}
\global\@namedef{scr@dte@section@lastmaxnumwidth}{16.60352pt}
\global\@namedef{scr@dte@subsection@lastmaxnumwidth}{29.18199pt}
\global\@namedef{scr@dte@table@lastmaxnumwidth}{40.11018pt}
\global\@namedef{scr@dte@figure@lastmaxnumwidth}{42.95795pt}
\@writefile{toc}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file}
\@writefile{lot}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file}
\@writefile{lof}{\providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file}
\gdef \@abspage@last{29}

@ -0,0 +1,24 @@
\babel@toc {ngerman}{}
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {figure}{\numberline {3.1}{\ignorespaces Diagramm Iambic Mode A\relax }}{9}{figure.caption.4}%
\contentsline {figure}{\numberline {3.2}{\ignorespaces Diagramm Iambic Mode B\relax }}{10}{figure.caption.5}%
\contentsline {figure}{\numberline {3.3}{\ignorespaces Diagramm Ultimatic Mode\relax }}{11}{figure.caption.6}%
\contentsline {figure}{\numberline {3.4}{\ignorespaces Diagramm Gewichtung\relax }}{11}{figure.caption.7}%
\contentsline {figure}{\numberline {3.5}{\ignorespaces Diagramm Punkt/Strich Ratio\relax }}{12}{figure.caption.8}%
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {figure}{\numberline {5.1}{\ignorespaces Schaltung Spannungsversorgung\relax }}{15}{figure.caption.9}%
\contentsline {figure}{\numberline {5.2}{\ignorespaces Schaltung Mikrocontroller\relax }}{16}{figure.caption.10}%
\contentsline {figure}{\numberline {5.3}{\ignorespaces Schaltung USB\relax }}{17}{figure.caption.11}%
\contentsline {figure}{\numberline {5.4}{\ignorespaces Schaltung ClassD Verstärker\relax }}{18}{figure.caption.12}%
\contentsline {figure}{\numberline {5.5}{\ignorespaces Schaltung Cauer Filter\relax }}{18}{figure.caption.13}%
\addvspace {10\p@ }
\contentsline {figure}{\numberline {6.1}{\ignorespaces Pulswellenmodulation\relax }}{20}{figure.caption.14}%
\contentsline {figure}{\numberline {6.2}{\ignorespaces Symmetrisches Rechtecksignal an PB3\relax }}{21}{figure.caption.17}%
\contentsline {figure}{\numberline {6.3}{\ignorespaces PWM - Tastgrad - Sinus\relax }}{22}{figure.caption.18}%
\contentsline {figure}{\numberline {6.4}{\ignorespaces Sinus nach Tabelle vom Python3 Script als Linie\relax }}{24}{figure.caption.20}%
\contentsline {figure}{\numberline {6.5}{\ignorespaces Sinus nach der Tabelle vom Python3 Script mit Stützpunkten\relax }}{24}{figure.caption.21}%
\addvspace {10\p@ }
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file

File diff suppressed because it is too large Load Diff

@ -0,0 +1,10 @@
\babel@toc {ngerman}{}
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {table}{\numberline {6.1}{\ignorespaces OCR1A Werte für verschiedene Frequenzen des Mithörtons\relax }}{23}{table.caption.19}%
\addvspace {10\p@ }
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file

@ -0,0 +1,600 @@
\documentclass[
11pt,
a4paper,
% twoside,
parskip=full-,
bibliography=totoc,
listof=totoc,
listof=entryprefix,
toc=sectionentrywithdots
]{scrbook}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage[ngerman]{babel}
\usepackage{color}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{subfig}
\usepackage{floatflt,epsfig}
\usepackage{nicefrac}
\usepackage{units}
\usepackage{keystroke}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{rotating}
\usepackage{bbding}
\usepackage{tikz}
\usepackage{tikz-timing}
\usepackage{pgfplots}
\usepackage{ccicons}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{siunitx}
\usepackage{verbatimbox}
%\usepackage{unicode-math, polyglossia}
\usepackage{lmodern}
\usepackage{unicode-math}
% Settings
\pgfplotsset{compat=1.17}
\renewcaptionname{ngerman}{\contentsname}{Inhalt}
\renewcaptionname{ngerman}{\listfigurename}{Abbildungen}
\renewcaptionname{ngerman}{\listtablename}{Tabellen}
\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}
\BeforeStartingTOC[lof]{\def\autodot{:}}
\BeforeStartingTOC[lot]{\def\autodot{:}}
\sisetup{locale = DE}
%% PDF Meta Information und Links
\usepackage[
colorlinks=true,urlcolor=blue,linkcolor=black,
pdftitle={BJ-Keyer},
pdfsubject={An electronic morse keyer},
pdfauthor={Thomas 'Tom' Malkus, DL7BJ},
pdfkeywords={Software, Hardware, Electronic CW Keyer, Amateur Radio, Open Source, Open Hardware},
pdfcreator={Neovim \& LuaLaTeX(Linux)},
pdfproducer={LaTeX}]
{hyperref}
% Getestete und funktionierende Fonts.
% \setmainfont{Rosario} - Schöner, eleganter Font.
% \setmainfont{Roboto} % - Schnörkelos
% \setmainfont{QTAntiquePost}
% \setmainfont{QTFloraline}
% \setmainfont{BaskervilleF}
% \setmainfont{EB Garamond} % - ähnlich Rosario
% \setmainfont{SauceCodeProNerdFontPropo-Regular}
% \setsansfont{SauceCodeProNerdFontPropo-Regular}
% \setmathfont{SourceCodePro}
% \setmonofont{SauceCodeProNerdFontMono-Regular}
% \urlstyle{same}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{TeX Gyre Pagella}
% \setmathfont{TeX Gyre Pagella Math}
\setmathfont{Asana Math}
% \usepackage{placeins}
\definecolor{fond}{RGB}{240,240,240}
\begin{document}
\newcommand{\step}{.5}
\begin{titlepage}
\raggedright
\begin{figure}[h]
\centering
\hfill %
\subfloat{\includegraphics[scale=0.4]{../Pictures/dl7bj}}
\hfill %
\subfloat{\includegraphics[scale=0.75]{../Pictures/dl7bj-logo}}
\hfill %
\end{figure}
\huge
\vspace{2cm}
BJ-Keyer\\
Dokumentation \\
\small
ab Version 1.00 vom \today \\
Tom, DL7BJ \\
\vspace{0.1cm}
Mail \href{mailto:tom@dl7bj.de}{tom@dl7bj.de} \\
Site \url{https://isnix.de} \\
\vspace{2cm}
\normalsize
\dictum{Die Morsetelegrafie ist der Urknall des Internets.}
\end{titlepage}
\section*{Vorwort}
Was ist ein elektronischer Morsezeichengeber? Das ist ein Gerät, welches wir Funkamateure besser
unter dem Namen Morse-Keyer kennen. Kurzgesagt, ein Morse-Keyer erzeugt elektronisch Punkte, Striche
und Pausen. Während dies mit der Handtaste zum Morsen manuell gemacht werden muss, wird ein Morse-Keyer
in Verbindung mit Ein- oder Zweihebeltasten verwendet und erzeugt bei Betätigung die Punkte und Striche
sowie die Pausen selbständig.
Ist das neu?
Nein, Morse-Keyer gibt es schon sehr lange. Als Fertiggeräte, als Bausätze und auch nur als Bauanleitungen
in vielen verschiedenen Varianten. Etwas, das man quasi an jeder Straßenecke bekommt, in unterschiedlichen
Preisklassen.
Warum noch ein Morse-Keyer?
Einige der erhältlichen Morse-Keyer sind in großen Gehäusen untergebracht, mit vielen Funktionen, Anschluß für eine PC Tastatur, dutzende Speicher und LC-Display und kosten viel Geld. Andere sind sehr günstig, haben aber nur einen Anschluß für eine Taste. Wer nicht gerade der Contester und DX-Jäger ist, gerne mal diverse Tasten an mehr als einem Transceiver verwendet und weder Steuerung über den PC noch Anschluß für Tastaturen benötigt, findet fast nichts am Markt.
Deswegen der BJ-Keyer, einfach, simpel, klein und trotzdem können mehrere Tasten und 2 Transceiver angeschlossen werden. Alles, was ich nicht benötige, habe ich auch weggelassen. Wer also auf der Suche nach einem Morse-Keyer mit ganz vielen Funktionen ist, dem empfehle ich, sich woanders umzuschauen.
Wer aber einen kleinen stationären Keyer mit wenigen aber praktischen Funktionen sucht, sollte hier weiterlesen.
Alle Unterlagen, wie Dokumentation, Schaltpläne und Software - kurz gesagt das gesamte Werk mit allem was dazu gehört, unterliegt der Attribution-NonCommercial-ShareAlike 4.0 International \href{https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.de}{\ccbyncsa} Lizenz, wenn im oder beim Code nicht anders angegeben.
Viel Spaß!
Tom, DL7BJ
% \newline
\tableofcontents
\chapter{Hinweise zur Dokumentation}
In dieser Dokumentation werden diverse gleichbleibende Darstellungsweisen verwendet. Dies erleichtert Dir das Verständnis der Bedeutung. Texte, die auf dem Display erscheinen, werden in der Bedienungsanleitung so \texttt{dargestellt}. Quellcode wird in einer farbigen Code-Darstellung eingebunden.
\chapter{Funktionsübersicht}
%%\begin{itemize}
%%\item{BJ-Keyer Funktionsübersicht}
\begin{itemize}
\item{Transceiver 1 oder 2 oder beide wählbar}
\item{Iambic A, Iambic B und Ultimatic Mode}
\item{Mithörton als Sinus, abschaltbar}
\item{Anzeige der Geschwindigkeit in WpM oder BpM}
\item{linkes/rechts Paddle vertauschen (Links- oder Rechtshänder)}
\item{Punkt/Strich Verhältnis von 1:2 bis 1:4 einstellbar}
\item{Ṕunkt/Strich Gewichtung einstellbar}
\item{Punkt/Strich Speicher abschaltbar (Iambic Modes)}
\item{Frequenz des Mithörtons von 300-1000Hz einstellbar}
\item{Anstieg (Attack) des Mithörtons einstellbar (kein Klicken im LS)}
\item{Entprellzeit für Handtasten einstellbar}
\item{Anschluß für 3 Handtasten und 3 Paddle}
\item{Ausgänge für die Ansteuerung von 2 Transceivern}
\item{optionales Tastenfeld für Speicher und Transceiver Umschaltung}
\item{Speicherprogrammierung über USB}
\item{Stromversorgung 7-15V}
\item{Integrierter Lautsprecher für Mithörton}
%% \end{itemize}
\end{itemize}
\chapter{Grundlagen}
\section{Betriebsarten eines Morse-Keyers}
Ein Morse-Keyer, die Tastelektronik, hat verschiedene Betriebsarten, die sich in der automatischen Erzeugung der Zeichen unterscheiden. Je nach Betriebsart gibt es einen Punkt- und Strichspeicher oder die direkte Erzeugung der Zeichen.
Bei einem zweiarmigen Paddle erzeugt ein Paddle (genauer die Tastelektronik) die Punkte und das andere Paddle die Striche. Diese Art von Paddle werden auch als Iambic oder Squeeze Paddle bezeichnet.
\subsection{Iambic A}
Im Iambic Mode A wird wird immer nur das Zeichen gegeben, dessen Paddle gerade betätigt wird. Wird das Paddle zu früh losgelassen, ergänzt die Tastelektronik das Zeichen auf die erforderliche Länge. Es wird kein weiteres Zeichen gesendet. Werden beide Paddle gleichzeitig gedrückt gehalten, ergibt sich eine Punkt-Strich-Folge. Wird der Kontakt wieder geöffnet, stoppt die Punkt-Strich-Folge. Es wird nur das Zeichen mit der erforderlichen Länge gesendet, welches beim Öffnen der Kontakte gerade gesendet wurde.
\begin{figure}[!ht]
\begin{tikztimingtable}[
timing/slope=0,
timing/coldist=0.25pt,
xscale=5.0,yscale=3.1,
thick
]
%% Timing
DIT\ & lhhhhhhhhhhlllll \\
DAH\ & 0.25llhhhhhhhhh0.75hlllll \\
Mode A\ & lhlhhhlhlhhhllll \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\horlines{}
\vertlines{0,0.5,...,8}
\end{scope}
\node[anchor=south east,inner sep=0pt]
at (10,-4) {\tiny Ausgabe};
\end{pgfonlayer}
\end{tikztimingtable}
\caption{Diagramm Iambic Mode A}
\end{figure}
\subsection{Iambic B}
Im Iambic Mode B verhält es sich im Prinzip wie im Iambic Mode A, nur dass beim gleichzeitigen Öffnen der Kontakte das entgegengesetzte Zeichen des zuletzt geöffneten Kontakts angefügt wird.
\begin{figure}[!ht]
\begin{tikztimingtable}[
timing/slope=0,
timing/coldist=0.25pt,
xscale=5.0,yscale=3.1,
thick
]
%% Timing
DIT\ & lhhhhhhhhhhlllll \\
DAH\ & 0.25llhhhhhhhhh0.75hlllll \\
Mode B\ & lhlhhhlhlhhhlhll \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\horlines{}
\vertlines{0,0.5,...,8}
\end{scope}
\node[anchor=south east,inner sep=0pt]
at (10,-4) {\tiny Ausgabe};
\end{pgfonlayer}
\end{tikztimingtable}
\caption{Diagramm Iambic Mode B}
\end{figure}
Wie im Diagramm zu sehen ist, wird erst das DIT Paddle betätigt, dann das DAH Paddle, es sind also beide Paddle gleichzeitig betätigt. Es wird eine Folge von DIT und DAH, beginnend mit einem DIT gegeben, solange beide Paddle betätigt werden. Werden die Kontakte gleichzeitig gelöst, wird das entgegengesetzte Zeichen des zuletzt ausgebenen Zeichens, angefügt. Hier ist das ein DIT.
\subsection{Ultimatic}
Beim Ultimatic Mode wird im Gegensatz zu den Iambic Modes bei der gleichzeitigen Betätigung beider Paddles ein DIT oder DAH und eine Folge des jeweiligen entgegengesetzten Zeichens erzeugt. Es wird zuerst das Zeichen erzeugt, dessen Paddle zuerst betätigt wurde. Im Anschluß wird kontinuierlich das Zeichen erzeugt, dessen Paddle zuletzt betätigt wurde.
Werden die Paddle gleichzeitig losgelassen, stoppt die Aussendung der Zeichen ohne die Ausgabe eines weiteren Zeichens wie beim Iambic Mode B. Wird ein Paddle losgelassen, wird die Aussendung mit dem noch betätigten Paddle fortgesetzt. Es kann somit eine ganze Folge von dem entgegengesetzten Zeichen in den Zeichenstrom des zuerst betätigten Paddles eingefügt werden. Damit können mehr Zeichen mit der Squeeze Technik gesendet werden, als es bei den Iambic Modes möglich ist.
\begin{figure}[!ht]
\begin{tikztimingtable}[
timing/slope=0,
timing/coldist=0.25pt,
xscale=5.0,yscale=3.1,
thick
]
%% Timing
DIT\ & lhhhhhhhhhhhllll \\
DAH\ & 0.25llhhhhhhh0.75hlllllll \\
Ultimatic\ & lhlhhhlhhhlhllll \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\horlines{}
\vertlines{0,0.5,...,8}
\end{scope}
\node[anchor=south east,inner sep=0pt]
at (10,-4) {\tiny Ausgabe};
\end{pgfonlayer}
\end{tikztimingtable}
\caption{Diagramm Ultimatic Mode}
\end{figure}
Im Diagramm ist dieses Verhalten am Beispiel des Buchstabens P dargestellt. Zuerst wird das DIT Paddle betätigt, es wird ein DIT erzeugt. Noch während das DIT gesendet wird, kann das DAH Paddle betätigt werden und obwohl das DIT Paddle gehalten wird, erfolgt eine Aussendung von Strichen, so lange, wie das DAH Paddle gehalten wird. Wird der Kontakt nach zwei Strichen geöffnet, wird ein DIT gesendet, weil die DIT Taste immer noch gehalten wird. Nach dem Öffnen der Kontakte beide Paddles stoppt die Sendung sofort.
\subsection{Gewichtung}
Mit der Gewichtung der einzelnen Symbole kann die Länge von Punkten und Strichen verändert werden. Die Gewichtung verändert nicht die Gebegeschwindigkeit, weil im gleichen Maße einer Verkürzung von Punkten und Strichen, die Pausen verlängert werden.
Ein Wert kleiner 50 verringert die Gewichtung, ein Wert größer 50 erhöht die Gewichtung. Bei der Verringerung werden Punkte und Striche kürzer, die Pausen länger. Bei der Erhöhung werden Punkte und Striche länger, aber die Pausen kürzer.
\begin{figure}[!ht]
\begin{tikztimingtable}[
timing/slope=0,
timing/coldist=0.25pt,
xscale=5.0,yscale=3.1,
thick
]
%% Timing
$<$50\ & ll0.75h1.25l0.75hhh1.25l0.75h1.25l \\
Normal\ & llhlhhhlhll \\
$>$50\ & ll1.25h0.75l1.25hhh0.75l1.25h0.75l \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\horlines{}
\vertlines{0,0.5,...,8}
\end{scope}
\end{pgfonlayer}
\end{tikztimingtable}
\caption{Diagramm Gewichtung}
\end{figure}
\subsection{Punkt/Strich Ratio}
Das Ratio gibt das Verhältnis der Punktlänge zur Strichlänge an. Beim Standard Ratio von 1:3 ist ein Strich genau 3 Punkte lang. Vermindert sich das Ratio zu 1:2 wird der Strich um einen Punkt kürzer. Erhöht sich das Ratio zu 1:4, wird der Strich um einen Punkt länger. Die Länge der Pausen und der Punkte verändert sich nicht.
\begin{figure}[!ht]
\begin{tikztimingtable}[
timing/slope=0,
timing/coldist=0.25pt,
xscale=5.0,yscale=3.1,
thick
]
%% Timing
1:2\ & llhl0.66h0.66h0.66hlhl \\
Normal 1:3\ & llhlhhhlhll \\
1:4\ & llhl1.33h1.33h1.33hlhl \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\horlines{}
\vertlines{0,0.5,...,8}
\end{scope}
\end{pgfonlayer}
\end{tikztimingtable}
\caption{Diagramm Punkt/Strich Ratio}
\end{figure}
\subsection{Punkt-Strich Speicher}
\subsection{Handtaste}
\chapter{Die Bedienung}
\section{Bedienelemente}
Als Bedienelemente stehen ein Drehencoder für diverse Einstellungen und ein Potentiometer für die Lautstärke des Mithörtons zur Verfügung. Optional kann ein Tastenfeld mit max. 5 Tastern für Zusatzfunktion wie Textspeicher angeschlossen werden. Zur Ausgabe von eingestellten Parametern wird ein 0,96$"$ OLED Display mit 128x64 Pixeln verwendet.
\section{Menuestruktur}
\section{Einstellungen}
\subsection{Transceiversteuerung}
\subsection{Mithörton}
\subsection{Iambic Modes}
\subsection{Punkt/Strich Speicher}
\subsection{Links- und Rechtshänder}
\subsection{Punkt/Strich Verhältnis}
\subsection{Punkt/Strich Verhältnis automatisch}
\subsection{Geschwindigkeitsanzeige}
\subsection{Anstiegszeit Mithörton}
\subsection{Entprellung für Handtasten}
\section{Einstellen der Geschwindigkeit}
\section{Lautstärke Mithörton}
\chapter{Die Schaltung}
\section{Spannungsversorgung}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.4]{../Pictures/Spannungsversorgung.jpg}
\caption{Schaltung Spannungsversorgung}
\end{figure}
\section{Mikrocontroller ATMega328P}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.5]{../Pictures/Mikrocontroller.jpg}
\caption{Schaltung Mikrocontroller}
\end{figure}
\section{USB Controller FT230}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{../Pictures/USB.jpg}
\caption{Schaltung USB}
\end{figure}
\section{Class D NF-Verstärker}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{../Pictures/ClassD-Verstärker.jpg}
\caption{Schaltung ClassD Verstärker}
\end{figure}
\subsection{Cauer-Filter}
\section{Class D NF-Verstärker}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{../Pictures/Cauer-Filter.jpg}
\caption{Schaltung Cauer Filter}
\end{figure}
\section{Beschreibung}
\chapter{Die Software}
\section{Timer 2}
Der Timer 2 läuft in der Betriebsart Pulsweitenmodulation und erzeugt das PWM Signal für den Mithörton.
\section{Timer 1}
Mit dem Timer 1 werden die Zeiten für die Nachladewerte für Timer 2 zur Erzeugung des Sinussignals für den Mithörton erzeugt.
\section{Timer 0}
Der Timer 0 läuft mit einem Takt von einer Millisekunde. Im Timer Interrupt werden 3 Zähler verwendet, so dass Zeiten von 1ms, 10ms und 20ms für diverse Abläufe zur Verfügung stehen.
\subsection{Timer einstellen}
\begin{align}
f_{OCnA} = \frac{f_{clk\_I/O}}{2 \cdot \mathbb{N} \cdot (1+OCRnA)}
\end{align}
\section{Sinus Mithörton durch Pulsweitenmodulation}
Der BJ-Keyer erzeugt einen Mithörton mit Sinuskurve, statt dem vielfach verwendeten Rechtecksignal.
Der Klang eines Sinussignals ist angenehmer. Um mit dem Mikrocontroller ein Sinussignal zu erzeugen,
wird die Pulsweitenmodulation verwendet.
\subsection{Grundlagen}
Die Pulsweitenmodulation, kurz PWM genannt, ist eine digitale Modulationsart, bei der eine Spannung
zwischen zwei Werten wechselt.
\begin{figure}[!ht]
\centering
\begin{tikztimingtable}[timing/slope=.005, yscale=5, xscale=1.5]
\ & 4L N(A1) 4H N(A2) 5L N(A3) 4H N(A4) 8L\\
\extracode
\begin{pgfonlayer}{background}
\begin{scope}[gray,semitransparent,semithick]
\vertlines{4,13}
\end{scope}
\end{pgfonlayer}
\draw [<->] (A1|-row1.mid) --node[below]{\tiny Duty Cycle} (A2|-row1.mid);
\draw [<->] (4,1.5) --node[below]{\tiny Period} (13,1.5);
\end{tikztimingtable}
\caption{Pulswellenmodulation}
\end{figure}
Mit einer konstanten Frequenz wird ein Rechteckimpuls moduliert, bei dem die Weite variert. Das Verhältnis zwischen Impuls und Pause wird Tastgrad (Duty Cycle) genannt.
Bei einer Rechteckschwingung gilt für den Tastgrad D:
\begin{align}
D = \frac{\tau}{T}
\end{align}
mit $\tau$ als Impulsdauer und T als Periodendauer. Mit einem Tastgrad D = 0,5 = 50\% würde ein
symmetrischer Impuls erzeugt werden. Der Mikrocontroller schaltet den Ausgang zwischen $V_{SS}$ und $V_{DD}$.
Die resultierende Ausgangsspannung berechnet sich wie folgt:
\begin{align}
U_{Out} = \frac{\tau}{T} \cdot U_{In}
\end{align}
Dabei ist $U_{In}$ gleich $V_{SS}$. Bei einem Tastgrad von 50\% und einer Spannung $V_{SS}$ von 5V
beträgt $U_{Out}$ = 2,5V. Je länger die Einschaltzeit ist, desto höher ist die effektive Spannung
des erzeugten Rechtecksignals, bis zu $V_{SS}$ bei einem Tastgrad von 100\%.
\subsubsection{Pulsweitenmodulation}
Das PWM Signal wird mit Timer 2 des ATMega328P erzeugt. Das PWM Signal wird an PortB Pin 3, OC2A ausgegeben.
Es wird der Fast PWM Mode 7 des Controllers verwendet, dabei ist der obere Wert des Timers der Wert
im Register OCR2A. Der Ausgang OC2A wird auf den Ausgangswert Toggle konfiguriert, d.h. jedes Mal, wenn der
Timer 2 den Wert in OCR2A erreicht, wird der Port umgeschaltet. Es wird ein Rechteck-Signal an PB3 erzeugt,
dessen Tastgrad durch OCR2A eingestellt wird. Als Taktquelle wird der CPU Takt verwendet. Dies bedeutet,
der Timer 2 läuft ohne einen Vorteiler.
Der maximale Wert für FastPWM berechnet sich wie folgt:
\begin{align}
f = \frac{f_{Quarz}}{\mathbb{N} \cdot 256}
\end{align}
Der maximale Wert bei einem Quarz mit 16MHz und der minimalen Vorteilung von 1 beträgt somit:
\begin{align}
\frac{16MHz}{1 \cdot 256} = 62,5\si{\kilo\Hz}
\end{align}
Am Ausgang von PB3 liegt so bei einem Tastgrad von 50\% ein symmetrisches Rechtecksignal mit 62,5\si{\kilo\Hz} an. Der Effektivwert beträgt bei einer Betriebsspannung $V_{SS}$ von 5V = 2,5V. Die 256-1 sind der maximale Wert (256 Werte von 0-255), den OCR2A haben kann (Timer 2 ist ein 8 Bit Timer).
\begin{figure}[!ht]
\centering
\begin{tikzpicture}[yscale=1.0]
\begin{axis}[
width=10cm,
height=4cm,
x axis line style={-stealth},
y axis line style={-stealth},
xticklabels={},
ymax = 6,xmax=7.5,
axis lines*=center,
ytick={2.5,5},
xlabel={Zeit $\rightarrow$},
ylabel={+5V $\rightarrow$},
xlabel near ticks,
ylabel near ticks]
\addplot+[thick,mark=none,const plot]
coordinates{(0,0) (0,5) (1,0) (2,5) (3,0) (4,5) (5,0) (6,5) (7,0)};
\end{axis}
\end{tikzpicture}
\caption{Symmetrisches Rechtecksignal an PB3}
\end{figure}
Das ist aber nicht das Ziel, da der Keyer ein sinusförmiges Signal ausgeben soll. Um das zu erreichen, muss der Effektivwert der Rechteckspannung an PB3 veränderbar sein. Dies erreicht man durch eine Änderung des Tastgrades. Nun kann ein Mikrocontroller an einem digitalen Ausgangsport keinen Sinus erzeugen, einzig eine Treppe mit einer bestimmten Anzahl an Stufen, an- und absteigend ist möglich.
Wenn der obere Zählwert des Timers 2 in OCR2A verändert wird, ändert sich auch der Effektivwert der Rechteckspannung, durch die Änderung des Tastgrades. Läßt man OCR2A von 0 bis 255 zählen, ändert der Tastgrad sich von 0\% bis 100\%. Wenn dies über eine Zeitdauer $\tau$ durch Änderung von OCR2A passiert, dann steigt die effektive Spannung über diese Zeitdauer $\tau$ von 0V-{$V_{SS}$.
\begin{align}
V_{eff} = U_{max} \cdot \sqrt{Tastgrad}
\end{align}
Da der digitale Port nur zwischen Low und High wechseln und keine negativen Spannungen erzeugen kann, legt man eine virtuelle Nulllinie auf die Mitte, also auf 2,5V\footnote{es wird im weiteren Verlauf immer von $V_{ss}$ = 5V ausgegangen}. Die 2,5V werden bei einem Tastgrad von 50\% erreicht, entsprechend einem Wert von 128 in OCR2A.
Erhöht man den Wert von OCR2A in Form einer Sinusfunktion von 128 auf 255 über eine Zeitdauer $\tau$, ergibt sich eine ansteigende effektive Spannung in Form einer Sinusfunktion von 2,5V auf 5,0V. Verringert man den Wert von OCR2A von 255 auf 0 in Form einer Sinusfunktion, fällt die effektive Spannung auf 0V. Durch die passende Änderung von OCR2A in Form einer Sinusfunktion über die Zeitdauer $\tau$ können somit Effektivspannungen mit 256 Werten dargestellt werden. Je mehr Werte es über die Zeitdauer $\tau$ sind, umso genauer ist die resultierende Hüllkurve in Form eines Sinus.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.7]{../Pictures/pwm_duty_cycle}
\caption{PWM - Tastgrad - Sinus}
\end{figure}
Die Zeitdauer $\tau$, mit der OCR2A mit den Werten einer Sinusfunktion geladen wird, legt die Frequenz des Mithörtons fest. Für die Zeitdauer $\tau$ wird ein weiterer Timer benötigt. Für einen Mithörton von 600Hz müssen 600 \cdot 256 Werte pro Sekunde über einen Interrupt in OCR2A geladen werden. Je mehr Werte es sind, um so genauer ist die Kurvenform. Für den Timer kann die Zeit wie folgt berechnet werden:
\begin{align}
600\si{Hz} \cdot 256 = 153,6\si{\kilo\Hz}
\end{align}
Die Timer 1 läuft im CTC Modus und es wird ein Output Compare Match Interrupt ausgelöst. Das bedeutet, der Timer läuft bis zum Wert in OCR1A hoch und dann erfolgt der Interrupt. Der Wert für OCR1A wird wie folgt berechnet:
\begin{align}
f_{OCR1A} = \frac{fclk_{I/O}}{\mathbb{N} \cdot (1+OCR1A)}
\end{align}
Daraus folgt, daß sich ein Wert von
\begin{align}
OCR1A = \left( \frac{16\si{\mega\Hz}} {8 \cdot 153,6\si{\kilo\Hz}}\right) - 1 = 12
\end{align}
12 für OCR1A ergibt. Allerdings bedeutet eine Frequenz von 153,6\si{\kilo\Hz} für den Timer, dass alle 6,5µs ein Interrupt ausgelöst wird, bei 800\si{Hz} Mithörton sind es alle 5µs.
Der Controller läuft mit 16\si{\mega\Hz}, ein Taktzyklus dauert 62,5ns. Damit bleiben ungefähr 80 Taktzyklen für alle restlichen Aufgaben, wie Tasten abfragen, Display ansteuern, Drehgeber abfragen, CW Zeichen ausgeben. Das ist sehr wenig und die Gefahr besteht, dass Interrupts der Tasteneingänge verloren gehen\footnote{was auch in der Praxis bei den Tests so war}. Der einzige Weg zur Verlängerung der Zeit zwischen 2 Interrupts besteht in einer Verringerung der Werte für die Sinusfunktion. Mit den 256 Werten ist die Kurvenform zwar fein abgestuft, aber der Controller ist damit am Limit.
Bei einer Verringerung auf 64 Werte für den Sinus ergibt sich dann bei 600\si{Hz} eine Zeit von 26µs, das entspricht ungefähr 416 Taktzyklen, was mehr als ausreichend ist. Das der Mithörton dadurch etwas rauher im Klang wird, muss das nachfolgende RLC Filter ausgleichen.
\begin{align}
600\si{Hz} \cdot 64 = 38,4\si{\kilo\Hz}
\end{align}
Mit einer Tabelle von 64 Werten ergibt sich für den Timer 1 eine Frequenz von 38,4\si{\kilo\Hz} und für OCR1A ein Wert von 51 bei einem Prescaler von 8.
\begin{align}
OCR1A = \left( \frac{16\si{\mega\Hz}} {8 \cdot 38,4\si{\kilo\Hz}}\right) - 1 = 51
\end{align}
Die Berechnung der Werte für OCR1A für unterschiedliche Frequenzen des Mithörtons erfolgt nach dieser Formel mit $f_{Sinus}$ als gewünschte Frequenz des Mithörtons.
\begin{align}
OCR1A = \left( \frac{f_{clk\_I/O}} {\mathbb{N} \cdot 64 \cdot f_{Sinus}}\right) - 1
\end{align}
\begin{table}[!ht]
\centering
\begin{tabular}{|l|l|}
$f_{Sinus}$ & OCR1A\\ \hline
1000Hz & 30 \\
800Hz & 38 \\
600Hz & 51 \\
400Hz & 77 \\
\end{tabular}
\caption{OCR1A Werte für verschiedene Frequenzen des Mithörtons}
\end{table}
\subsection{Sinustabelle}
Über den Overflow-Interrupt vom Timer 1 wird der jeweils nächste Wert einer Sinustabelle in OCR2A
geladen. Die Sinustabelle wurde mit einem einfachen Python3 Script erzeugt.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.5]{../Pictures/sinewave-line.jpg}
\caption{Sinus nach Tabelle vom Python3 Script als Linie}
\end{figure}
Die 64 Werte vom Python3 Script ergeben sich wie folgt:
\begin{verbnobox}[\tiny]
const unsigned char sinewave[] PROGMEM = {
0x80,0x8d,0x99,0xa5,0xb1,0xbd,0xc8,0xd2,0xdb,0xe3,0xeb,0xf1,0xf6,0xfa,0xfd,0xff, // 16
0xff,0xfe,0xfc,0xf8,0xf4,0xee,0xe7,0xdf,0xd6,0xcd,0xc2,0xb7,0xab,0x9f,0x93,0x86, // 32
0x7a,0x6d,0x61,0x55,0x49,0x3e,0x33,0x2a,0x21,0x19,0x12,0x0c,0x08,0x04,0x02,0x01, // 48
0x01,0x03,0x06,0x0a,0x0f,0x15,0x1d,0x25,0x2e,0x38,0x43,0x4f,0x5b,0x67,0x73,0x80 // 64
};
\end{verbnobox}
In dieser Grafik sind die 64 Werte als Stützpunkte eingezeichnet.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.5]{../Pictures/sinewave-dots.jpg}
\caption{Sinus nach der Tabelle vom Python3 Script mit Stützpunkten}
\end{figure}
\chapter{Entwicklungsumgebung}
Als Entwicklungsumgebung verwende ich mehrere, ausschließlich kostenfreie und überwiegend Open Source Programme:
\begin{itemize}
\item{Editor neovim}
\item{Shell bash}
\item{Filemanager mc}
\item{RS232 Terminal minicom}
\item{Dokumentation lualatex}
\item{PDF Reader zathura}
\item{Compiler avr-gcc}
\item{Flashprogrammer avrdude}
\item{Layout \& Schaltplan KiCad 7.xx}
\item{Bohrschablonen FrontDesigner}
\item{Softwareverwaltung Git}
\item{Softwaredokumentation Doxygen}
\item{Website Nginx \& Dokuwiki}
\item{Website Sourcecode Gitea}
\item{Betriebssystem Entwicklung MX-Linux}
\item{Betriebssystem Webserver Debian}
\end{itemize}
Wie man sieht, sind das bis auf die CAD Anwendungen und dem PDF Reader alles Anwendungen für die Textconsole. Ich finde, richtig produktiv kann man nur mit der Textconsole arbeiten ;-)
\listoftables
\listoffigures
\appendix
\end{document}

@ -0,0 +1,49 @@
\babel@toc {ngerman}{}
\contentsline {chapter}{\numberline {1}Hinweise zur Dokumentation}{5}{chapter.1}%
\contentsline {chapter}{\numberline {2}Funktionsübersicht}{7}{chapter.2}%
\contentsline {chapter}{\numberline {3}Grundlagen}{9}{chapter.3}%
\contentsline {section}{\numberline {3.1}Betriebsarten eines Morse-Keyers}{9}{section.3.1}%
\contentsline {subsection}{\numberline {3.1.1}Iambic A}{9}{subsection.3.1.1}%
\contentsline {subsection}{\numberline {3.1.2}Iambic B}{10}{subsection.3.1.2}%
\contentsline {subsection}{\numberline {3.1.3}Ultimatic}{10}{subsection.3.1.3}%
\contentsline {subsection}{\numberline {3.1.4}Gewichtung}{11}{subsection.3.1.4}%
\contentsline {subsection}{\numberline {3.1.5}Punkt/Strich Ratio}{12}{subsection.3.1.5}%
\contentsline {subsection}{\numberline {3.1.6}Punkt-Strich Speicher}{12}{subsection.3.1.6}%
\contentsline {subsection}{\numberline {3.1.7}Handtaste}{12}{subsection.3.1.7}%
\contentsline {chapter}{\numberline {4}Die Bedienung}{13}{chapter.4}%
\contentsline {section}{\numberline {4.1}Bedienelemente}{13}{section.4.1}%
\contentsline {section}{\numberline {4.2}Menuestruktur}{14}{section.4.2}%
\contentsline {section}{\numberline {4.3}Einstellungen}{14}{section.4.3}%
\contentsline {subsection}{\numberline {4.3.1}Transceiversteuerung}{14}{subsection.4.3.1}%
\contentsline {subsection}{\numberline {4.3.2}Mithörton}{14}{subsection.4.3.2}%
\contentsline {subsection}{\numberline {4.3.3}Iambic Modes}{14}{subsection.4.3.3}%
\contentsline {subsection}{\numberline {4.3.4}Punkt/Strich Speicher}{14}{subsection.4.3.4}%
\contentsline {subsection}{\numberline {4.3.5}Links- und Rechtshänder}{14}{subsection.4.3.5}%
\contentsline {subsection}{\numberline {4.3.6}Punkt/Strich Verhältnis}{14}{subsection.4.3.6}%
\contentsline {subsection}{\numberline {4.3.7}Punkt/Strich Verhältnis automatisch}{14}{subsection.4.3.7}%
\contentsline {subsection}{\numberline {4.3.8}Geschwindigkeitsanzeige}{14}{subsection.4.3.8}%
\contentsline {subsection}{\numberline {4.3.9}Anstiegszeit Mithörton}{14}{subsection.4.3.9}%
\contentsline {subsection}{\numberline {4.3.10}Entprellung für Handtasten}{14}{subsection.4.3.10}%
\contentsline {section}{\numberline {4.4}Einstellen der Geschwindigkeit}{14}{section.4.4}%
\contentsline {section}{\numberline {4.5}Lautstärke Mithörton}{14}{section.4.5}%
\contentsline {chapter}{\numberline {5}Die Schaltung}{15}{chapter.5}%
\contentsline {section}{\numberline {5.1}Spannungsversorgung}{15}{section.5.1}%
\contentsline {section}{\numberline {5.2}Mikrocontroller ATMega328P}{15}{section.5.2}%
\contentsline {section}{\numberline {5.3}USB Controller FT230}{15}{section.5.3}%
\contentsline {section}{\numberline {5.4}Class D NF-Verstärker}{15}{section.5.4}%
\contentsline {subsection}{\numberline {5.4.1}Cauer-Filter}{16}{subsection.5.4.1}%
\contentsline {section}{\numberline {5.5}Class D NF-Verstärker}{16}{section.5.5}%
\contentsline {section}{\numberline {5.6}Beschreibung}{16}{section.5.6}%
\contentsline {chapter}{\numberline {6}Die Software}{19}{chapter.6}%
\contentsline {section}{\numberline {6.1}Timer 2}{19}{section.6.1}%
\contentsline {section}{\numberline {6.2}Timer 1}{19}{section.6.2}%
\contentsline {section}{\numberline {6.3}Timer 0}{19}{section.6.3}%
\contentsline {subsection}{\numberline {6.3.1}Timer einstellen}{19}{subsection.6.3.1}%
\contentsline {section}{\numberline {6.4}Sinus Mithörton durch Pulsweitenmodulation}{19}{section.6.4}%
\contentsline {subsection}{\numberline {6.4.1}Grundlagen}{20}{subsection.6.4.1}%
\contentsline {subsubsection}{\nonumberline Pulsweitenmodulation}{20}{subsubsection*.16}%
\contentsline {subsection}{\numberline {6.4.2}Sinustabelle}{23}{subsection.6.4.2}%
\contentsline {chapter}{\numberline {7}Entwicklungsumgebung}{25}{chapter.7}%
\contentsline {chapter}{\nonumberline Tabellen}{27}{chapter*.22}%
\contentsline {chapter}{\nonumberline Abbildungen}{29}{chapter*.23}%
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file

@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Datenstrukturen</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Datenstrukturen</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller Datenstrukturen mit einer Kurzbeschreibung:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structConfig.html" target="_self">Config</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMenuCtrl.html" target="_self">MenuCtrl</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMessage.html" target="_self">Message</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSerialState.html" target="_self">SerialState</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structState.html" target="_self">State</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,8 @@
var annotated_dup =
[
[ "Config", "structConfig.html", "structConfig" ],
[ "MenuCtrl", "structMenuCtrl.html", "structMenuCtrl" ],
[ "Message", "structMessage.html", "structMessage" ],
[ "SerialState", "structSerialState.html", "structSerialState" ],
[ "State", "structState.html", "structState" ]
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

@ -0,0 +1,113 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Datenstruktur-Verzeichnis</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Datenstruktur-Verzeichnis</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a name="letter_C">C</a></dt>
<dd><a class="el" href="structConfig.html">Config</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a name="letter_M">M</a></dt>
<dd><a class="el" href="structMenuCtrl.html">MenuCtrl</a></dd><dd><a class="el" href="structMessage.html">Message</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a name="letter_S">S</a></dt>
<dd><a class="el" href="structSerialState.html">SerialState</a></dd><dd><a class="el" href="structState.html">State</a></dd></dl>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

@ -0,0 +1,912 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: controls.c-Dateireferenz</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('controls_8c.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Funktionen</a> &#124;
<a href="#var-members">Variablen</a> </div>
<div class="headertitle">
<div class="title">controls.c-Dateireferenz</div> </div>
</div><!--header-->
<div class="contents">
<p>Display und Bedienelemente.
<a href="#details">Mehr ...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="controls_8h_source.html">controls.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include-Abhängigkeitsdiagramm für controls.c:</div>
<div class="dyncontent">
<div class="center"><img src="controls_8c__incl.png" border="0" usemap="#acontrols_8c" alt=""/></div>
<map name="acontrols_8c" id="acontrols_8c">
<area shape="rect" title="Display und Bedienelemente." alt="" coords="766,5,845,32"/>
<area shape="rect" href="controls_8h.html" title="Headerdatei für controls.c." alt="" coords="766,80,845,107"/>
<area shape="rect" href="globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,155,792,181"/>
<area shape="rect" href="encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="817,155,895,181"/>
<area shape="rect" title=" " alt="" coords="5,229,69,256"/>
<area shape="rect" title=" " alt="" coords="93,229,155,256"/>
<area shape="rect" title=" " alt="" coords="179,229,245,256"/>
<area shape="rect" title=" " alt="" coords="269,229,334,256"/>
<area shape="rect" title=" " alt="" coords="358,229,421,256"/>
<area shape="rect" title=" " alt="" coords="445,229,523,256"/>
<area shape="rect" title=" " alt="" coords="547,229,613,256"/>
<area shape="rect" title=" " alt="" coords="637,229,752,256"/>
<area shape="rect" title=" " alt="" coords="777,229,853,256"/>
<area shape="rect" title=" " alt="" coords="877,229,979,256"/>
<area shape="rect" title=" " alt="" coords="1004,229,1103,256"/>
<area shape="rect" title=" " alt="" coords="1127,229,1209,256"/>
<area shape="rect" title=" " alt="" coords="1233,229,1327,256"/>
<area shape="rect" title=" " alt="" coords="1351,229,1430,256"/>
<area shape="rect" title=" " alt="" coords="1454,229,1533,256"/>
<area shape="rect" title=" " alt="" coords="1557,229,1640,256"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Funktionen</h2></td></tr>
<tr class="memitem:aaf6c1bd6cb225efe37f9762de8a0c3d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#aaf6c1bd6cb225efe37f9762de8a0c3d1">Drehencoder</a> (void)</td></tr>
<tr class="memdesc:aaf6c1bd6cb225efe37f9762de8a0c3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mit dieser Funktion wird per Polling der Drehencoder abgefragt. <a href="controls_8c.html#aaf6c1bd6cb225efe37f9762de8a0c3d1">Mehr ...</a><br /></td></tr>
<tr class="separator:aaf6c1bd6cb225efe37f9762de8a0c3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a582148370499a6b91171ed6134cc7041"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a582148370499a6b91171ed6134cc7041">ConfigMenue</a> (void)</td></tr>
<tr class="memdesc:a582148370499a6b91171ed6134cc7041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ausgabe des Menues für die Einstellungen. <a href="controls_8c.html#a582148370499a6b91171ed6134cc7041">Mehr ...</a><br /></td></tr>
<tr class="separator:a582148370499a6b91171ed6134cc7041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dec45875121142b6466b9475691b40a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a9dec45875121142b6466b9475691b40a">DisplayVersion</a> (void)</td></tr>
<tr class="memdesc:a9dec45875121142b6466b9475691b40a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ausgabe der Softwareversion des BJ-Keyers. <a href="controls_8c.html#a9dec45875121142b6466b9475691b40a">Mehr ...</a><br /></td></tr>
<tr class="separator:a9dec45875121142b6466b9475691b40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace58ee95637a8f220527dc8b20dbb662"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#ace58ee95637a8f220527dc8b20dbb662">UpdateDisplay</a> (void)</td></tr>
<tr class="memdesc:ace58ee95637a8f220527dc8b20dbb662"><td class="mdescLeft">&#160;</td><td class="mdescRight">UpdateDisplay. <a href="controls_8c.html#ace58ee95637a8f220527dc8b20dbb662">Mehr ...</a><br /></td></tr>
<tr class="separator:ace58ee95637a8f220527dc8b20dbb662"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variablen</h2></td></tr>
<tr class="memitem:a6203d557889176e261076e2f088df303"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a6203d557889176e261076e2f088df303">sTrx1</a> = &quot;TRX 1&quot;</td></tr>
<tr class="memdesc:a6203d557889176e261076e2f088df303"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Transceiver 1. <a href="controls_8c.html#a6203d557889176e261076e2f088df303">Mehr ...</a><br /></td></tr>
<tr class="separator:a6203d557889176e261076e2f088df303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d38bfd22e4419f9f56cdb345a8e7e4"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a35d38bfd22e4419f9f56cdb345a8e7e4">sTrx2</a> = &quot;TRX 2&quot;</td></tr>
<tr class="memdesc:a35d38bfd22e4419f9f56cdb345a8e7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Transceiver 2. <a href="controls_8c.html#a35d38bfd22e4419f9f56cdb345a8e7e4">Mehr ...</a><br /></td></tr>
<tr class="separator:a35d38bfd22e4419f9f56cdb345a8e7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cf9a4ac7c32126e64feeb09468c4f16"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a3cf9a4ac7c32126e64feeb09468c4f16">IambicA</a> = &quot;Iambic A&quot;</td></tr>
<tr class="memdesc:a3cf9a4ac7c32126e64feeb09468c4f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Iambic A. <a href="controls_8c.html#a3cf9a4ac7c32126e64feeb09468c4f16">Mehr ...</a><br /></td></tr>
<tr class="separator:a3cf9a4ac7c32126e64feeb09468c4f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a204380c13e522446a26c5becb474d872"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a204380c13e522446a26c5becb474d872">IambicB</a> = &quot;Iambic B&quot;</td></tr>
<tr class="memdesc:a204380c13e522446a26c5becb474d872"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Iambic B. <a href="controls_8c.html#a204380c13e522446a26c5becb474d872">Mehr ...</a><br /></td></tr>
<tr class="separator:a204380c13e522446a26c5becb474d872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc8c998dd6a5d1d71831a7fd8fa1ee7"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a3dc8c998dd6a5d1d71831a7fd8fa1ee7">Ultimatic</a> = &quot;Ultimat.&quot;</td></tr>
<tr class="memdesc:a3dc8c998dd6a5d1d71831a7fd8fa1ee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ultimatic. <a href="controls_8c.html#a3dc8c998dd6a5d1d71831a7fd8fa1ee7">Mehr ...</a><br /></td></tr>
<tr class="separator:a3dc8c998dd6a5d1d71831a7fd8fa1ee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab89e4faa251feb81fa4cc7d9de2e3fcd"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#ab89e4faa251feb81fa4cc7d9de2e3fcd">Memory</a> = &quot;Memory&quot;</td></tr>
<tr class="memdesc:ab89e4faa251feb81fa4cc7d9de2e3fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Punkt/Strich Speicher. <a href="controls_8c.html#ab89e4faa251feb81fa4cc7d9de2e3fcd">Mehr ...</a><br /></td></tr>
<tr class="separator:ab89e4faa251feb81fa4cc7d9de2e3fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafb08180dd6b40c7ceb1f987d29e01aa"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#aafb08180dd6b40c7ceb1f987d29e01aa">Ratio</a> = &quot;Ratio&quot;</td></tr>
<tr class="memdesc:aafb08180dd6b40c7ceb1f987d29e01aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ratio. <a href="controls_8c.html#aafb08180dd6b40c7ceb1f987d29e01aa">Mehr ...</a><br /></td></tr>
<tr class="separator:aafb08180dd6b40c7ceb1f987d29e01aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf38c2d2e8e887110f9092afbc1f9ff6"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#abf38c2d2e8e887110f9092afbc1f9ff6">Weight</a> = &quot;Weight&quot;</td></tr>
<tr class="memdesc:abf38c2d2e8e887110f9092afbc1f9ff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Gewichtung. <a href="controls_8c.html#abf38c2d2e8e887110f9092afbc1f9ff6">Mehr ...</a><br /></td></tr>
<tr class="separator:abf38c2d2e8e887110f9092afbc1f9ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fcaa55631cc1a96c082f6d8da9357a2"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a6fcaa55631cc1a96c082f6d8da9357a2">ReverseRL</a> = &quot; L - R °&quot;</td></tr>
<tr class="memdesc:a6fcaa55631cc1a96c082f6d8da9357a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Links Dag, Rechts Dit. <a href="controls_8c.html#a6fcaa55631cc1a96c082f6d8da9357a2">Mehr ...</a><br /></td></tr>
<tr class="separator:a6fcaa55631cc1a96c082f6d8da9357a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aef3986a3ae6ca48eb4f92532d827ae"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a3aef3986a3ae6ca48eb4f92532d827ae">ReverseLR</a> = &quot; L ° R -&quot;</td></tr>
<tr class="memdesc:a3aef3986a3ae6ca48eb4f92532d827ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Links Dit, Rechts Dah. <a href="controls_8c.html#a3aef3986a3ae6ca48eb4f92532d827ae">Mehr ...</a><br /></td></tr>
<tr class="separator:a3aef3986a3ae6ca48eb4f92532d827ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a913981a1b4818d9fb9a39bf65326d832"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a913981a1b4818d9fb9a39bf65326d832">SideToneOnOff</a> = &quot;Mithörton&quot;</td></tr>
<tr class="memdesc:a913981a1b4818d9fb9a39bf65326d832"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Mithörton An/Aus. <a href="controls_8c.html#a913981a1b4818d9fb9a39bf65326d832">Mehr ...</a><br /></td></tr>
<tr class="separator:a913981a1b4818d9fb9a39bf65326d832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e5958495ba326d1ef4ca81aadf97bea"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a4e5958495ba326d1ef4ca81aadf97bea">SideToneFreq</a> = &quot;Frequenz&quot;</td></tr>
<tr class="memdesc:a4e5958495ba326d1ef4ca81aadf97bea"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Frequenz des Tons. <a href="controls_8c.html#a4e5958495ba326d1ef4ca81aadf97bea">Mehr ...</a><br /></td></tr>
<tr class="separator:a4e5958495ba326d1ef4ca81aadf97bea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec62b46d086a27a9d99a82f846b449a5"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#aec62b46d086a27a9d99a82f846b449a5">RiseTime</a> = &quot;Anstieg&quot;</td></tr>
<tr class="memdesc:aec62b46d086a27a9d99a82f846b449a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Anstiegszeit Mithörton. <a href="controls_8c.html#aec62b46d086a27a9d99a82f846b449a5">Mehr ...</a><br /></td></tr>
<tr class="separator:aec62b46d086a27a9d99a82f846b449a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d2686ee95132d4d7c740d23f38677b"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a14d2686ee95132d4d7c740d23f38677b">DebounceTime</a> = &quot;Entprl.&quot;</td></tr>
<tr class="memdesc:a14d2686ee95132d4d7c740d23f38677b"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Zeitintervall Entprellung. <a href="controls_8c.html#a14d2686ee95132d4d7c740d23f38677b">Mehr ...</a><br /></td></tr>
<tr class="separator:a14d2686ee95132d4d7c740d23f38677b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e1e7c928529ce5b265eb617b0e4e4b8"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a3e1e7c928529ce5b265eb617b0e4e4b8">Yes</a> = &quot;J&quot;</td></tr>
<tr class="memdesc:a3e1e7c928529ce5b265eb617b0e4e4b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ja. <a href="controls_8c.html#a3e1e7c928529ce5b265eb617b0e4e4b8">Mehr ...</a><br /></td></tr>
<tr class="separator:a3e1e7c928529ce5b265eb617b0e4e4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52e48eafec4559dcc5fa997a3781e4c5"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a52e48eafec4559dcc5fa997a3781e4c5">No</a> = &quot;N&quot;</td></tr>
<tr class="memdesc:a52e48eafec4559dcc5fa997a3781e4c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Nein. <a href="controls_8c.html#a52e48eafec4559dcc5fa997a3781e4c5">Mehr ...</a><br /></td></tr>
<tr class="separator:a52e48eafec4559dcc5fa997a3781e4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7c916eae39a6ea3de6c5e47cda3700e"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#ac7c916eae39a6ea3de6c5e47cda3700e">Hz</a> = &quot;Hz&quot;</td></tr>
<tr class="memdesc:ac7c916eae39a6ea3de6c5e47cda3700e"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Frequenz in Hertz. <a href="controls_8c.html#ac7c916eae39a6ea3de6c5e47cda3700e">Mehr ...</a><br /></td></tr>
<tr class="separator:ac7c916eae39a6ea3de6c5e47cda3700e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3776d070bf17ce9a6dca80728d44a800"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a3776d070bf17ce9a6dca80728d44a800">Einstellungen</a> = &quot;Einstellungen&quot;</td></tr>
<tr class="memdesc:a3776d070bf17ce9a6dca80728d44a800"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Einstellungen <br />
<a href="controls_8c.html#a3776d070bf17ce9a6dca80728d44a800">Mehr ...</a><br /></td></tr>
<tr class="separator:a3776d070bf17ce9a6dca80728d44a800"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d84b58ef20baadc27efb09bca3d8d98"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a5d84b58ef20baadc27efb09bca3d8d98">Ton</a> = &quot;Ton&quot;</td></tr>
<tr class="memdesc:a5d84b58ef20baadc27efb09bca3d8d98"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ton. <a href="controls_8c.html#a5d84b58ef20baadc27efb09bca3d8d98">Mehr ...</a><br /></td></tr>
<tr class="separator:a5d84b58ef20baadc27efb09bca3d8d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a6e687fe4fb9e5aea3ac1e69b599330"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a8a6e687fe4fb9e5aea3ac1e69b599330">TonAn</a> = &quot;Ton an&quot;</td></tr>
<tr class="memdesc:a8a6e687fe4fb9e5aea3ac1e69b599330"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ton an. <a href="controls_8c.html#a8a6e687fe4fb9e5aea3ac1e69b599330">Mehr ...</a><br /></td></tr>
<tr class="separator:a8a6e687fe4fb9e5aea3ac1e69b599330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d7bb6c3e5c9967ffc4668fafb03c4f"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#ab1d7bb6c3e5c9967ffc4668fafb03c4f">TonAus</a> = &quot;Ton aus&quot;</td></tr>
<tr class="memdesc:ab1d7bb6c3e5c9967ffc4668fafb03c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Ton aus. <a href="controls_8c.html#ab1d7bb6c3e5c9967ffc4668fafb03c4f">Mehr ...</a><br /></td></tr>
<tr class="separator:ab1d7bb6c3e5c9967ffc4668fafb03c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3163144fae43c843de52bb19a73fc4c"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#ae3163144fae43c843de52bb19a73fc4c">MemAus</a> = &quot;Mem AUS&quot;</td></tr>
<tr class="memdesc:ae3163144fae43c843de52bb19a73fc4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Punkt/Strich Speicher aus. <a href="controls_8c.html#ae3163144fae43c843de52bb19a73fc4c">Mehr ...</a><br /></td></tr>
<tr class="separator:ae3163144fae43c843de52bb19a73fc4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c5d85aa97ec15c2308e5c688d8d297c"><td class="memItemLeft" align="right" valign="top">static const char *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8c.html#a1c5d85aa97ec15c2308e5c688d8d297c">MemAn</a> = &quot;Mem EIN&quot;</td></tr>
<tr class="memdesc:a1c5d85aa97ec15c2308e5c688d8d297c"><td class="mdescLeft">&#160;</td><td class="mdescRight">OLED Text für Punkt/Strich Speicher an. <a href="controls_8c.html#a1c5d85aa97ec15c2308e5c688d8d297c">Mehr ...</a><br /></td></tr>
<tr class="separator:a1c5d85aa97ec15c2308e5c688d8d297c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Ausführliche Beschreibung</h2>
<div class="textblock"><p>Display und Bedienelemente. </p>
<pre class="fragment"> In dieser Datei sind alle Funktionen für die
Ausgabe auf dem OLED Dispay und die Bedienelemente
</pre> </div><h2 class="groupheader">Dokumentation der Funktionen</h2>
<a id="a582148370499a6b91171ed6134cc7041"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a582148370499a6b91171ed6134cc7041">&#9670;&nbsp;</a></span>ConfigMenue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ConfigMenue </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ausgabe des Menues für die Einstellungen. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9dec45875121142b6466b9475691b40a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dec45875121142b6466b9475691b40a">&#9670;&nbsp;</a></span>DisplayVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DisplayVersion </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ausgabe der Softwareversion des BJ-Keyers. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aaf6c1bd6cb225efe37f9762de8a0c3d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf6c1bd6cb225efe37f9762de8a0c3d1">&#9670;&nbsp;</a></span>Drehencoder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Drehencoder </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mit dieser Funktion wird per Polling der Drehencoder abgefragt. </p>
<pre class="fragment"> Es wird die Stellung des Encoders und der Status des Tasters
abgefragt. Die Daten werden ausgewertet und die entsprechende
Funktion aufgerufen
</pre> <dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<p>neuen Wert in bConfig speichern</p>
<p>Status für Timer 0 setzen</p>
<p>Status für UpdateDisplay setzen</p>
<p>neuen Werte in EncoderPos speichern</p>
<p>neuen Wert in WpM übernehmen</p>
<p>Timer 0 Variable löschen für Update EEprom</p>
</div>
</div>
<a id="ace58ee95637a8f220527dc8b20dbb662"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace58ee95637a8f220527dc8b20dbb662">&#9670;&nbsp;</a></span>UpdateDisplay()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void UpdateDisplay </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>UpdateDisplay. </p>
<pre class="fragment"> Aktualisierung der Anzeigen auf dem Display je nach
aktueller Funktion.
</pre><p> DOUBLESIZE 4x10 character NORMALSIZE 8x21 character </p>
</div>
</div>
<h2 class="groupheader">Variablen-Dokumentation</h2>
<a id="a14d2686ee95132d4d7c740d23f38677b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14d2686ee95132d4d7c740d23f38677b">&#9670;&nbsp;</a></span>DebounceTime</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const DebounceTime = &quot;Entprl.&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Zeitintervall Entprellung. </p>
</div>
</div>
<a id="a3776d070bf17ce9a6dca80728d44a800"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3776d070bf17ce9a6dca80728d44a800">&#9670;&nbsp;</a></span>Einstellungen</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Einstellungen = &quot;Einstellungen&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Einstellungen <br />
</p>
</div>
</div>
<a id="ac7c916eae39a6ea3de6c5e47cda3700e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7c916eae39a6ea3de6c5e47cda3700e">&#9670;&nbsp;</a></span>Hz</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Hz = &quot;Hz&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Frequenz in Hertz. </p>
</div>
</div>
<a id="a3cf9a4ac7c32126e64feeb09468c4f16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cf9a4ac7c32126e64feeb09468c4f16">&#9670;&nbsp;</a></span>IambicA</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const IambicA = &quot;Iambic A&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Iambic A. </p>
</div>
</div>
<a id="a204380c13e522446a26c5becb474d872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a204380c13e522446a26c5becb474d872">&#9670;&nbsp;</a></span>IambicB</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const IambicB = &quot;Iambic B&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Iambic B. </p>
</div>
</div>
<a id="a1c5d85aa97ec15c2308e5c688d8d297c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c5d85aa97ec15c2308e5c688d8d297c">&#9670;&nbsp;</a></span>MemAn</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const MemAn = &quot;Mem EIN&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Punkt/Strich Speicher an. </p>
</div>
</div>
<a id="ae3163144fae43c843de52bb19a73fc4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3163144fae43c843de52bb19a73fc4c">&#9670;&nbsp;</a></span>MemAus</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const MemAus = &quot;Mem AUS&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Punkt/Strich Speicher aus. </p>
</div>
</div>
<a id="ab89e4faa251feb81fa4cc7d9de2e3fcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab89e4faa251feb81fa4cc7d9de2e3fcd">&#9670;&nbsp;</a></span>Memory</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Memory = &quot;Memory&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Punkt/Strich Speicher. </p>
</div>
</div>
<a id="a52e48eafec4559dcc5fa997a3781e4c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52e48eafec4559dcc5fa997a3781e4c5">&#9670;&nbsp;</a></span>No</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const No = &quot;N&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Nein. </p>
</div>
</div>
<a id="aafb08180dd6b40c7ceb1f987d29e01aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafb08180dd6b40c7ceb1f987d29e01aa">&#9670;&nbsp;</a></span>Ratio</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Ratio = &quot;Ratio&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ratio. </p>
</div>
</div>
<a id="a3aef3986a3ae6ca48eb4f92532d827ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aef3986a3ae6ca48eb4f92532d827ae">&#9670;&nbsp;</a></span>ReverseLR</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const ReverseLR = &quot; L ° R -&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Links Dit, Rechts Dah. </p>
</div>
</div>
<a id="a6fcaa55631cc1a96c082f6d8da9357a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fcaa55631cc1a96c082f6d8da9357a2">&#9670;&nbsp;</a></span>ReverseRL</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const ReverseRL = &quot; L - R °&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Links Dag, Rechts Dit. </p>
</div>
</div>
<a id="aec62b46d086a27a9d99a82f846b449a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec62b46d086a27a9d99a82f846b449a5">&#9670;&nbsp;</a></span>RiseTime</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const RiseTime = &quot;Anstieg&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Anstiegszeit Mithörton. </p>
</div>
</div>
<a id="a4e5958495ba326d1ef4ca81aadf97bea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e5958495ba326d1ef4ca81aadf97bea">&#9670;&nbsp;</a></span>SideToneFreq</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const SideToneFreq = &quot;Frequenz&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Frequenz des Tons. </p>
</div>
</div>
<a id="a913981a1b4818d9fb9a39bf65326d832"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a913981a1b4818d9fb9a39bf65326d832">&#9670;&nbsp;</a></span>SideToneOnOff</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const SideToneOnOff = &quot;Mithörton&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Mithörton An/Aus. </p>
</div>
</div>
<a id="a6203d557889176e261076e2f088df303"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6203d557889176e261076e2f088df303">&#9670;&nbsp;</a></span>sTrx1</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const sTrx1 = &quot;TRX 1&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Transceiver 1. </p>
</div>
</div>
<a id="a35d38bfd22e4419f9f56cdb345a8e7e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35d38bfd22e4419f9f56cdb345a8e7e4">&#9670;&nbsp;</a></span>sTrx2</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const sTrx2 = &quot;TRX 2&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Transceiver 2. </p>
</div>
</div>
<a id="a5d84b58ef20baadc27efb09bca3d8d98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d84b58ef20baadc27efb09bca3d8d98">&#9670;&nbsp;</a></span>Ton</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Ton = &quot;Ton&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ton. </p>
</div>
</div>
<a id="a8a6e687fe4fb9e5aea3ac1e69b599330"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a6e687fe4fb9e5aea3ac1e69b599330">&#9670;&nbsp;</a></span>TonAn</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const TonAn = &quot;Ton an&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ton an. </p>
</div>
</div>
<a id="ab1d7bb6c3e5c9967ffc4668fafb03c4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1d7bb6c3e5c9967ffc4668fafb03c4f">&#9670;&nbsp;</a></span>TonAus</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const TonAus = &quot;Ton aus&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ton aus. </p>
</div>
</div>
<a id="a3dc8c998dd6a5d1d71831a7fd8fa1ee7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dc8c998dd6a5d1d71831a7fd8fa1ee7">&#9670;&nbsp;</a></span>Ultimatic</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Ultimatic = &quot;Ultimat.&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ultimatic. </p>
</div>
</div>
<a id="abf38c2d2e8e887110f9092afbc1f9ff6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf38c2d2e8e887110f9092afbc1f9ff6">&#9670;&nbsp;</a></span>Weight</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Weight = &quot;Weight&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Gewichtung. </p>
</div>
</div>
<a id="a3e1e7c928529ce5b265eb617b0e4e4b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e1e7c928529ce5b265eb617b0e4e4b8">&#9670;&nbsp;</a></span>Yes</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* const Yes = &quot;J&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OLED Text für Ja. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="controls_8c.html">controls.c</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,30 @@
var controls_8c =
[
[ "ConfigMenue", "controls_8c.html#a582148370499a6b91171ed6134cc7041", null ],
[ "DisplayVersion", "controls_8c.html#a9dec45875121142b6466b9475691b40a", null ],
[ "Drehencoder", "controls_8c.html#aaf6c1bd6cb225efe37f9762de8a0c3d1", null ],
[ "UpdateDisplay", "controls_8c.html#ace58ee95637a8f220527dc8b20dbb662", null ],
[ "DebounceTime", "controls_8c.html#a14d2686ee95132d4d7c740d23f38677b", null ],
[ "Einstellungen", "controls_8c.html#a3776d070bf17ce9a6dca80728d44a800", null ],
[ "Hz", "controls_8c.html#ac7c916eae39a6ea3de6c5e47cda3700e", null ],
[ "IambicA", "controls_8c.html#a3cf9a4ac7c32126e64feeb09468c4f16", null ],
[ "IambicB", "controls_8c.html#a204380c13e522446a26c5becb474d872", null ],
[ "MemAn", "controls_8c.html#a1c5d85aa97ec15c2308e5c688d8d297c", null ],
[ "MemAus", "controls_8c.html#ae3163144fae43c843de52bb19a73fc4c", null ],
[ "Memory", "controls_8c.html#ab89e4faa251feb81fa4cc7d9de2e3fcd", null ],
[ "No", "controls_8c.html#a52e48eafec4559dcc5fa997a3781e4c5", null ],
[ "Ratio", "controls_8c.html#aafb08180dd6b40c7ceb1f987d29e01aa", null ],
[ "ReverseLR", "controls_8c.html#a3aef3986a3ae6ca48eb4f92532d827ae", null ],
[ "ReverseRL", "controls_8c.html#a6fcaa55631cc1a96c082f6d8da9357a2", null ],
[ "RiseTime", "controls_8c.html#aec62b46d086a27a9d99a82f846b449a5", null ],
[ "SideToneFreq", "controls_8c.html#a4e5958495ba326d1ef4ca81aadf97bea", null ],
[ "SideToneOnOff", "controls_8c.html#a913981a1b4818d9fb9a39bf65326d832", null ],
[ "sTrx1", "controls_8c.html#a6203d557889176e261076e2f088df303", null ],
[ "sTrx2", "controls_8c.html#a35d38bfd22e4419f9f56cdb345a8e7e4", null ],
[ "Ton", "controls_8c.html#a5d84b58ef20baadc27efb09bca3d8d98", null ],
[ "TonAn", "controls_8c.html#a8a6e687fe4fb9e5aea3ac1e69b599330", null ],
[ "TonAus", "controls_8c.html#ab1d7bb6c3e5c9967ffc4668fafb03c4f", null ],
[ "Ultimatic", "controls_8c.html#a3dc8c998dd6a5d1d71831a7fd8fa1ee7", null ],
[ "Weight", "controls_8c.html#abf38c2d2e8e887110f9092afbc1f9ff6", null ],
[ "Yes", "controls_8c.html#a3e1e7c928529ce5b265eb617b0e4e4b8", null ]
];

@ -0,0 +1,22 @@
<map id="controls.c" name="controls.c">
<area shape="rect" id="node1" title="Display und Bedienelemente." alt="" coords="766,5,845,32"/>
<area shape="rect" id="node2" href="$controls_8h.html" title="Headerdatei für controls.c." alt="" coords="766,80,845,107"/>
<area shape="rect" id="node3" href="$globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,155,792,181"/>
<area shape="rect" id="node20" href="$encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="817,155,895,181"/>
<area shape="rect" id="node4" title=" " alt="" coords="5,229,69,256"/>
<area shape="rect" id="node5" title=" " alt="" coords="93,229,155,256"/>
<area shape="rect" id="node6" title=" " alt="" coords="179,229,245,256"/>
<area shape="rect" id="node7" title=" " alt="" coords="269,229,334,256"/>
<area shape="rect" id="node8" title=" " alt="" coords="358,229,421,256"/>
<area shape="rect" id="node9" title=" " alt="" coords="445,229,523,256"/>
<area shape="rect" id="node10" title=" " alt="" coords="547,229,613,256"/>
<area shape="rect" id="node11" title=" " alt="" coords="637,229,752,256"/>
<area shape="rect" id="node12" title=" " alt="" coords="777,229,853,256"/>
<area shape="rect" id="node13" title=" " alt="" coords="877,229,979,256"/>
<area shape="rect" id="node14" title=" " alt="" coords="1004,229,1103,256"/>
<area shape="rect" id="node15" title=" " alt="" coords="1127,229,1209,256"/>
<area shape="rect" id="node16" title=" " alt="" coords="1233,229,1327,256"/>
<area shape="rect" id="node17" title=" " alt="" coords="1351,229,1430,256"/>
<area shape="rect" id="node18" title=" " alt="" coords="1454,229,1533,256"/>
<area shape="rect" id="node19" title=" " alt="" coords="1557,229,1640,256"/>
</map>

@ -0,0 +1 @@
35379cff89c99d953ccd013175237fd8

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@ -0,0 +1,778 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: controls.h-Dateireferenz</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('controls_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Funktionen</a> &#124;
<a href="#var-members">Variablen</a> </div>
<div class="headertitle">
<div class="title">controls.h-Dateireferenz</div> </div>
</div><!--header-->
<div class="contents">
<p>Headerdatei für <a class="el" href="controls_8c.html" title="Display und Bedienelemente.">controls.c</a>.
<a href="#details">Mehr ...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="globals_8h_source.html">globals.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="encoder_8h_source.html">encoder.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include-Abhängigkeitsdiagramm für controls.h:</div>
<div class="dyncontent">
<div class="center"><img src="controls_8h__incl.png" border="0" usemap="#acontrols_8h" alt=""/></div>
<map name="acontrols_8h" id="acontrols_8h">
<area shape="rect" title="Headerdatei für controls.c." alt="" coords="766,5,845,32"/>
<area shape="rect" href="globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,80,792,107"/>
<area shape="rect" href="encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="817,80,895,107"/>
<area shape="rect" title=" " alt="" coords="5,155,69,181"/>
<area shape="rect" title=" " alt="" coords="93,155,155,181"/>
<area shape="rect" title=" " alt="" coords="179,155,245,181"/>
<area shape="rect" title=" " alt="" coords="269,155,334,181"/>
<area shape="rect" title=" " alt="" coords="358,155,421,181"/>
<area shape="rect" title=" " alt="" coords="445,155,523,181"/>
<area shape="rect" title=" " alt="" coords="547,155,613,181"/>
<area shape="rect" title=" " alt="" coords="637,155,752,181"/>
<area shape="rect" title=" " alt="" coords="777,155,853,181"/>
<area shape="rect" title=" " alt="" coords="877,155,979,181"/>
<area shape="rect" title=" " alt="" coords="1004,155,1103,181"/>
<area shape="rect" title=" " alt="" coords="1127,155,1209,181"/>
<area shape="rect" title=" " alt="" coords="1233,155,1327,181"/>
<area shape="rect" title=" " alt="" coords="1351,155,1430,181"/>
<area shape="rect" title=" " alt="" coords="1454,155,1533,181"/>
<area shape="rect" title=" " alt="" coords="1557,155,1640,181"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:</div>
<div class="dyncontent">
<div class="center"><img src="controls_8h__dep__incl.png" border="0" usemap="#acontrols_8hdep" alt=""/></div>
<map name="acontrols_8hdep" id="acontrols_8hdep">
<area shape="rect" title="Headerdatei für controls.c." alt="" coords="52,5,131,32"/>
<area shape="rect" href="controls_8c.html" title="Display und Bedienelemente." alt="" coords="5,80,84,107"/>
<area shape="rect" href="main_8h.html" title="Headerdatei für main.c." alt="" coords="109,80,170,107"/>
<area shape="rect" href="functions_8h.html" title="Headerdatei für functions.c." alt="" coords="47,155,133,181"/>
<area shape="rect" href="main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="158,155,219,181"/>
<area shape="rect" href="functions_8c.html" title="Diverse Funktionen." alt="" coords="47,229,133,256"/>
<area shape="rect" href="vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="191,229,256,256"/>
<area shape="rect" href="vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="191,304,256,331"/>
</map>
</div>
</div>
<p><a href="controls_8h_source.html">gehe zum Quellcode dieser Datei</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Funktionen</h2></td></tr>
<tr class="memitem:a0366eaeb4aab61562dcd5b24994d0103"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Boop</a> (void)</td></tr>
<tr class="memdesc:a0366eaeb4aab61562dcd5b24994d0103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boop Ton ausgeben. <a href="controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Mehr ...</a><br /></td></tr>
<tr class="separator:a0366eaeb4aab61562dcd5b24994d0103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f616a93763b4bc437c4311d653c0491"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a2f616a93763b4bc437c4311d653c0491">Beep</a> (void)</td></tr>
<tr class="memdesc:a2f616a93763b4bc437c4311d653c0491"><td class="mdescLeft">&#160;</td><td class="mdescRight">Beep Ton ausgeben. <a href="controls_8h.html#a2f616a93763b4bc437c4311d653c0491">Mehr ...</a><br /></td></tr>
<tr class="separator:a2f616a93763b4bc437c4311d653c0491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a586bc00ad3164def7ec76ac9bda4f1bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">WriteEEprom</a> (void)</td></tr>
<tr class="memdesc:a586bc00ad3164def7ec76ac9bda4f1bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Akt. Einstellungen in EEPROM schreiben. <a href="controls_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">Mehr ...</a><br /></td></tr>
<tr class="separator:a586bc00ad3164def7ec76ac9bda4f1bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a543d0f249e5b505063a706525f99ff3a"><td class="memItemLeft" align="right" valign="top"><a id="a543d0f249e5b505063a706525f99ff3a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SideToneOff</b> (void)</td></tr>
<tr class="separator:a543d0f249e5b505063a706525f99ff3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e03330a0d63dbc5c8c0ce8a3ba10ff7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">DelayMilliSeconds</a> (uint16_t t)</td></tr>
<tr class="memdesc:a4e03330a0d63dbc5c8c0ce8a3ba10ff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zeitschleife von 1-65535 Millisekunden. <a href="controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">Mehr ...</a><br /></td></tr>
<tr class="separator:a4e03330a0d63dbc5c8c0ce8a3ba10ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a378d56bf0e68310b700bd4dbdc652803"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a378d56bf0e68310b700bd4dbdc652803">Tone</a> (uint16_t f, uint8_t t)</td></tr>
<tr class="memdesc:a378d56bf0e68310b700bd4dbdc652803"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ausgabe eines Tons mit Dauer und Frequenz. <a href="controls_8h.html#a378d56bf0e68310b700bd4dbdc652803">Mehr ...</a><br /></td></tr>
<tr class="separator:a378d56bf0e68310b700bd4dbdc652803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0e063cf32b840a3ed51ae9aa677e2be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">SetRatio</a> (void)</td></tr>
<tr class="memdesc:aa0e063cf32b840a3ed51ae9aa677e2be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Berechnung der Zeitdauer für Punkt und Strich. <a href="controls_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">Mehr ...</a><br /></td></tr>
<tr class="separator:aa0e063cf32b840a3ed51ae9aa677e2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a31f60576d112eca1abddf447df8248"><td class="memItemLeft" align="right" valign="top"><a id="a7a31f60576d112eca1abddf447df8248"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetWeight</b> (void)</td></tr>
<tr class="separator:a7a31f60576d112eca1abddf447df8248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8011166e9324f9f3c6948249eb15fd1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#ae8011166e9324f9f3c6948249eb15fd1">SidetoneDisable</a> (void)</td></tr>
<tr class="memdesc:ae8011166e9324f9f3c6948249eb15fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audioverstärker abschalten. <a href="controls_8h.html#ae8011166e9324f9f3c6948249eb15fd1">Mehr ...</a><br /></td></tr>
<tr class="separator:ae8011166e9324f9f3c6948249eb15fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60f2f041b0803584ba5fc2e0a373ed50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a60f2f041b0803584ba5fc2e0a373ed50">SidetoneEnable</a> (void)</td></tr>
<tr class="memdesc:a60f2f041b0803584ba5fc2e0a373ed50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audioverstärker einschalten. <a href="controls_8h.html#a60f2f041b0803584ba5fc2e0a373ed50">Mehr ...</a><br /></td></tr>
<tr class="separator:a60f2f041b0803584ba5fc2e0a373ed50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad82537f7ea58b4eb375952ce52615c4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#ad82537f7ea58b4eb375952ce52615c4d">SidetoneOff</a> (void)</td></tr>
<tr class="memdesc:ad82537f7ea58b4eb375952ce52615c4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mithörton ausschalten. <a href="controls_8h.html#ad82537f7ea58b4eb375952ce52615c4d">Mehr ...</a><br /></td></tr>
<tr class="separator:ad82537f7ea58b4eb375952ce52615c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6dc8b683fdf1a5fc24b2a509279f887"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887">Drehencoder</a> (void)</td></tr>
<tr class="memdesc:ac6dc8b683fdf1a5fc24b2a509279f887"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mit dieser Funktion wird per Polling der Drehencoder abgefragt. <a href="controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887">Mehr ...</a><br /></td></tr>
<tr class="separator:ac6dc8b683fdf1a5fc24b2a509279f887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a582148370499a6b91171ed6134cc7041"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a582148370499a6b91171ed6134cc7041">ConfigMenue</a> (void)</td></tr>
<tr class="memdesc:a582148370499a6b91171ed6134cc7041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ausgabe des Menues für die Einstellungen. <a href="controls_8h.html#a582148370499a6b91171ed6134cc7041">Mehr ...</a><br /></td></tr>
<tr class="separator:a582148370499a6b91171ed6134cc7041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace58ee95637a8f220527dc8b20dbb662"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#ace58ee95637a8f220527dc8b20dbb662">UpdateDisplay</a> (void)</td></tr>
<tr class="memdesc:ace58ee95637a8f220527dc8b20dbb662"><td class="mdescLeft">&#160;</td><td class="mdescRight">UpdateDisplay. <a href="controls_8h.html#ace58ee95637a8f220527dc8b20dbb662">Mehr ...</a><br /></td></tr>
<tr class="separator:ace58ee95637a8f220527dc8b20dbb662"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dec45875121142b6466b9475691b40a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a9dec45875121142b6466b9475691b40a">DisplayVersion</a> (void)</td></tr>
<tr class="memdesc:a9dec45875121142b6466b9475691b40a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ausgabe der Softwareversion des BJ-Keyers. <a href="controls_8h.html#a9dec45875121142b6466b9475691b40a">Mehr ...</a><br /></td></tr>
<tr class="separator:a9dec45875121142b6466b9475691b40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variablen</h2></td></tr>
<tr class="memitem:a8c3e2d3135447df0d9e7057fea4ff5b0"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structConfig.html">Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">bConfig</a></td></tr>
<tr class="memdesc:a8c3e2d3135447df0d9e7057fea4ff5b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struktur für die Einstellungen. <a href="controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">Mehr ...</a><br /></td></tr>
<tr class="separator:a8c3e2d3135447df0d9e7057fea4ff5b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a885b2af021946a60a0bd2a271711c17a"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structMenuCtrl.html">MenuCtrl</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a885b2af021946a60a0bd2a271711c17a">bMenuCtrl</a></td></tr>
<tr class="memdesc:a885b2af021946a60a0bd2a271711c17a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struktur für die Menuesteuerung. <a href="controls_8h.html#a885b2af021946a60a0bd2a271711c17a">Mehr ...</a><br /></td></tr>
<tr class="separator:a885b2af021946a60a0bd2a271711c17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44ef5c8aeac95b862dab43408c149f9a"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structState.html">State</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a">bState</a></td></tr>
<tr class="memdesc:a44ef5c8aeac95b862dab43408c149f9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struktur für den aktuellen Status. <a href="controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a">Mehr ...</a><br /></td></tr>
<tr class="separator:a44ef5c8aeac95b862dab43408c149f9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a088c685d08447f6614b3aea76cd94582"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a088c685d08447f6614b3aea76cd94582">MenuCtrlTimer</a></td></tr>
<tr class="memdesc:a088c685d08447f6614b3aea76cd94582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wartezeit bis zur Betriebsanzeige nach <a class="el" href="structConfig.html">Config</a>. <a href="controls_8h.html#a088c685d08447f6614b3aea76cd94582">Mehr ...</a><br /></td></tr>
<tr class="separator:a088c685d08447f6614b3aea76cd94582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28fa6cb1767abefbe9c197700410d946"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="controls_8h.html#a28fa6cb1767abefbe9c197700410d946">WpM</a></td></tr>
<tr class="memdesc:a28fa6cb1767abefbe9c197700410d946"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aktuelle Zeichengeschwindigkeit. <a href="controls_8h.html#a28fa6cb1767abefbe9c197700410d946">Mehr ...</a><br /></td></tr>
<tr class="separator:a28fa6cb1767abefbe9c197700410d946"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Ausführliche Beschreibung</h2>
<div class="textblock"><p>Headerdatei für <a class="el" href="controls_8c.html" title="Display und Bedienelemente.">controls.c</a>. </p>
<dl class="section author"><dt>Autor</dt><dd>Tom, DL7BJ </dd></dl>
</div><h2 class="groupheader">Dokumentation der Funktionen</h2>
<a id="a2f616a93763b4bc437c4311d653c0491"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f616a93763b4bc437c4311d653c0491">&#9670;&nbsp;</a></span>Beep()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Beep </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Beep Ton ausgeben. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0366eaeb4aab61562dcd5b24994d0103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0366eaeb4aab61562dcd5b24994d0103">&#9670;&nbsp;</a></span>Boop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Boop </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Boop Ton ausgeben. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a582148370499a6b91171ed6134cc7041"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a582148370499a6b91171ed6134cc7041">&#9670;&nbsp;</a></span>ConfigMenue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ConfigMenue </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ausgabe des Menues für die Einstellungen. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4e03330a0d63dbc5c8c0ce8a3ba10ff7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">&#9670;&nbsp;</a></span>DelayMilliSeconds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DelayMilliSeconds </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Zeitschleife von 1-65535 Millisekunden. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">ms</td><td>Anzahl Millisekunden </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9dec45875121142b6466b9475691b40a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dec45875121142b6466b9475691b40a">&#9670;&nbsp;</a></span>DisplayVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DisplayVersion </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ausgabe der Softwareversion des BJ-Keyers. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac6dc8b683fdf1a5fc24b2a509279f887"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6dc8b683fdf1a5fc24b2a509279f887">&#9670;&nbsp;</a></span>Drehencoder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Drehencoder </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mit dieser Funktion wird per Polling der Drehencoder abgefragt. </p>
<pre class="fragment"> Es wird die Stellung des Encoders und der Status des Tasters
abgefragt. Die Daten werden ausgewertet und die entsprechende
Funktion aufgerufen
</pre> <dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<p>neuen Wert in bConfig speichern</p>
<p>Status für Timer 0 setzen</p>
<p>Status für UpdateDisplay setzen</p>
<p>neuen Werte in EncoderPos speichern</p>
<p>neuen Wert in WpM übernehmen</p>
<p>Timer 0 Variable löschen für Update EEprom</p>
</div>
</div>
<a id="aa0e063cf32b840a3ed51ae9aa677e2be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0e063cf32b840a3ed51ae9aa677e2be">&#9670;&nbsp;</a></span>SetRatio()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SetRatio </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Berechnung der Zeitdauer für Punkt und Strich. </p>
<pre class="fragment"> Die Länge eines Symbols ist abhängig von der
eingestellten Geschwindigkeit. Intern wird immer
mit Wörtern pro Minute gerechnet. Das normale
Punkt/Strich Verhältnis ist 1:3. Dies kann durch
den Parameter Ratio in den Einstellungen verändert
werden.
</pre> <dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae8011166e9324f9f3c6948249eb15fd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8011166e9324f9f3c6948249eb15fd1">&#9670;&nbsp;</a></span>SidetoneDisable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SidetoneDisable </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Audioverstärker abschalten. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a60f2f041b0803584ba5fc2e0a373ed50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60f2f041b0803584ba5fc2e0a373ed50">&#9670;&nbsp;</a></span>SidetoneEnable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SidetoneEnable </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Audioverstärker einschalten. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad82537f7ea58b4eb375952ce52615c4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad82537f7ea58b4eb375952ce52615c4d">&#9670;&nbsp;</a></span>SidetoneOff()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SidetoneOff </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mithörton ausschalten. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a378d56bf0e68310b700bd4dbdc652803"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a378d56bf0e68310b700bd4dbdc652803">&#9670;&nbsp;</a></span>Tone()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Tone </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>duration</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ausgabe eines Tons mit Dauer und Frequenz. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>Frequenz des Tons </td></tr>
<tr><td class="paramname">duration</td><td>Dauer des Tons </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ace58ee95637a8f220527dc8b20dbb662"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace58ee95637a8f220527dc8b20dbb662">&#9670;&nbsp;</a></span>UpdateDisplay()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void UpdateDisplay </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>UpdateDisplay. </p>
<pre class="fragment"> Aktualisierung der Anzeigen auf dem Display je nach
aktueller Funktion.
</pre><p> DOUBLESIZE 4x10 character NORMALSIZE 8x21 character </p>
</div>
</div>
<a id="a586bc00ad3164def7ec76ac9bda4f1bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a586bc00ad3164def7ec76ac9bda4f1bc">&#9670;&nbsp;</a></span>WriteEEprom()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void WriteEEprom </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Akt. Einstellungen in EEPROM schreiben. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Variablen-Dokumentation</h2>
<a id="a8c3e2d3135447df0d9e7057fea4ff5b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c3e2d3135447df0d9e7057fea4ff5b0">&#9670;&nbsp;</a></span>bConfig</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structConfig.html">Config</a> bConfig</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Struktur für die Einstellungen. </p>
</div>
</div>
<a id="a885b2af021946a60a0bd2a271711c17a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a885b2af021946a60a0bd2a271711c17a">&#9670;&nbsp;</a></span>bMenuCtrl</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structMenuCtrl.html">MenuCtrl</a> bMenuCtrl</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Struktur für die Menuesteuerung. </p>
</div>
</div>
<a id="a44ef5c8aeac95b862dab43408c149f9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44ef5c8aeac95b862dab43408c149f9a">&#9670;&nbsp;</a></span>bState</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structState.html">State</a> bState</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Struktur für den aktuellen Status. </p>
</div>
</div>
<a id="a088c685d08447f6614b3aea76cd94582"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a088c685d08447f6614b3aea76cd94582">&#9670;&nbsp;</a></span>MenuCtrlTimer</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint16_t MenuCtrlTimer</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wartezeit bis zur Betriebsanzeige nach <a class="el" href="structConfig.html">Config</a>. </p>
</div>
</div>
<a id="a28fa6cb1767abefbe9c197700410d946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28fa6cb1767abefbe9c197700410d946">&#9670;&nbsp;</a></span>WpM</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint8_t WpM</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Aktuelle Zeichengeschwindigkeit. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="controls_8h.html">controls.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,23 @@
var controls_8h =
[
[ "Beep", "controls_8h.html#a2f616a93763b4bc437c4311d653c0491", null ],
[ "Boop", "controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103", null ],
[ "ConfigMenue", "controls_8h.html#a582148370499a6b91171ed6134cc7041", null ],
[ "DelayMilliSeconds", "controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7", null ],
[ "DisplayVersion", "controls_8h.html#a9dec45875121142b6466b9475691b40a", null ],
[ "Drehencoder", "controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887", null ],
[ "SetRatio", "controls_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be", null ],
[ "SetWeight", "controls_8h.html#a7a31f60576d112eca1abddf447df8248", null ],
[ "SidetoneDisable", "controls_8h.html#ae8011166e9324f9f3c6948249eb15fd1", null ],
[ "SidetoneEnable", "controls_8h.html#a60f2f041b0803584ba5fc2e0a373ed50", null ],
[ "SideToneOff", "controls_8h.html#a543d0f249e5b505063a706525f99ff3a", null ],
[ "SidetoneOff", "controls_8h.html#ad82537f7ea58b4eb375952ce52615c4d", null ],
[ "Tone", "controls_8h.html#a378d56bf0e68310b700bd4dbdc652803", null ],
[ "UpdateDisplay", "controls_8h.html#ace58ee95637a8f220527dc8b20dbb662", null ],
[ "WriteEEprom", "controls_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc", null ],
[ "bConfig", "controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0", null ],
[ "bMenuCtrl", "controls_8h.html#a885b2af021946a60a0bd2a271711c17a", null ],
[ "bState", "controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a", null ],
[ "MenuCtrlTimer", "controls_8h.html#a088c685d08447f6614b3aea76cd94582", null ],
[ "WpM", "controls_8h.html#a28fa6cb1767abefbe9c197700410d946", null ]
];

@ -0,0 +1,10 @@
<map id="controls.h" name="controls.h">
<area shape="rect" id="node1" title="Headerdatei für controls.c." alt="" coords="52,5,131,32"/>
<area shape="rect" id="node2" href="$controls_8c.html" title="Display und Bedienelemente." alt="" coords="5,80,84,107"/>
<area shape="rect" id="node3" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="109,80,170,107"/>
<area shape="rect" id="node4" href="$functions_8h.html" title="Headerdatei für functions.c." alt="" coords="47,155,133,181"/>
<area shape="rect" id="node8" href="$main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="158,155,219,181"/>
<area shape="rect" id="node5" href="$functions_8c.html" title="Diverse Funktionen." alt="" coords="47,229,133,256"/>
<area shape="rect" id="node6" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="191,229,256,256"/>
<area shape="rect" id="node7" href="$vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="191,304,256,331"/>
</map>

@ -0,0 +1 @@
f3a4fb3a2f3ee0fc7abf0c182623f27f

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@ -0,0 +1,21 @@
<map id="controls.h" name="controls.h">
<area shape="rect" id="node1" title="Headerdatei für controls.c." alt="" coords="766,5,845,32"/>
<area shape="rect" id="node2" href="$globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,80,792,107"/>
<area shape="rect" id="node19" href="$encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="817,80,895,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="5,155,69,181"/>
<area shape="rect" id="node4" title=" " alt="" coords="93,155,155,181"/>
<area shape="rect" id="node5" title=" " alt="" coords="179,155,245,181"/>
<area shape="rect" id="node6" title=" " alt="" coords="269,155,334,181"/>
<area shape="rect" id="node7" title=" " alt="" coords="358,155,421,181"/>
<area shape="rect" id="node8" title=" " alt="" coords="445,155,523,181"/>
<area shape="rect" id="node9" title=" " alt="" coords="547,155,613,181"/>
<area shape="rect" id="node10" title=" " alt="" coords="637,155,752,181"/>
<area shape="rect" id="node11" title=" " alt="" coords="777,155,853,181"/>
<area shape="rect" id="node12" title=" " alt="" coords="877,155,979,181"/>
<area shape="rect" id="node13" title=" " alt="" coords="1004,155,1103,181"/>
<area shape="rect" id="node14" title=" " alt="" coords="1127,155,1209,181"/>
<area shape="rect" id="node15" title=" " alt="" coords="1233,155,1327,181"/>
<area shape="rect" id="node16" title=" " alt="" coords="1351,155,1430,181"/>
<area shape="rect" id="node17" title=" " alt="" coords="1454,155,1533,181"/>
<area shape="rect" id="node18" title=" " alt="" coords="1557,155,1640,181"/>
</map>

@ -0,0 +1 @@
d1768631a44cd18b4dad3c889b323667

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

@ -0,0 +1,157 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: controls.h Quellcode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('controls_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">controls.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="controls_8h.html">gehe zur Dokumentation dieser Datei</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#ifndef CONTROLS_H_INCLUDED</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define CONTROLS_H_INCLUDED</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="globals_8h.html">globals.h</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="encoder_8h.html">encoder.h</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Externe Variablen</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structConfig.html">Config</a> <a class="code" href="controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">bConfig</a>;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structMenuCtrl.html">MenuCtrl</a> <a class="code" href="controls_8h.html#a885b2af021946a60a0bd2a271711c17a">bMenuCtrl</a>;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structState.html">State</a> <a class="code" href="controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a">bState</a>;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">extern</span> uint16_t <a class="code" href="controls_8h.html#a088c685d08447f6614b3aea76cd94582">MenuCtrlTimer</a>;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">extern</span> uint8_t <a class="code" href="controls_8h.html#a28fa6cb1767abefbe9c197700410d946">WpM</a>;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Externe Funktionen</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Boop</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a2f616a93763b4bc437c4311d653c0491">Beep</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">WriteEEprom</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> SideToneOff(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">DelayMilliSeconds</a>(uint16_t t);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a378d56bf0e68310b700bd4dbdc652803">Tone</a>(uint16_t f, uint8_t t);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">SetRatio</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> SetWeight(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#ae8011166e9324f9f3c6948249eb15fd1">SidetoneDisable</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a60f2f041b0803584ba5fc2e0a373ed50">SidetoneEnable</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="controls_8h.html#ad82537f7ea58b4eb375952ce52615c4d">SidetoneOff</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// Prototypes</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> <a class="code" href="controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887">Drehencoder</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a582148370499a6b91171ed6134cc7041">ConfigMenue</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> <a class="code" href="controls_8h.html#ace58ee95637a8f220527dc8b20dbb662">UpdateDisplay</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> <a class="code" href="controls_8h.html#a9dec45875121142b6466b9475691b40a">DisplayVersion</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="acontrols_8h_html_a0366eaeb4aab61562dcd5b24994d0103"><div class="ttname"><a href="controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Boop</a></div><div class="ttdeci">void Boop(void)</div><div class="ttdoc">Boop Ton ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:688</div></div>
<div class="ttc" id="acontrols_8h_html_a088c685d08447f6614b3aea76cd94582"><div class="ttname"><a href="controls_8h.html#a088c685d08447f6614b3aea76cd94582">MenuCtrlTimer</a></div><div class="ttdeci">uint16_t MenuCtrlTimer</div><div class="ttdoc">Wartezeit bis zur Betriebsanzeige nach Config.</div><div class="ttdef"><b>Definition:</b> globals.h:217</div></div>
<div class="ttc" id="acontrols_8h_html_a28fa6cb1767abefbe9c197700410d946"><div class="ttname"><a href="controls_8h.html#a28fa6cb1767abefbe9c197700410d946">WpM</a></div><div class="ttdeci">uint8_t WpM</div><div class="ttdoc">Aktuelle Zeichengeschwindigkeit.</div><div class="ttdef"><b>Definition:</b> globals.h:193</div></div>
<div class="ttc" id="acontrols_8h_html_a2f616a93763b4bc437c4311d653c0491"><div class="ttname"><a href="controls_8h.html#a2f616a93763b4bc437c4311d653c0491">Beep</a></div><div class="ttdeci">void Beep(void)</div><div class="ttdoc">Beep Ton ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:698</div></div>
<div class="ttc" id="acontrols_8h_html_a378d56bf0e68310b700bd4dbdc652803"><div class="ttname"><a href="controls_8h.html#a378d56bf0e68310b700bd4dbdc652803">Tone</a></div><div class="ttdeci">void Tone(uint16_t f, uint8_t t)</div><div class="ttdoc">Ausgabe eines Tons mit Dauer und Frequenz.</div><div class="ttdef"><b>Definition:</b> functions.c:674</div></div>
<div class="ttc" id="acontrols_8h_html_a44ef5c8aeac95b862dab43408c149f9a"><div class="ttname"><a href="controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a">bState</a></div><div class="ttdeci">struct State bState</div><div class="ttdoc">Struktur für den aktuellen Status.</div><div class="ttdef"><b>Definition:</b> main.h:18</div></div>
<div class="ttc" id="acontrols_8h_html_a4e03330a0d63dbc5c8c0ce8a3ba10ff7"><div class="ttname"><a href="controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">DelayMilliSeconds</a></div><div class="ttdeci">void DelayMilliSeconds(uint16_t t)</div><div class="ttdoc">Zeitschleife von 1-65535 Millisekunden.</div><div class="ttdef"><b>Definition:</b> functions.c:33</div></div>
<div class="ttc" id="acontrols_8h_html_a582148370499a6b91171ed6134cc7041"><div class="ttname"><a href="controls_8h.html#a582148370499a6b91171ed6134cc7041">ConfigMenue</a></div><div class="ttdeci">void ConfigMenue(void)</div><div class="ttdoc">Ausgabe des Menues für die Einstellungen.</div><div class="ttdef"><b>Definition:</b> controls.c:285</div></div>
<div class="ttc" id="acontrols_8h_html_a586bc00ad3164def7ec76ac9bda4f1bc"><div class="ttname"><a href="controls_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">WriteEEprom</a></div><div class="ttdeci">void WriteEEprom(void)</div><div class="ttdoc">Akt. Einstellungen in EEPROM schreiben.</div><div class="ttdef"><b>Definition:</b> functions.c:102</div></div>
<div class="ttc" id="acontrols_8h_html_a60f2f041b0803584ba5fc2e0a373ed50"><div class="ttname"><a href="controls_8h.html#a60f2f041b0803584ba5fc2e0a373ed50">SidetoneEnable</a></div><div class="ttdeci">void SidetoneEnable(void)</div><div class="ttdoc">Audioverstärker einschalten.</div><div class="ttdef"><b>Definition:</b> functions.c:279</div></div>
<div class="ttc" id="acontrols_8h_html_a885b2af021946a60a0bd2a271711c17a"><div class="ttname"><a href="controls_8h.html#a885b2af021946a60a0bd2a271711c17a">bMenuCtrl</a></div><div class="ttdeci">struct MenuCtrl bMenuCtrl</div><div class="ttdoc">Struktur für die Menuesteuerung.</div><div class="ttdef"><b>Definition:</b> main.h:17</div></div>
<div class="ttc" id="acontrols_8h_html_a8c3e2d3135447df0d9e7057fea4ff5b0"><div class="ttname"><a href="controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">bConfig</a></div><div class="ttdeci">struct Config bConfig</div><div class="ttdoc">Struktur für die Einstellungen.</div><div class="ttdef"><b>Definition:</b> main.h:16</div></div>
<div class="ttc" id="acontrols_8h_html_a9dec45875121142b6466b9475691b40a"><div class="ttname"><a href="controls_8h.html#a9dec45875121142b6466b9475691b40a">DisplayVersion</a></div><div class="ttdeci">void DisplayVersion(void)</div><div class="ttdoc">Ausgabe der Softwareversion des BJ-Keyers.</div><div class="ttdef"><b>Definition:</b> controls.c:418</div></div>
<div class="ttc" id="acontrols_8h_html_aa0e063cf32b840a3ed51ae9aa677e2be"><div class="ttname"><a href="controls_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">SetRatio</a></div><div class="ttdeci">void SetRatio(void)</div><div class="ttdoc">Berechnung der Zeitdauer für Punkt und Strich.</div><div class="ttdef"><b>Definition:</b> functions.c:525</div></div>
<div class="ttc" id="acontrols_8h_html_ac6dc8b683fdf1a5fc24b2a509279f887"><div class="ttname"><a href="controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887">Drehencoder</a></div><div class="ttdeci">void Drehencoder(void)</div><div class="ttdoc">Mit dieser Funktion wird per Polling der Drehencoder abgefragt.</div><div class="ttdef"><b>Definition:</b> controls.c:46</div></div>
<div class="ttc" id="acontrols_8h_html_ace58ee95637a8f220527dc8b20dbb662"><div class="ttname"><a href="controls_8h.html#ace58ee95637a8f220527dc8b20dbb662">UpdateDisplay</a></div><div class="ttdeci">void UpdateDisplay(void)</div><div class="ttdoc">UpdateDisplay.</div><div class="ttdef"><b>Definition:</b> controls.c:440</div></div>
<div class="ttc" id="acontrols_8h_html_ad82537f7ea58b4eb375952ce52615c4d"><div class="ttname"><a href="controls_8h.html#ad82537f7ea58b4eb375952ce52615c4d">SidetoneOff</a></div><div class="ttdeci">void SidetoneOff(void)</div><div class="ttdoc">Mithörton ausschalten.</div><div class="ttdef"><b>Definition:</b> functions.c:256</div></div>
<div class="ttc" id="acontrols_8h_html_ae8011166e9324f9f3c6948249eb15fd1"><div class="ttname"><a href="controls_8h.html#ae8011166e9324f9f3c6948249eb15fd1">SidetoneDisable</a></div><div class="ttdeci">void SidetoneDisable(void)</div><div class="ttdoc">Audioverstärker abschalten.</div><div class="ttdef"><b>Definition:</b> functions.c:268</div></div>
<div class="ttc" id="aencoder_8h_html"><div class="ttname"><a href="encoder_8h.html">encoder.h</a></div><div class="ttdoc">Headerdatei Drehencoder Library.</div></div>
<div class="ttc" id="aglobals_8h_html"><div class="ttname"><a href="globals_8h.html">globals.h</a></div><div class="ttdoc">Globale Variablen, Definitionen und Prototypen.</div></div>
<div class="ttc" id="astructConfig_html"><div class="ttname"><a href="structConfig.html">Config</a></div><div class="ttdef"><b>Definition:</b> globals.h:151</div></div>
<div class="ttc" id="astructMenuCtrl_html"><div class="ttname"><a href="structMenuCtrl.html">MenuCtrl</a></div><div class="ttdef"><b>Definition:</b> globals.h:138</div></div>
<div class="ttc" id="astructState_html"><div class="ttname"><a href="structState.html">State</a></div><div class="ttdef"><b>Definition:</b> globals.h:121</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="controls_8h.html">controls.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,515 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: GIMP PostScript file plugin V 1,17 by Peter Kirchgessner
%%Title: DL7BJ website logo.eps
%%CreationDate: Tue May 13 14:47:37 2014
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 483 75
%%EndComments
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456694 14.173228346456694 translate
% Translate to begin of first scanline
0 59.992500937382829 translate
467.94150731158607 -59.992500937382829 scale
% Image geometry
468 60 8
% Transformation matrix
[ 468 0 0 60 0 0 ]
% Strings to hold RGB-samples per scanline
/rstr 468 string def
/gstr 468 string def
/bstr 468 string def
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
true 3
%%BeginData: 29288 ASCII Bytes
colorimage
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
_>jQ7nc&ajqtg-dl2Lb^p\t6mJcC<$W;hA~>
_Z'`4l0nQArrr5S`2oNVlMgqakPY/U!W2Vbrri?!s82eHs,I&/~>
_Z'`.fAcYurrr&2PA![ilMgq^eG8q?!Vl/Xrri;srqQGCs,I&/~>
aSuAAq=saapAt'brq?EfrqQTiq>U6jq>9mdr9=4^p\Fdf!r_ujrq?Hirq$-lqZ$Qor;QitrVZKg
!;uiqs8W,uj8],X&,lD$qu$<drVlirrVZNjqYKpdq18R*s*t~>
r;QcpcMnaSUm@-qJ:NTNJ:WE8R%9e5R'EouVjN0hrI=mplMgq`JYE&B!oC/BrdY$NlLY#YW;-#Y
qYpL1qt&js`4j"$^rOI3c0=`gqZ$9`qtp?TrtPD&oBbVYUqG$SS_Nf7p#+,shl)>-J,l9os,I&/~>
r;Qform1T]lrlY6*Z,_H;&C5q1IOr35"'F2C1'FR)uUTRWp9TcqAWH5rrU)W2#\<mC"`.Y"o_s$
lgFKGrtb@mbH@%cMi3R`R#n,pj6-+8mdU#Hqrdtnq<@/!dZmsiW+Si<lMBkfVJ4"W-MnV[<.Y(/
s*t~>
rr3)uq"OO^q>^6`pAk!^pB13dqY]^['E.e(q=jX\r;66_q"jd\q>0m\r;QZoroj@mq"OggrV?6d
q"OR[p\=^cpAYBsp\=RZp\=R^pBgWhp\=OXp\=LWr:p6b"Shijr;Q*`!<)]e!;Q6]"o8#mrVc_H
s,I&/~>
rr3GKML^>HTp^suJUrE*JbsrtMY;Q'M4CouqsXP"r:nsOYGZr&`6#lHJ<I<sPF8h7LWob\!p]4=
kl20TK)Yf*Tp!obJ;LR_Q/gisrs7q@NL5WWQDB97J/ElqJ:NWAJ:Wc5LQe!bPE1EJJ:Wrc]?9d5
rrM,2q1&I%p4*@!R'>#pg?sOlNW4M~>
rr3Fr.Ms3o<(/Sk)]B_<)Z(?O.eX\^.8+f^q!\4tqXM+=DI=A%PamgP(clmi4%=KB-DLLh!nlJa
kl2/N*;oiO<B@B=(asGD50M%@rs7<q0LIE75ZoB3(`48C(`4qc(`P7N-9FCL3]%us(`PVNKV%Ms
rrL7_q%s)[p)!uR6Z9*C]AS8?NW4M~>
rVlotr;HKmq>U*hq"jj]')M@uqY^?krVlfprVQ?ap\=R]li.Ilp\b$dq>L9dq>C3ep\j(N#Q"2o
r:g'eq#0phrV-'apAY0jqYU9nrqcWgrqHNkq>U*grVQTsrr)fmrV-?e!rDionGiLd&cVh0r;69c
q"OX`q"X^[q"OZ:s+^Q(~>
rVm8he\f&8\Xe;%J<$c.J.o5@UUJY@guRebjQ=:6Mh$___t`Tu%`EqKm@U$+hhRiOjdC\[iVs.]
JEk4-Xm_ANJ-:MXKRh\JrrKs9qu6]f[/PR]N0KRCVLa8NjSSrZp#Y5FrI>$,NjHq'nGa6Vg>MAn
m*EM1Z&aI7g5hE(L5LMopjrI#s*t~>
rVm8UZ]^'%In^dt(c#k&(_^s3=F.12^WkK_c-hUu/Jp$EOn%f<%[7j:h,$ta`$J6]cUAesiVs-j
(tb;tC>h)M(^(nj*uMK\rrJ0lqu6][G5`<a/j):X>oOV'c27MCmEj(/r>5Ya13B5ZnGa66]>rdu
h5HAoEASSB]/)Hk,:XOanU^^qs*t~>
pAY9nq=j[Zq=amepAY0lq>Bsfqu6!_&,Q%rrr;ihqYpEep\=aeqW%S[qtKj[q>9scpB:Bhq"OXZ
rrW/nqtg=$rqH0_q"ss_p\=LWq=jmirV69a!VlZYrsSi$q=sd\r;QWlp\KI@L&ZZ~>
pAY9<TneMbqLATtde<\Ag8"Us!f+G\mJd^#J>29*[t1jNbCtJ1nF`pDrs$DlKT2bGNW"A1_4d'E
[J0\&k(15Brs\4GKq+CA\VG^!JUsTkrrW2_P5Bb1QLX5>$hT@HOe@``l-[q2Z%;q/s*t~>
pAY8f<@01LqA95PXnMbq]NG+L![`WdmJd]7(fo2_Hl@([THY46j6^UArs"])+#$f_0`;gkO&\4]
H2%=?d2@`9rs[X'+\Y%UIjGpn)];`PrrW/K3r9`p5iq81$gT?82c;B6euYtnEe47Es*t~>
o`"pgq"Fd`oD\gfrV$Bgp\jO[&,Q&!rqcKjrqZ?ep\FdarT!nXr;$'kqYU$`s8)NbrrW&kqt^9l
p^-cnq"OU]q"OU`p&>'lq"sddq"s@V$iKbsqu6Wqqtp0`rIP!'s*t~>
o`"s.K)'osO7WAO_#AidL5gu@mf*g,JD0:hW9`cCNmE<KgpZ8'rrCRJJ.$s]K7JKW]n!HgW0I&V
!j.!nq>UhbQ(P^HJ>Br<J>)N,rrW/jQi)@8Koih0rsR80aLgm?s2M[3P2CijLAuc~>
o`"rQ*;LEO1\C\Jrf$gn"!]KG\F0A-Hl0KKAmsHJ<ACBl:;D5"j8T+`rYQ%a*Zc.8EebKSrEqbe
q#:D1(n(4"$TC7HKdmpCMC]TEk4\fVqrgEF(]km>Id6q@XX'?fhuE\CKJY^-JcCK)J,~>
o`"pirV-?e"8DZhqssamqtKj]qY0d\rpTjqq=sd`s8;ZfrVQ?brSdbZrV-'_q#0plr;$3gr;-0b
q>UQqp\4X_rs/Gqr;$*]qt^6c!;uHg#laVnp\Fa_p\j@V$MaAps8DckqY0daJcCK)J,~>
o`"pErI>';OFaaQ](5k,`INTAWIg&$p[A+jUm@Orr76t(ikL#8g#;r6hLL-WP5]t<L!ZU$m`h\]
\G?"$"64r_g\_!VrP4*4Rt-71VZ))GeareHpPj]RVU1c^g$/MDNJ.!(k,-A-J<0)Ks+^Q(~>
o`"p%r>5]'2&^UpK(K!Krfn<@B4;i3;Xj/T$sGnhV>7MV<m$=;::fEa"MtumB0#r.#pH9LFl9''
)h.GUrr^I`(qohH#lBQ'W(@gOOBqi&!42:s#k0Mb(gX+3(qJo2$8<RgrR,#HEYpXiJcCK)J,~>
o`#9np\4IYq"OU\q"sU]#l=;iqYg3`qYp!a$i0SsrqcBdrVlWerS[\Ur;HBip^6ipqYC*dqtp?e
q>1*mq=s^\rs\l'qYKs]qY0aZqtL$Zrs/Dpqtp0_p\="Q$2OQ"rVQTmrqHDCs+UK'~>
o`#8]J:NWSQ@Yp9NkFr_$3%;dJuRIeJ?nn<rsPK[oCT5?]ArCRJDoGd!6Y7j%?H[FdBfb+\&Gr8
P*l.Erri=sM2(g&rs[brWN:W8[YB=!\VA?!rs6&c]YfYXJ;F-grs>+Ks4k?YhX5p]JcCH(J,~>
o`#7Y(`4r.5T*jC0o#9!$2o&n*+QTA(j#-7rsM^Zkj*(/K?WCS(s(Y8!1s-+%5^(DX)q^aI?oH%
3^`Z>rri7&.4"H\rsZbs@VHZDH6a=oIjCcZrs3rmKp"#)(ao.Ers;01s1jKQ_qu<eJcCH(J,~>
p&>$jrq?Znq"t$dp\4LRrs8Psq>C$_p\4ORrs\f#r:p*ds8;cmp\XmIrtG;(p\=X_q"sj]p\Xdc
r;Z`iq#13l"TJ5lqtg-g$NBhpq"XUYrVZHcnG`Ucp\4XcpAk-Vrs8E!r;Q`rrqcD@s+LE&~>
p&>E_K7e]CQH.[WL4H/krs75.V:(0WJ:P)trsZK3bDMhPs2r7;JA07drtDtoJ;UkJMS>73KYjVU
aS=MEN8=L5"RMqH^TdP6$M'7.Od(BYf[Q"Anc&akNIZQ7rdY!jlMh0Sn]^:us6QkNpjrI!s*t~>
p&>EL*Zc.h5af2k,8a_Vrs6%R>HK5%(`7SgrsXKXTdrdargo:m(l>$HrtBu$(b0ud.u?;<+-9gi
S+=6;0#7Jd"Pd0?Mf8Fk$Kj5_2`qp9\?IhCnc&aj0GkYArYPX*lMh/Pk+gT/s4qEMnq$gps*t~>
p&G'k$2F8lrqcEdqY0mVrr`2np\=^]!;c6c%/T_or;ZcorVZNdq>0(M"SqffrqlZg')DG#p\4L\
q"jj^q>:$_p\Oa`qYpj"q"OOXq"jsbrqGs_$N0YnrVZKeqY0gbm/I+]qu-Nsqu6BfJcCH(J,~>
p&>Hcl&^P:n#2&HZ%0C_nc&a7J:NH0rdY!Snc'$,J=Y-fn'U%>[=OmUiVs%SJ=Z&;rdYZ7R^ef?
JtBlAY-j+\^9)s:Yc,D7rsRY@LObVUXQQC0J;3Uo$IaTij3X3gW.q)7m/IBN\c)R.prDTb`e"/D
s*t~>
p&>HRf/4S6iF+'PEYs<%nc&`a(`4VErYPZWrpp'tHl,S[rSjlrWd#CUGN&Q)<>\HcJ,U8u*_1ZM
+rsIA2/@Fc<f(Q0(iWlCqYpr=/LD;s6>4kP(`4OgrsGqM3m4Nl=(!7Sh<b.J07Wius72T.6^NB(
L&ZZ~>
oD]-lqYU'brVQBcqsXR]pB(-aqt'jfq?d3$qYL*crVcKei;X&Xp](*aq>L3grs&K$q=jXZqYg-j
q"sjcqYq!&rqlHbqtp-`q"a^^o)B$qq"O[as8Dihq<S%]p\b$j"TA2lq"]L@L&ZZ~>
oD],RXMBh/iQ%"I_XRR+qM5!!"+l_i\b#k$Z3pKr\$NfMinT*gq;M>ZTRlsFJ=k]8q>L<upXl!d
J=<m!rdY*4_27XWrsdWF]n)'Pa+g+?Ru+oZoD]0`P(C=,roM+PTD\'U!JT/)rrhJdPE_ems+UK'~>
oD]+FBoOg%adP%UORW8Nod9SR!us?DJ+N^?EshZtI!(6Zb.nm3oAT]T;Ao1L(fA24oDS[on@)%-
(eAlnrYP_qO!s#arscHhLDqaqR3P?O8L]PpoD]0P3?*atrQpiP;#9PY!@"uOrrg_a3]pJps+UK'~>
oD]0nq#(*eq"OUZp\XI[!;uij"o.upr:g$YrsSZ#qt^-grr;olp\s+N"Sqijp\XX`$2sbtq=sd`
s7lNdrsJ\uqYBp]p\4LYq==OhqtKserV?He!;Pm[$2=K"qYL$drqQJDs+UK'~>
oD]/dOOW6gNJ*d[JA^mV!71Xp#*d%$bCH)]o`#;qf=[Tdkj\VsUO_^hrro'Sd=o:4p\tTqh7T\T
NMY2&QHf1($IF@1R>d5YJXVCco)Am(L8k46R/VU9Q0eMXre1:NZEBYPl\XtZs+UK'~>
oD].f2R1A50H`q>(m=Cg!2of5#!A%?TGU9!o`#;([Y7;.e`?b+<uB`Nrrl=RX<EAqp\tTk_1c8e
0O1sY5c"/S$E>"e75$P:)+Q#Jo)AlC,\-l!7/e#'54&:Vr#kq;F)4@^g*tg.s+UK'~>
oD]-lqtg'`rVlckqsOLapBUTpr;-0_p\FI]#5IreqYpNnrqQThqr%JVq=jX]mJd4bq"F^prV-'^
q=ja`q=jdVrrW/pq>Bseq!A"frqHHkp\Y!hq"ao?s+UK'~>
o`#9tPK'qZZ/Y3/UUopo$M].,_=lHcJWt_To`#;bJUk)us4Wm5U4Bu9rr]0MK[fDh!m6i+p\tTQ
KRokiJ?$b`J@b:N!p?)Ir."g(qsFCjmXb;kJ\;$CQCdPrs+UK'~>
o`#9r3gXq*EQ[1W=For@$h>,]Npa;r)a,*2rq6:!5T1J^kl87`:f\Ehi;Wme)BZ3NrrScWq"Odq
\0)\k;&El::De]RrrUYC<W![7-M[!.$K)j!^DVb*b<\q`JcCH(J,~>
o`#9sp\4L^s8Voip\aIZ$2FJuq"OR\qtKsZrsSVtrr;upp\Fdap\j%M!rDZemJd7ep\aab!W;]k
q$$Zjp\OX]nc&Ueq=amgmJdOlq>0pds8Minqu20HL&ZZ~>
o`#9UJ:OHTqY-G7JCa2h$iZ%;pQ^8la1d)'rq6:!M4a&4n%=@GgSo__i;WkeJ=c0.!pkZkpAYKB
J=`:$^QjJQJB%-Z!6Ftd!;>g[$J_2WV!\3PV!,DSJcCH(J,~>
o`#9:(`6H!p$kO"(q&i4$iMQfn37aMR>Dbir:U't.8e[rieAUP]j_i$i;Wk*(f'Ju!o,$*pAYJk
(f*duME`1q(msjn!1N^#!:T=T$G]AU=l',>>1A,SJcCH(J,~>
p&>F!p\4UbrV6-^q>'mTrsAPtp\Fgdq#1-do`#9mrr;ljqZ$Nip\3SF!rDZhmJd4_qXsjqr:fs_
qY0g_q"XaVrrE#spAt0hrqPj[$N0\ss8W&or:p$bJcCH(J,~>
p&>EhJV2DAgm<YSUmSXZrsGa#L8XCgQ.a<Xrq6:!K(/WSLoU75VgsEqi;Wk_JB[E\!i)ptpAYKB
KSR+:L8)A?MnSZ\!9O31"NSlHM2Ua#$HeRWs8U`XaH;#8JcCH(J,~>
p&>E[)'5pC^Hrtt>"!f,rsE4:,[fH75.R7lr:U't*TQjU-=lYq?l0pVi;Wjs(o-Ku!a'79pAYJl
+=;VH,Z][R/;Ncq!71W]"e)D?-nPAbrsGAZV#UJ(FIP6,d=M=Os*t~>
o`#*jq#'p]r;QNnp\F7Ws7Zfss8)Tlrr)Tfp&>6jq=j^as82ch!<(jU!rVflmf*@dq#:!e%0$(t
qY0a\q"aa[q#9ja#lXMpr;-9gs7u$]$N']"s82Zgr;-3eJcCH(J,~>
p&>EqSWqN[J^Us7W.:K.rs\gZK?X7l[J9:LJ?&J>rsOLXLSaS?_hEVkKB(ni!m6)emf*@=QhU4R%
/--NWJ,l$PFeM$NV)fA#j-cRe#BM1s.o#]$G!8<s2V(6c`N>hJcCH(J,~>
p&>El9g,O.)6J.1?l2Z-rs\]I*M`F<Gk1"9(hE=5rsKrV-!]X0Os1_[*mERB!hL@tmf*?o6La^K%
.6VB@NlXs3_i]r0^J<0#gj]LY@DCms&n^g$@ljjrgI7uVeS36JcCH(J,~>
o`#9qp\F[\r;HNep\XCY"T/#mqY^?m!r_lipAYO"p\=^erV60bqY0dBrrN,nmf*@ep\jdb!WMln
pBUKjqY0pap\j[_"9%uhp\sshs7u$]s8**%qYC'hr;?HjJcG]K"9&/pr/L`,~>
o`#<>J=<g,ak=^bJ@PUIrrg31c`Pasrr_21WW)Yl%.f%,i;_f%P/+5QQ2TY@!pkO;n,EIDK])P'%
.f[:J:N]jY^jlpL#_b(#j6`#J=N$sqOm3T$G+4VYboV>aiqEXJcG`L"o6rq_peIBs*t~>
o`#;f(eAa-S[k1+(k2DOrreEYW+r[<rr^:ZA,Q*$%-SQXa8a:H3fIkq5Pj=<!o+dln,EI&+34'S%
-Tbs(`5)YD]#'R,0]WX#h0\M(e[=ip/C>X$A"NBE*]./SYLq`JcG`L"n]R"OfnA;s*t~>
o`#<sq=spdqY0a[q"O^TrsS\tp\Omhs8)Kaq>U*f$hsW"qY0gbq>C$^q;;2Qp\s[^!r_ljo`"pj
rqHHh#5@ogq"XU^oD\jjq#'mdq#L<YrsS]$qYL3kqYU<gp\WbG!;i\o!W;ckpAk$4rri>uq=sg.
s*t~>
o`#<HT8hOLWI]ShO+>=?rsQ8cJ>i)>pTT4!U%A$Y%JbP8rNq-OnYF<fJXZMqrrW+QlgXoUjFb):
rs\UUJ:Y)0KpS9iQ@n8irrMMKr."j9Vn;<q$`M:YYj21f_u?*T`SLOpqT#Q7"9$cGK)L3"T?I6;
oZ*hhZH<,s~>
o`#<":b]GV@N-.V1`2_NrsO,i(h)\/nS]?`<9a/W%J1L_qK<`Zk#n<2)+XM]rrW!Ag[P4Ec5qW1
rs\<@(`IU5+[SaW5p">CrrLt6r"oK'@"dnH$XofYDqY##P5IifQ/2H@p6qr["8]<+*W6fT:s8kA
l^D*7F34H4~>
o`#9rp\Xpap\Fgdp\O=X#5S#hs8VukrV$<ipAYNprV?6cqtKj^qY0mEs8W#errW2pq=FUorqH3`
q"OOXqu$6eo)A^cr:^<hp\4ONrsJMqq>UEjrVlWeq:tuNqt[5k$2jSnqu-Nos8;Z:rrrAtp\=Xa
aT$b~>
o`#9EKtZ3&J>_\XJZeG@#+U4As7jBcrI=mjpAYMNh4p%O\:K:BXb4=ErrL3mnc&[_Nh#_@$h&V4
UQg:ZM8RDoeFNV>Sc+'ALRNmH[dF)&reHH/pAV,TkbE['h#@DkTrS,"rQC7Y\_?EFr5b,Irs%Ye
JrmM"rQ5(i~>
o`#8r+c!]i(gu$o)f+mA#"oe@s72*rr>5O,pAYL;_,iF]I2X,TC*&/frrJRsnc&[V0h_-<$fW!i
=?IE;.$C#QYk%eo:&Pn3-:f6rHgUhAr?a1&n,-hGeQ3Sirn[STN`E+Z$MpGQ."Jtdo(ne<c2S!t
B,idX`V[dWJ,~>
o`#<sq"XU\rVZHeq=smVrri>rr;??epAk0crsSStr;HEcqu6Nfq#9.M!<2Ng!r;Wjo)B'kq"X[Z
qY^-aq#'^_!;uij"Shlhq>KXZ$MXQ"rqZKiq"OO\h>[QUq"ibF!WN#Grr`5pp\Ode!VlT=rri>t
p\OjarrN,smJd4dr8ms/~>
o`#<FQBR'5iQ[ReTS_4frrhbUaifS>J,tAdpAYMRZ-(dcQGN%=L5GBVrrN,ko)AgjT8<.2rsSd\
PDkl\[F(86O3$nl$-RjLKpTE5RGRr1rsSXQo)J<Ycd%N$L=b8]!q_JRg]%<>aOC.liKSkmq#13o
pQX:UrrhkmLU?.<rrME+mJd4PaQ<GP~>
o`#;s5WU-=aJ:k/;^es?rrh4ESY7S3(]bi.pAYLBEhC!.6'(!.,UhX/rrN&`o)Agh;((Z#rsS]N
3\Ec>H)s521n+"8$)&1Q,!pr@7Do)krsSH9kPsaOW220e,e)V0!pVIQg]%<,S(%B?a?:ANo)8Ri
nNFA-rrhIs-?m`1rrLcAmJd4>S)s[#~>
o`#<tp\XsfqYL-hq=smUrrDomp]('hpAk3ersSW!q"amgqtU!]p\`>:!rM`ho)A^erq?Zor;$0e
rqQK`rs&8pqYBm[qs+1hrV-<iqu-Bequ$9eh>[QQqtf(I!W)]Crr`/mp\Fae!ri#nli."_roa:_
rV6<arrMunmJd4`qrRj.~>
o`#<TKu<E-[C"9HUPdXjrsPu[J;8Z*Ju#&iL%+j:$]Vc]VV_9hMOK3Kd*DXm\U_ZirsQerJ;:,T
SsnF#NU??;#l'Xi[@`5*]_Umn$fcd-k/#rTS%-Y5]A<Jg[)TT0rrK=7eGfZiJV'ZrrVlrgREk-u
!P\9jrr^r<anb]2!O'*%rrK=7jo9i~>
o`#<8,*CreH$?4B=":WGrsNW[(aU"9*Ec;X+li=s$S[2n?GlZ'.RtTuWQtMFIi+LBrsP,0(a`_"
:.N"R0\u@##k:'!Gu,h,L%O^2$d0CKd>u7X8q*F/K\cY0G*dX3rrHtfeGfZ8)]`&ZrVlrZ7]#GN
!Jp1,rr]enSFlRU!H!DTrrHtfjo9i~>
o`#9qp\FX^rr2chp\X@X$N'Smp\4L_rqQ6`pAYKoq#(0kq>:0gq"N)6!r_lhnc'!pp\=^ap\Xpa
q"OaYs8VltrVQ?brTX=irV-3aq#($cqY^3bhZ!]Wq#C3FrrMlmeGfXLrqZQlrrW/prTjIbrqHET
rrDlerrMlmmJd4]rT4'0~>
o`#9<L7Y0Yp$8uCJ@Y(I$Gh:XKRfremZE$tp\t[$L5=(Qnt!V``K5cLci4(#J>;Z7$dsQbjM6Pi
hj94NiUm-TqP9t@]RZL6l2M.RJB!J'aMG9`afU]^rr_VJqlSZR!r7Q5eGfX1m@!PDrrUi@i9UCE
n:L/nrrW"`q"F^hq1\#"rrW"MkN2_o~>
o`#8b,YhF*m+QV7(k:rQ$BH,h+;eD@h`)H[p\t[",:92ak=q#nPr0]Xci4'Z(g->.$`t7"c&=!7
`'Ppjan5T<p/tY3Kc!G0l2M.=(mlg&RZD`(SSC+?rr_%3pM/L`!qRSaeGfWnhF?],rrTYua6Wa,
j;m:ErrVdZnb2tao-)TNrrVd8e)gU[~>
p&>Eup\4UcrqlQdp\=UPrsJ`!p\=[cqY:!cq=jmtrqHBkqt^3hp\ap_rQkKFq"OaWrsSc#r:p'b
q>'s`p\smd#Q=Mnp\=X`rTF1gr:fs]rqlWirVlTihZ!]Sr;ZTWrrE&tqtU0lr;"e@!WDlorrW2r
qtpBnrr2fdrrMukrr3#tr9O@arVQQfrrN&nqYpQprqlKj!W;ckrrN)rli2J~>
p&>ERJq28Go#.edJVpDnrsIS4J;V_IZ&I#JS+lpko75Wr_4'65J^hAaj3[f.qiH?inc'!IR*1YY
c(giQQ%8N$rs8GZWIfY_^sLs$rsQr!J=uSNc*#mmMp1&X"/s<@U$;R[n$om@rqZQpd@J_c!T(0^
rr_kr]__R+"Rik1^&I[(!Oe<nrrLirli.%=_;G"e!R[J7rrhf#\@qn;rrLN<r;QfOb3T(X~>
p&>E4*#PaOkEL!/)_5@arsHRZ(b2QSE\F>U9)&>okSV)7N_%$s)R+u8bg?@lpGEf7nc'!'6_QP,
UfU9a58`_\rsA;<@iZCGNN'hpkl2$](`60<NML@+jXm7arrZ]!s&A7_"Q=fYL].&K!N]#DrrL#[
rr3)aD2%Z\rrh;0IY[morrIF2rr3#3T'QCY\<"W.q#:Ar:&=kmiI662rV?HoXA/Wm!PG#is*t~>
p&>0mq>($crq?Njq"X[PrsJc"qu6NgqZ$Tpp\+Upp\Xa\rVcKcrquNhd/O1Cp\F=Y#Q+8iqYKs`
r;QHjqYp9oq"OU[q"Xg^!;kgV$iKbrrqlZls8W#or87MWrV6Elq<It`rV?Hmp\Xdd!VuZhrrN)r
nG`Xjqt^$co)ApirVuloqu6Km"o\8rs7cE`rrW2or;Q]srr)*]!rVllq>UKkr;6KtrV?Hmp\Xdd
!VuZkrrN,tli2J~>
p&>EFSt58AL4OoNPEVC$rsJLOa7ml=Wr;taLA1]Vqgc;>PN1SRMX/N;jO!o.V1>9/rt`+qJ?QG;
`QNjaJ?,]=R$j1nS"Q%3Jc:0%\c)R)k5Ph3JA_#mjOF50f!s5errh8?r:Z]HrrqD[p&'?Zq>UJn
anbr;jiHrk"S]a%Q07`<#,(#Vo"DR&qu6iZVtKt<`V'64oRtQirrM]IlMh"bbbWDZqYpSoanu)A
ihuJIJAq?a!N4';rrM]Ili2J~>
p&>Dr:/0PB,8hA#4$#dsrsJ66Rdd.-AGcD_,PV3Hp_\W>43PYb/)-j:c-ZIl>8UB0rt^##(i=XI
QD#<:(hR;K6Ua-_8Q%c;)ZCQUJ,90<k5Pg\(m=3?cE[EL[=,=;rrg@tq<guBrrpPQmJ.Tbq>UJ'
Sb`9dd$sP)"RqFD5L]3'##i_FkD+NIqu6iB@.!b,QM(7ZlQE/*rrM<#lMh"`U04,bqYpS(SbrEj
b$aW4(mb!t!FVJrrrM<#li2J~>
o`#9sq=s^Zq"OR\q"X4U$2FJpp\Xj`p\jj\rsSi#p\Og_q"t'iqY/A:"8hlgrUBgpqY0j]q#'s_
qt^!^rV$Ehq>:*hr<)uop\4[^!Vu`YrsSc!rqZNms8Dcgp\WkJ"SquqrqZ'`s8N#t#6+Gus8Mcg
q>UKirVHNqqtKj_rrE#ss8W)rrr`8qq#0a_"o\2lqYU9grs&Jus8W)mq=XagqtTmb!<2Bc!rVon
qu6]krVZ["rqZTorqH6arrMlmp&>$kr;Qcqrr3)uqY:$gs*t~>
o`#9SU5XVdP_PC9LmIE-$C';6JAo$eK\V+Qq#:`cJ:OrKOI!ZLnZ.2err^'$NnEk$+0gO$P*=+a
MoVZERXfp>LQSLSf%f*6b,^&COH,3lo]Z;_eU[%_f`2!3S!Sc>i;Wu[R*YfrSac[ZmJd+in##s]
pOK1<rrW"Lhu!EUrjdT5rVlotiVriXp?VYV"7DA=j73-Qhgi,:_"7F&#4JGcs7_&Ap&>*+O8\kR
!r_`hn,ELhe>_R-rrW"Lhu*KYn##s]pOK1<rrW"LhtI'OrU^!drs.?Zs8LKJN8X^8J,~>
o`#97<\G:O4X3"D-:$qt$9c*o(m]V@+M\ibq#:`O(`7=e2F35Yj_#FWrr\3B0t?`Q+*&Q=3]j*<
/=B`[8/N0^-9,D#[(jGdSn8fV2DQd^lKJ6UZ5DG%\GuTP8OFMNi;WuZ7&^.9:%8/`hVJ22#3&q^
s6pk4qYpWh+2n'V"8mZe+8u3?rQ5'=!Unb?rr_1?6-Sm!"iV='C5qKSrs%IgpAaV!?hOF#Kf&]%
rrW&]qsXOerNThXr;Qij+2n*W#3&q^s6pk4qYpWh+2mmQ!rD0YrVm,<s8W&#B.q:(s*t~>
o`"pirq?ZmqYg<dp\4URrrE#rpBLKip\Xm_rV6C#r:g!]q>UEmrVlfjdJj=Jq#1!Vrseo#p\F^\
qu6Egq"jpfpAYBrp\4LXp\OjQrsS_uq#(0lrV-3gqY]:O"oS2rs8Dcjrri>ts8MlmrrW)lqYpL!
q>UEorV-0crr`8sp\4[^#5eH#q=sm_rVloqqYpKqq>C6ls8E&oq="@`q#LBfrs&;us8W&lqYC-p
rqu`op\agd!<)ol!<)<b!W2iprr`8sp\4[^#lFYtrr<#sp\Ode"9//kp\spfqtpBnrVlR"rVuos
q#C?hr;ZWkrr7K~>
o`#<UJq\`@X5CaLJ:uD>rsRh;J:N<USq+>mJDp;'$eBiiMP0P>in3tkJEHk3rpB^gnqbqSrp]ps
aG,55]RmrbUV`%oc0k<*#hXoaR=Kjrh>HR<$bV"QfDkm4J]@>hbM`C(c'eS2fq&$?"R`DlnZ_ul%
K=>!X8i5!U\"Nchgi*3rso"lZ[dacNf^sSqko_/M>dGY_Q3_:rL_42rri)hNhH7<rr\gZf_tXG#
QCLis8Uu,[/'_*lIXbRLW]Sq!;l`p"Pf-+NnWq$(&l)'s8W&^Z[dacNf^sRU\"Nchgi*3rsJ_hZ
[dacNf^sSqu-O*gl[q`gAh3DO8nF?ec2o)rr7K~>
o`#<:*?c7cB>fiY(a#sLrsQsf(`4B2:DeMN(s)LP$agg/.oPR/b.$iq)!:hur9aLek9mber:'^r
Rj/b=KcH*+=HG:RUu21Grs6+\*(:\^H,9=ArsOMt3k,.hcPr59G+ddn"f+Tcs11r%rrh7ps5n7u
rsepm*bPHPr)i1_s25atr;R9(eoV`Q-8IK7s7]nbYUKJM#*<Kts8#Q_rr3,jlnVN5nG`Sb7(E-i
rs/I(kl:\$(j>`T"k^;seKpjdrrDimrrg+s68?.@rtYHn\c;^,eoV`Q-8IK7r)i1_s25atr;R-$
eoV`Q-8IK7s7lQm&&:.k0tdPdk;<4h>I4?MZMslS~>
o`#-pp\4O_qYC-b!VlW]rsSc!p\Omcp\4LYp\agd$iKbnqu?Zlr;ZfqpZDJUq!J+]q>pQjn,Ego
q"jd\rV?3`q=j^ao`"phrqQHd!W2l_rsSVrr;Zcmq#1-jrVPRR#6+Drs8Vrkqu6fqr;HEcrr39'
q>:!cs8W#prr3&rp\k'j!;lci!Vu]lrri/orqZEirseu%rVuoop\t3mrV63`n,EIfp\FR`s8;lr
!rDZiqu6m!q"ag`p\=^es8;lr"o\5qs8Mi\rrW,tqu6<jq>L9ls8;lr!rDZirVllprq?HhrVccr
r;Q^-rV6BlrqZToqYL*arr<#orr2qJ~>
o`#-\J;1;d\#0.T!K6./rsR2(J?J+;J:aM^JBdlh$eBiZ^\[E$ec5[+JEQq5plFhB"1#)hVsjWo
cAnreP2iBkV4)q*p%87dc]+9PrdY')_<L=d$]KV_s7NXXimmnY^u>:tp5A&4qmW-nrrfCRieiis
rs87m^7E[Os2rgirrTWZgAV$U_M!GiRGn)Crrr=oWV!$grr3JnKAuq2[".KBs5B05P54VI"5A?r
r:p9mb1$@i!k*X5qu6o^Q__9sJW'F)rrLWprr3/UOmE&8R-ahYbO`T(J:O'Hr;Q]sb1$@i!k*X5
rVm)=KReT@iV`]T!S#Eort*nHli6C?s8TI.`0K`is.o8cs*t~>
o`#-K(aF"?I9lgh!A)agrsPeC(i.W8(`cXD(o6s,$agfjMY?%EZN'sA)!Co"nhfb6"*88#?gn"'
VD;aA3QkYJ>Y#]+m.C;[V_CFnrYP\]O4N[t$SE9qs6Ob_b-UcPN8ad@mk)lcpj>g5rrcrAaso:J
rs7mmM+t&Ns.6CmrrRK`]`%j7O<>AW7`bH*rrr3u@d733rr3J\*QnE^Fr8s5s2d>t3V2b?"2,OE
q=ssjT!&(m!dY]rqu6oG6<T"X)_LjarrKC%rr3/6384Di7-spZU$.R\(`5``qYpKqT!&(m!dY]r
rVm(`+;bqbaSPo9!O8O$rt)e%gAg%us8R:XP<[q(s'"Xcs*t~>
o`#9tp\t$`q>9p_r;#a[%K?,#qtTs`rVH9_q"Xgars&8mqu?Znrr2our:fCS!WDc\rri>qrqcN\
rs/Jsp\Fa]p\Fg_!<2Qh$2XDkqYKs]p\4RPrsS_urr;ckrqZEeq"WhJ#5\,kq=jXZr;R3(q#1'e
qZ$Toq>L<frr2uprr3'!p\=[d"TJ>up\k$is7ufpq"t$i#5S,qs8;Werr3)tp\4XTrri/qr;$?f
rrDoprrW2oq"t'rqY:$hs8McirVm6"rVuosq#:<nrqPj[#6+Q"rVlQir;Qcnrr3'!p\=[d"TJ>u
p\k$i'_qY,s8Mfms8W)ns8Mceq#:<nrqZNmJ,~>
o`#9jJa0IiVn.Sjb*hYs%I8W#a,#\efr]dTNfi)nrs/C\KuEu^eaNM;!nVu%kl1_EJGAU5"RLp0
ZcDP7$d4WbS'6P9R"U!?o()efY(2P?W/$7\Kt73NrsQ\on+Vgdn>*@sMN?`r#-j2qSqMWbr;R>k
Q.W:kW;lnYRcO%+rr;hprr3)pLPc$/rrh`2l\FBrrs&J%ZHncMr;Q^#T<eLsaafu^rr]f^K&lD#
"ImuoV==?]!W&hqrr`"NM>mGQ#I]]Us8VS?_uBZDrfQ@Cs6l9Cs8VJPm/I:]b3e*YLYr(1!W&hq
rr`"NM>mJR"RX=sLYr(1(&j?Xs8VPRnGiOUQN-K-JsH!.s7WAhs*t~>
o`#9`)q]*H?\0JJT1//I%GMo;RO9_A\S;ru1,uuErs/3O+d;igZf:ua!k0$Ekl1_-)"I(p"Pb?Y
Fd_^u$_]F"8Y[CF6m!6_kOSW[CD\gP?m[??+b9LYrsOo*ipe^uj'$MI.Pp&`#&uAA:*:BJr;R>X
5.>F:@/p8O8Bp<br;ZJ%rr3)i,q8cjrrh2KgEji;rs&F2F/V6[q>UBu;02d;S/>'$rr[cg*6msP
"A6&0>iY\\!VU+(rr_a:.K',D#CA;Us8V+"P5bIhr&<%'s5H<(s8Uq@m/I:RTAINP-,oi_!VU+(
rr_a:.K'/E"Q#['-,oi_(&U#<s8V(Dj8]/95l]pd*Brfhs6j@os*t~>
oDejbrV6Qmrr)WZrs\l#q"Xgdq"X^`p\4R[rri,nq"t'hrrW)lroj@_rV,a["Sqrnp\jR\$i0Pn
qY0a\p\=^^qsj[mq"ja\qY9j[p\aIZ$iKbrqYpHhqY^Biqr@\^r;-0_qYgHmq>C7(qY9mdqtpEk
q>UEkr;ZfprVlfuqY0jarr`/orV6<j"T%leqYpHn#Q=Gts8D]dr;Q]tq=jdTrs&Gts8W)or;6Kp
r;HWp!rDZfr;Qiop\t0l!r;Tirr3#sq#:9oq>UBns8)*^s8;os!WMllrrN&rrr3&rp\Ogf"8hom
q#(-mr:p9k!Vu`os8Vous8)Kbrr2ouqu-KnJ,~>
o`#9nJ;0PfURK-gh3@=,%HW/(NoAi]Mm1BTJ@bURrrr:_Xcg6brVlr<JG&.+!SW.nrrf15fn/>S
rsPKMZ)iM2WJ?DiQc/Ip$MoscJYof8Mh$E1mf*[>JASA\gS(t#ql%HorsASNXaubHg%aHqr;R>-
Lo(*d]`69Inc-2Is8UO1rr3&,J?&SJ"oZ<*jc09<rrf]ZJ?8;>rs.8<q#B#uJC=Gs!h4_Rn,EUI
U&Y/^V9So;!Rg01rrTQXWr;r(rMP27s8VqaJFNR<!S3;1rrK"_rr3#(ZL%SqdE_dlm#D#CrrLR2
rr3&,J?&SJ"oZ<*jc09<rrL]2rr3"rli-ngZ*OD:J<]^*rrL$jrVqB~>
o`#9h(aM^T=@\S2_*%,b%F?"S1!%7!/9%7!(kVGWrrr-XC,pe*rVlqa)"$Pe!k]QQn,EMqMRa_R
n,Eeo(ij:/,[r&Oa$Q!hoD]0k3b'(7G;Lif*OY>8$`"W$B(*E5FfG+DPiViNpT80J5CL*4`D-:1
&7[(mrJZI1V+]tNJuSeMXjd:L!d5DkrVm&uO@.AKrVca!Fr2'0jo,2a].rmV\JlBfrr3$k(l.S[
#JX7<s5R=ZrqucsXjd:L!d5DkrVm3$?Pqc%s7Jo"jSo/`[5%[\s'FIZrrI.]m/I9kVZ6\O0`CtM
!NjiMrrR?\AGuN3qiF1l0`CtM#.62bs8QE[rr31CF8pG$4mW+I!Kjqks*t~>
o`#9tp\FRXqYpHkqYBOY$iKbqrqcBdrr2`fqY:'mrqH0crVm$"qtKjakl1\]q="=dr:p6hq!S.i
q"k!bq>0m`rqcBgnc&spq"jg`qY9m^p\jR\$iKf"rqlKerr)`irT*t\rqZ<dr;QcmrVm0&p\=af
q>:$arr2unrr2uqrr3*!p\4O`rrrArq>U<hrVluup\=^ars/Ats8D]ip\t0l!VcBWrrMrnrVlrr
q>U?m!;lcq"9%ugqYpL$rV6-bs8W)oq=jjf"o8&qs8DlprrW/nrU'UhrV6Bls8;clrrDrqrr`5o
p\Omh"o\5lrquZkrrr5qs8W&qrr33$p\k*cq#:6l!;ZQmJ,~>
o`#9_J=21H[di>#\!ZR_$dsX3n#h>TmcpBoX8)\sl\'rGrVm#g\:B;)kl1\5SF?I]er/GAQi6FR%
/uTnmuO*AO2LFiJFN+/$K6iLR)H@hSXP5an,Eg?MuN.WQF-#@]VaK_jo5GTTRt\krrAqprt+IHN
V<CC^9jX1s7hiWs8U(;rr^u*KsUdY"lYcEp;jcBrr_&,P2Z<<%A(uIgkX((o)JagK8fWprrJeDr
r3*"a.hktrrC%;rr^u*KsUdY$K7;$df9@@S>Li9rr3.t]`8#laSu2@gO\PTrs%YMpAb06\GZ@,`
W#l>g44m`rr3/\QDXAs\GZ@1UqHa-j2h6"#2=^lnq3+srr3&sS,WBdJ,~>
o`#9M(e#bqHKN>EI7*E%$`tFiibKWehq1^AB))B.g)hEMrVm#XIMa6lkl1[f9^hubZn9546Mp9P%
/iM'i\XJD1m-a7)!(5e$HOW@6^2dF9h6A9n,Efk/c=O]6$D&2KjDIijo5GJ;B<%?rr?C(rt*j$0
^o$9Lj)qms7&8Ks8SA`rr]kM+a*ea"irr8n!eb(rr^%R3Q_0u%8O#)^a>`nkPtSZ*\R*RrrH$*r
r3*!RTJ2@rrA>`rr]kM+a*ea$HPILXoJFi93iD4rr3.)L&_1rRf<<g]c,Aers$t6n,NEWIJj*FQ
2^dc],2]6rr3/C5[NoKIJj*K=bZnUbF8G1#/(r(k8l\Jrr3&p8cAVfJ,~>
o`#*op\4OarquNXrsJc"q"O[cs8;fjq=jmsq=jdbrr;urrV?3_kPkS[qX=Feq#(!bp[8%grVHQm
q>1*gqtp0WrsJPtr:p*cqt^$]rUBgqr:p6cqZ$TnrVcNeqrIbXqu$?k!;cZo#Q"2ns8VifqYpKq
r;6Kn&H)S.rqQ<gq>L6eq#(0lq>L9l!rMclr;Zfq%/Bl#q#16frr<#tp\aL[!WMlkrrW2pqu6U0
r;Zfrq"apbrVZKdr:g6krqZKlq#:9srqHEls82fq!r_limJd7cq#13l!Vu]lrt,,.s8MfhrqZNj
q=smfs7uWlrrrDrrr<#qrr33$p\Opeq#:6l!W;ims*t~>
o`#<aJ:O]sl@sh>Jqa'hrsS7FM1W86r5m3WRJlp\%&8?ejluO.jPu_[Mu2`<!QV81rs&:YcE+$t
rU9aohm3:FT!IY&^V>U#nG`i\W6:6ieAI`@K&cA#%F^EoN3N<\ceRK8U;?chrrKm_qu6])qYpL'
Y(>F/rI]X$r;Zf<\c2U?e,TI8MP'C/g<cUXeGoQEhu3QVa-$)ort"tYk(s#_N8jl&pAb0XJB[K^
!pY^Br;QicQc&h&,Lc\mm>@P*S_DGcP1,']s66!$regOOs7M$6s8Tt4s8V)4[I4%srlg8Urr3"p
hu*Kce,TI8MP'C/g<cUXeGoQEhu3Qcon2c6s2+X4s5Ja?s1"<arVloJ`;KXc~>
o`#<P(`6oZfcq=N*?k+DrsRa%.3*g0q44<]7Jll[$s4@&cdqXFc-/cs/beK/!LdWirs&'KV.aE[
qsXOm`H2(.:NP0XMMikSnG`h[@A,JHZ'%XD*R+$Q%B_S(/oU^eW5$G$=-!.=rrJ%[qu6\ApAY(#
CDjtgq]-MdqZ$SaJH#Q[YQ+XY.oG>$];\jlYlF`,`Vof<RQ'^6rt"e4dO5!k0?X;Yn,NF?(o-R"
!nf1%r;S5&6]qBJs0)J&h()@_9tRB+3NaD!s40`Er@7I>s6Ulgs8S2Rs8U4cGjbS6rLtdWrr3"&
`Vf`IYQ+XY.oG>$];\jlYlF`,`VofIm2k?gs,cpRs2lO1s*d,orVlo'PPkH2~>
oD\pequ?KhpAk0[rsJc"p\k-krVuomq"F^pq=jaarVl`jqtKpLrrMrlnG`[hq"sj\q<n7jr;6Ee
rVcTiqtKj`nG`akp\F^`q"jpfq#LBkrr`,lq#(!g$iKbnqZ$Tor;-Hir8dkYrVQHk$iKo%s8Mci
s8W)mqYgEpq>L<m$N:#'q"asirquZlrVllmr;RN0q>^Hmqt^$arqH3_rr<#qqu?]oq!S1^qt^74
q>1-krVuikq>^Kor;6Hms7lQiqYpNpqtpEnr;-Em"oJ?"r:g'[rrN#qrr*'!qtU!drVllmqu7$%
s8D`gs8W)rqu-Kn!;QKl!W;fnrsAT&s8;Wfs8W#rr;QforqueH~>
o`#'jK"LoRqg\\0mf*[YJ:ubYn_4$CO,s86rsP6IZ.mpqbaZ5"Rf;ON!MZgfrroop]Tn&:mf*[G
\B^Arg9\c8J:Q_MrsQr!R)?dtX3%*-UYu(M"1!]De,'(Pc[^PRs8V*-\,!D_jSo8=^&%a;f#@[h
n:J7Os6P9@rr2ouS)F;G$Jb[CNM61Jo>nl1rr3&tN;`_T(=]/Zp><c^MT54?PEP83s1c)Ds43;1
n,EF']DDOKpS+kks4mY9NM61Jo>nl1s8S&=_liP0s1H8Ls37_Grs$F>s3l_(rUp0s^>APUmG>L;
RcsbN!rS#Ur;R,Zs5f66q>^'-`8gjs!rS#UrVloCY5\G-`;KYaL91@RaS5W4!O_:ls*t~>
o`#'f*J=)cq\T=_mf*[F(a$Qnk.L]n1Gen%rsM7:Ek]'8UIp.b8,VTN!EO1/rrmg0L-?PImf*^'
I\o<G]6'="(`:Nsnc&uf(djIJ.;#)N:0>R8rrrCC-8ht*qu7&&(`7PurlVEloQI_)rrL/qqYpu3
QN.!F*.e.ih&(/1rr3!j`r>uL_#Mb8<V6=URZkqos8VmJqu-O1YZ^nm`0+.OQffJP3SON5MgbX*
[5RpNrrJ"0qYqW,<c.m:_#Mb8<V6=URZkqos"DZ\Cut]sKouE8Uhfu0#*\l_Xs7ZXp&>>S_sQjI
_hL$>eGfILq(MXCrt*!GcnJJls65u9bPqPAq(MXDrrJp2rr3:gq>[TBC&@q!nGN:eGhi5sJ,~>
oD\jcq"j^bq!J(gqY0pdqYC0kr:g-`rsSf"p\=[cqu$Bfq#'@U!rhrjnc&gmp\=U^p\F7W%/p)$
rV??fqY9m\p\s[^"Shihqu$Hj!rVfkrr3#uq>L$gq>U<l$iThss8Munqu?Zjr8mqZrqcEi"T&)s
r;-Em!WMuorrMrprr3*!qY9s^rrN)pqu6iqp\4IZr;Q]srVZTn"T%lhr;?!_!W)fjrs&B#s8Dfh
qtU0mrqucns8Vrts8)`orri>uq=sjXrs&Dsp\4IZrVZZrrVHEk"9&)kqtL*krVHHl!W)fprri>u
q=sj]rrDuos*t~>
oD\lEQ\PBf!JpaCrsH2cbi,Uus8UQ"c1h5GidlWAeEaZgetA)Hkl1_TKXC:L#5!Y,XLs(]mf*^M
^")85_Rck0R"9hUnc'!nM6NJ`ago4*aarINrrMkbrI=p:lMUYifmpa8n_(=es7(rsjo5DHWrDkp
$N@0es2qDAs8Vf,r;Qebnc&OkfW0hDrV6BnkHb$c%/crQJ<-YUqZ$TLcMRV@"oGQVXj>D_rrKCn
q>Ua!]__Z\X,+Riq>UN`dI-u5"oc$Ds/k\frrr)3S<1_ho`#0paI.a8PHj!BrrM;gqu6fOX,+Ri
q#:BXZMa_'XmQ,f"nf^%ON%4orrLCDr;V9~>
oD\k466uFF!@Ia4rsO/kU<$tNs8K/@V#L/h$d'A)26bhcTX7WST'61Uk9"m;rs%a6-u"AP?gdq&
^5'#A7Z`191.)s!hXUURp*joOLn0'UPFNT7rr3#g:&Pn07G.P<$b7+.s5pn;OT+>j[H7Dif4FmV
rsSa>b5\)Gr;ZfbM>mJR!CQ#KrrfiE-]IrtrrLVjr;R3$>8\87@&ir#s1G3&rr3/rE?&_kXR?)h
ET6fo#lB>Ls0u\hN;NGN!oC$:rVm'!IY@`9hZ!NYm#F^sQMpIU#PslY+Wrje_YjE7e8tNe"Lr(l
N;NDM!Ru2grrHlkrr3/gN_;9rrV6BnV#C5kJ,~>
oD\mdqYL0b"T%lfqtoj^$N0Yoq"k!fq"OO]p\tX"p\4[bqYgBjs7lKTrrW,mq=4IhqtKm_p\4LO
rsSc"q"amaq>C6gp\aO\#5n5mrqlTlrqulnrr2otq#0phr;69frVm'!p\t-er;Q]sqtK4P!ri#p
l2Lb^JcEC_J,~>
oD\lBW3cJR"ba.2N4[*ursI8/U5ZSQc]*I+i:m6Zgjk+Ce#hZbci0-=kl1_,J>_r;#0)=W`IWQ7
mf*[<Ng?<nR%MRkW.<1_rt!A+]Bm/Gle^RVU%/0_qNh,2"G+n=MW"I5$dsRsige<os89liqr[n[
lBq5.rrM3[rVloqrU'Xbqt'gfrp0Rar:Bphqu+8/!W2iFs*t~>
oD\k/@!)Ab"X%e%08#V[rsH"R<\AgbW%]&+`qTK@^_e6HYA27oVu8]-kl1^U(gun6#+-MhQ5^ZC
mf*Zf1-naQ6r9T;?l5a0rstnFKAD3@gV_(L<TX8\og&Kn"<4;,.`_Mf$`t91b"S]4s8&**pu_SX
fL+uhrrLCBrVlonqsFCaq"OC[!;u0_!;Z6d!VlQYrrE&JrrMoln,ECekPp&~>
oDed`#5J#kqtKj_mf*Iep\Ophq#:!fqtC$tqtU!aqZ$Hlrr;chkl1_[qY0O[!r;clrq?Ehn,E[l
q"O^ap\Operq?EhnGa!tq>9scs8Vrps8)`ps8)Zf"8i,rq>L<rr:g-br;Q]trVu`VrrW/orIP!C
s*t~>
oDef?#_@f$]YT>QcMI#0"g3BWs6u3NJ,m7UrsQl(S@c'(a7o<%OJ_7A"/DiHq""FhVUWeAJ:O]h
rs\%GJ^M\o[/IanJ:P,ursnIga-YTWqQ'>iW9jQaZi#=U\GapRrVm5VJC0h8s8VoRs/G/\!o8q"
JcDJEJ,~>
o`"pjrYPnY-VB,S,8d9Nn,EQ-(his13rTrrL%bNSROLm^Er)3nn*r;Bkl1`e@iOt/rruf7TH+jd
B(,a.d3fg4U)nOTM]ioSI.7.Gi(f\-^[q,2n,HeOs8I0=(^#6`Z!@8-$FUeQ8$W*ooZ@,Ck5PLu
1X^jSUAo`~>
o`#'kp\4IYrqccqqYBOY#l",nqt^!]p\=C\$MsMprVHNns8;Wgl2Lncq>0jboD]'pp\ssaq"X^S
rs8Mtp\=U`r;$-ep[8%ip\Fddqu?]qrVHNnr;63jq"O[[rVlrtp\Omh"TA>urV5XW"TA>rp\f[C
U&TW~>
o`#9=J:NKO\\lJCWh/VX$&"N2\Y"D6JrBX$rsGfZe(h4ps8UDt`p*L+ka]#1oCMteo7HUrZAOLA
n,Eg5Sq)d"gWPtEJ:NFMnG`slLS!Jd_ts/rk,IbJd/8CtJV]'!KDYZJ$ep32r;ZfTo&\Y_rp'Ld
kNfI.h1>U"s*t~>
o`#8d(`4Z&J!$28A5DXn$N;,.iI=]A2'"7Gp&>A2*j3;!h>dMR*gl3l"Op(f)!UYl#O!2o2018r
D"%B4OA?]GA\Oj+0c1`RnaQPfnKgrOd$"(mi6l)ks/Go5"WA^4PTKW!rsQOX@f$-)`ok[_-iE90
"Ou.I,/Jj1U&TW~>
p&>Erp\4I^q=sd_rquZ]rr`8prV6Bd!rDZdo`#<rq#1-js8Momp\FdQrri/oqY1!\rs/JsqtTs_
rqZ!^"Sh`gr:p0`!<2Hes8!K+rr;lkqu?Hhs7uE`q"OX]qt^'_rr2p)rV-<ks82fkqu$6Rrr`,l
q>GmET`9N~>
p&>E#J:O!RVN.1`pW:&8rsA7HgQR/BL95ufo`#<6Q/g?js6RP@J=50WrreplZ@ME8rs-f2]98)W
nXJtH"IFYYeWp,a"+u2Xp$_nsXKnG_rOnrAqi9;.Rt-$QKX.\iR%9?'rr3>[JFig?_Y9nIc]IDk
"0mQNk(3Q*s*t~>
p&>D3(`5Tq?8>39n=5.!rs@j*^,d)U,\e/So`#;W50U2(s4iR#(e24(rrc))Eu<p.rs,>ZKK1T'
k">(A"@<rmZ9J7)ruD+]mI1&kBQHr$qhJ44pG'/W8f/C,+*2.G6qoSkrr3>>)!V(uORQJCW&Eo?
"*#MZdXhFks*t~>
p&G'f$2=;nq>'sgs82W[rrW/nq#:!iq"OO\o`#9qp\4[erqcQhp\F+S"oe8nrqH?^s8Viuq=jac
s7lT^rrW)mq>U*kq"ss_q!\5"rqQ9frqcKjrVQEis7c9_q=sg\p\Fd`rVlg(rV-<kqY9mbs7lGA
s+LE&~>
p&>DlV1>MVR@DP&s1+llrs@M5Oaqt7NIZQ)o`#<<J;*:gm&84<J=cT&rrqh@_WcTpoD])_N1kg/
s8S;Ln,EI"Q(e2-"I6X1JrB*t)"WoRp?])onCbdYp\]brMP6$3J;'QOS)aMJ$K$C*rj@u`jS+e9
JcCE'J,~>
p&>Cr>Spk%77sNYs+"2=rs?I\3#EJR0GkY'o`#;a(a7T4ggHt)(f0eirrq9sOOk>EoD](`02rj3
rr5(8n,EH>5?.V!"?qNh*A$[Z)!O%AmbDl2j1:L_nG+=H.TJ0;(a;\n8^.26$H*eGrHLG'cLEl'
JcCE'J,~>
o`#9sp\4O[rr<#tp\F7W#lFDnp\Og_p\OL]$MjGps8;cns82QglMpn["982krUg*rrqH<dqYp<i
p\XFZ#Q=Jmp\=Xaq>U*grp]q)rV6<gqYg<eqYg3hrqH6crqlQgqu-Qhrr2p)rqH?dp\OpirqZDA
s+LE&~>
o`#9QJ:Or!p](9dJ>2K3#e?8(JZHkKJ?neH$DN14rmeRLqo+*3li.1dVPO$TJDg)"$0m,T['&he
oS1!Hrs.8FJUiTrigg!u!9iqP)!?h-aKt$HUp]*Brp,*/a6C4C[_CVuL$\g=$L<5kR=MU@s6lA`
JcCE'J,~>
o`#94(`7<nnGiOT(g$/*#_50U)eYTg(j#<K$<A1irN^t8pQcYoli.1a?!?hf(ru:K$.p5OG&-#0
lQh/Prs-2))&Ocfb"VdO!7gT=(t:.DRW[#?=a@qErRr)iRb!+7H\oZ?+l*(s$JH?"7Mp4Bs5HLn
JcCE'J,~>
o`#<rp\4Ras8W&rq=jdTrs8Jqp\am_q"OdZrsJZ!rqZNkrqlWfrTjIfqtL$dq"OXWrs8MtqtpEi
rqcEXrs\i"p\Fa^q"jg\q#(-\s8Vlor"Ai&rVZ]ls8VlgrVlWjqu6Tjq#14"rqH0^rr;uorqZJC
s+LE&~>
p&>I!_gm9PoDejEk+@=Fn,EZoJ;)+RP_b"XoD]00TC\u@h<;PsK&#\l#/l2Cer>3go`#3.SB&PG
YN`*Lmf*^AJ:XWJM2AI+J;_YDnc'F$N/6*8TYT^:rN6,"Q\!lST?t=Fl)0jGrsJ=IJ<oF!m^)AL
d"24Ms*t~>
p&>HtOr,$okl:XpdSM$Mn,EZ+(a>Js4XVB)oD]/N;<VB1^sn.8*Ph"@#*^74[4iGDo`#5K9::t>
D:`DXrpTjqW#-F\Yp_#=8Jj%SlLFlkoIhQ"Yu?Y0Wr$Q2s$Ia;ePN6%mFP`2rr2p)k85%%ec4QL
i^9_ss+LE&~>
p&>-kp\4L_rrr>tqtTp^n,EXeq"sj`r:g0\rsJYtq>L?jq#16eqX"4erV60^q"a[\p&>Bup\F^c
qYp?ip\jR\%/BSmq=ja_q"ORXp\jX^(]=(*q>:0hqYpBgs8VrlrV?Efrr;ojr;HX&qtKmbs8Dcf
q=ji=s+LE&~>
p&>H8J:O-hrr(<U]o7KEnG`djKoNm._q'Cmo)B';L8E]'a,&gVKs9qD#Mb5pLPV@KXnD]$l%5>9
n[@eaj+c^brsXd<VO<"9\;YrpJ:cYJrtj%>_k4L)e?%uOW;ln&WTC#8VY:&:J^=;p$H@U^m/Q48
L8KO[JcCE'J,~>
p&>GX(`5mFr;*RELFsEZnG`de+u"s1P-c1?o)B&b,[8%[R3p2X+`H`I#JVi?,pl(uCA%T6ef@25
k'GiobTkO(rsUA!?:>`DIP)Hc(`gK`rth[cP#-\^Y\;dM@/p7I@aAB#?17fn)5mH5$C;Sph>bkj
,@28-JcCE'J,~>
p&>I!r;$9jr;6?fqY0danG`akp\FRXq"O[UrsJPqrVl`hqY^Bgq!J(]rVlNoqYg3`rUp0sqtL$f
qu6HkqtTUZ$iKeop\FUYqtp0_rUBh&qtKscr;Q`qq=jacs8D`fp\F^`q=j^_rsAYurVufjq=s^\
JcCB&J,~>
p&>H^c_&M^e\eW-W.C$&nG`aAJ=;"AP(:.7rsSadJD^(EKX]D0N0Wf1#j6kkL9'-mJD'Vq$+YZ4
m`+^om_XkLrsR#8K864`J]GZkJD0Mm(:essjO*T!n#(]Fs8V,;Q%>aA\YOeQr;R)UJDU=SNgP`V
WIb)%s*t~>
p&>HIW)9DhZ]T3e?l:ffnG``q(e5Dc3>d><rsSZ\(rbs<++13i/jJb'#h0q5,A4hO(qTD?$%Etk
i0WG2i/fJWrsPJa*[XrG)jugL(qfA<(Om98c)^+/ia<UNs8U7n59!dVIp*dqrr)j(\/<*_XYE3p
*Fo)"s+LE&~>
oDejc"T&#lq>($dn,EC`r:^3fnc'!mp\Opeq"t'jqtKmQrs8Jqp\k!drqQ?^rsAGsqu6Nnrr2]j
n,EdoqYg9bqYg6bq=jaUrsJSrq>C-irVQKeq>L<uq=jjer;-<iqu7!#p\t-drVZEbrdk*%s*t~>
oD],_PH;^%V4=Qd[.""pSG[m;Y4;N#VgtfG_26&%r5F2FqsOIiX+5c^\B"<0WqHB!qLlYpoZd.'
oT7>drsRScj/dd4kFdX"J?nbG%/QcNU"%$YfYP=hSG<*`#Fg;,l,]gBn,*+kc[bTHNS)I*MXc8t
KE$H~>
oD]+_3bagf>YJ[@G45G29DfV,D"7N6?Pm>MO!p+Wq3DjNq!S.fAf)E1I[]^lAbH'1ocT6Dl_O(<
l8>C+rsQP[b@h`,do.Sa(j#9J%/!dA<Nq\_[uQA69C`#]#>#l^es^!3iqr`^V\nU@0Y!kp.cu<^
KE$H~>
o`#$lp\4I^pB13fq>9[]#6";kq"OOZnG`pop\FX^s8Vukqu$3cn,E^kp\Ogcqu-Nhq=O[mq=spd
s8Droq!S.irV6-_qtg-dr:p$bo)B'nq=j^`rqZEdp\Fae!r_lkpAYBpp](*hqY0i;s+13#~>
o`#9ZJ:Nf6J;'5uTtg*s#MO`cO+;b_q!n@m^4;]C`q]JHNkEMb_!h:0^OWE9b.QTuO-oS>$)<gB
fDjt*`/a``rsRYCL7l/cRE<pDKAc>#$a-:UU"\k2\"eMJr;HWsgO[]Ers68gr3>OnJ[>*%s+:9$~>
o`#9D(`5:O(a2"k<Jp;G#J1p(1`.'EnaZVfM&8iYR.:$10nu8:NUQlRM\p-5T7t/=1ILg7$!9I.
[f=\?P;2k$rsQXt,Z98=7\-_J*lddN$Yrl^<4gpmI9.@eq>L<p]c*gBrs4;sqJk21)0GD"s+:9$~>
o`#9tp\FXZq#(!`p\XL\!WMlmpAk-[rsei!qZ$Toq"aphrV60enc&smp\FXZrVufnqYBd`#lFJo
s8;lpq>'IY#5n5lqY:!crqHNgr:9jorqQ9eqtg-_p\Xge!rDZip](9h"TSDpq##^CJc>`MJ,~>
o`#9`J>\uhO3b4kJAC^T#5411K7JWtn,Ej(J>rSKj,]i#s4r]sp@8.i[Xb9QK'30bc)@0)rs639
T)[(.fVb;.rsR&$Wj%E4_NL%DJC=#g$M0=>jh7smJ:P91qu6`%K&l\+#+2:fb(u%uJcC<$!<7Q~>
o`#9O(gp,V1oPXL(l\"b#OaVi*Z-#krpg!urc]2grr:.t:uMAh1,eUlrsSgQ(ggPhe,QhO?qg4m
#_?M]s.o"j?VTtg$_eJLD_/8W3]K&8Xn)K!kqk3CLN?B2(khe`rrR-ZcM.>C6XKea-8:p?s+11M
s*t~>
o`"phrq?WorqZ<aqYTj`!WMlnpAt*gnGa$tq=j[as8)Kcs8VulqY0gWrs\o&q"a[\rr;lms7uE^
rsAYup\b'krr)flmf*[mp\=U^q"sp_q"OdYrs8Gpq"ORXq"O^]rrW&lrV?HtqtL$dp\Ff>s+14M
s*t~>
o`#9>J:N<kl)0*)Wk%^##4[t/J:XTXnc'4#fq!YZqYdjUUAFetUpPZArUg+!n"u#4L90qF`45W3
L&:TD$/gMfbQ%V9g"WInrsR/)NOHKc^pJucJEc\*$2L0CQ\(6OOb([Nrr`8'NSs[5#QDPie'!<:
p4<6ps8W+L~>
o`#8e(`4BZemK@mA:O1M#3J,e(`H`)nc'4"\kO#-p%s(Y=7uE==`tWSqXjdsia"--,AH<?P^`6q
+nt^1$-+5,U&P&Z\\;M?rsP_F0RAF<NHZj=(t\BZ$1gn/66%^(2]A:`rr`480ZX%i#Q9Z"YFlb7
mt(Lis8W+L~>
p&>$irq?]ss8D`ks8Mfko`"phrq?Hgrq$0irW<#oq#:!uqYU'^p\Xj_p\=[`p\=Xaq#:j%q=jgc
p\=^dqY^6gq"jX_#laSorr;utq>B[\$i0Spq"ag^qu6Ngq=O[frV6Bd"Shllq>L$e!r;Terqufn
#5\,hp\=L[JcC<$rVqB~>
p&>KNJq/R4s4`Onrp#Tpq=agmrlU"HJ<T<krrrDml-lnsrdYN\]9@bq]u#k]Mp]InPdocQrql^*
d[Ps5g4>4Gkd/CNc'#$ursAPnK;Rr6m/EO&mf*]_MR]"I\raYod$CR,p&>?TP_+O<LrRW+iV3?`
rLSVKf@A*`]W$m@Jr"rnrIP!"s8N%K~>
p&>K+*>fs<s1L,0rRa$5oCi1gr1>8P(d$IDrrrAaeuj$IrYQ8^KK9qeLQFD2/Zb-Q4atTQrVZQm%
]r>HT">mneC8W2R%u`Mp&>?lkoF'_s5!WHXR?)s6n<^R<e3/bhl8tJqXsjp_E8hZ(abTB7`b?(&
Gf0BH+1,SPD3O#(`Xn?Nr+D-JcG`LJ,~>
pAY9pq=jX\qYpZqp\=a`rrN,qrq?HirU^$hqYp3qq>:*equ$BgqYpKorr)uqq"X^[rV6?cs7lWi
!;QHc!<2Ti#5n5lrqQ9amf*gqq#:-grV?ElqY:$bq"jmarrrAuq"OX_rV$<goD\gfq"FjbqYc!F
JcGZJJ,~>
pAY9aV1=*:rr2unrr3)CJ<os+rs/GdY(M7TW8dFK0r]hVKq,]q`jsLCXg7?iqu?*Pn>hb3J:W?)
JUrN2MN3[LJ:WK4OI2W!J:N3$J;!Uers-r(Wq;RBV>BZ\&D*3;WSl^4ir?-@hP-(8\buC*%/J\j
Q[u*\Kn+]+Y5.bj!r9BZq1&O&[,-B6JcGZJJ,~>
pAY9T>Sn<Hrr2ugrr3(l(d[Zfrs/>OC`O?0@*8*@0k)4A+\[BVR"268C3/5'p\s+/jC^M,(`OM9
)]9eG.l&e#(`=YL2+(+m(`4/.(a&/:rs,VGAEl?E>kRRc&@OgcA&cMqb5Z33_cAU5JGT3D%.q;f
65j:/+rD.;D"RE#!qUm_q%s/\G/Ah1JcGZJJ,~>
r;R'%r;6<cq"X[]qYU9g!;l`k!r;WdrV$Ehq>1'Zs8W)`rs/N#qu$Bks8W)tqu6j!rVZTlrUKmj
rV?3_r:L"/rqu]kqu$?cqY^6fr;6Bfq=sd\p\4IZqYBs`q>L$lqYBm[q"t$[rs8W%qYBm[q"jo>
s+14Gs*t~>
r;R)ee[hTFQ'@]:]`,qd`4rpmZF%3NYGnLmQ&LKQJ;92U[c-cV!rh`^li.CmkKLihea<D9mdKiJ
r;Qugf[na0jo+cM"QZ82M9>Jj*U_+sa1]^9KsB"B^!FO.YbRMQP(87IX/r+p\!r!KJ-N*KJ:Nlr
j73-Un]8,+KnGJgeGOmtJcGTHJ,~>
r;R)RZ@Q7L5!2;FLAmVVPDb'?F*E4\D.7!M5;+?/(a_%3HHG^W!r_6Hli.Cle"`)&ZebZ[i8O)%
rVm-%hRL#'^!HTHrrgVI,Uo>WruL$kW1&L9Q6L=KOb]lrLN$<[83.S21hLE(@!kNcrYPiQ<>ZQ8
K?Wlc$0@V$7Nrm2BsIJbs+14Hs*t~>
r;Qp!r;HWolMpn`RK!9aqY(*grV?3eq#pQnrVulqrs\o'q"XUXq"t!dqu$GEs+14+s*t~>
r;Qofbi%^Tli.%_nFi:M!P*m]J.7(/h4]RoUn+RMkPk/Prr3DtZ'U8uLR,Ho]>2qaJcC<$h>`!~>
r;QoXUW1gFli.%[jR8N:!Iu<j(_%Eo^f2OQ>"rVZeGS\0rr3DiEC)#n,sZpSK8d(nJcC<$h>`!~>
JcGBBrVhBJJcEIaJ,~>
JcGBB"SD0MmeVM7JcELbJ,~>
JcGBB"RG((i:_a%JcELbJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
JcC<$JcDkPJ,~>
%%EndData
showpage
%%Trailer
end
%%EOF

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,121 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */

@ -0,0 +1,573 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: encoder.c-Dateireferenz</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('encoder_8c.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typdefinitionen</a> &#124;
<a href="#enum-members">Aufzählungen</a> &#124;
<a href="#func-members">Funktionen</a> &#124;
<a href="#var-members">Variablen</a> </div>
<div class="headertitle">
<div class="title">encoder.c-Dateireferenz</div> </div>
</div><!--header-->
<div class="contents">
<p>Drehencoder Library.
<a href="#details">Mehr ...</a></p>
<div class="textblock"><code>#include &lt;avr/io.h&gt;</code><br />
<code>#include &lt;avr/interrupt.h&gt;</code><br />
<code>#include &quot;<a class="el" href="encoder_8h_source.html">encoder.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include-Abhängigkeitsdiagramm für encoder.c:</div>
<div class="dyncontent">
<div class="center"><img src="encoder_8c__incl.png" border="0" usemap="#aencoder_8c" alt=""/></div>
<map name="aencoder_8c" id="aencoder_8c">
<area shape="rect" title="Drehencoder Library." alt="" coords="107,5,185,32"/>
<area shape="rect" title=" " alt="" coords="5,80,71,107"/>
<area shape="rect" title=" " alt="" coords="95,80,197,107"/>
<area shape="rect" href="encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="221,80,300,107"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typdefinitionen</h2></td></tr>
<tr class="memitem:aedeed12448cdc285bc8c21763ae9f1a0"><td class="memItemLeft" align="right" valign="top"><a id="aedeed12448cdc285bc8c21763ae9f1a0"></a>
typedef enum <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b">EButtonState</a>&#160;</td><td class="memItemRight" valign="bottom"><b>tEButtonState</b></td></tr>
<tr class="separator:aedeed12448cdc285bc8c21763ae9f1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Aufzählungen</h2></td></tr>
<tr class="memitem:a7e7392f1e24ef55450099d5e7d095c4b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b">EButtonState</a> { <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f">ButtonState_Unpressed</a>
, <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4bab17e4582ae92a602546a5ed70116b344">ButtonState_Pressed</a>
, <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba1ed28d4e307eb4999f1deaf3fa07f4d9">ButtonState_Hold</a>
, <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba19d35c76d8d53f420fd3106123d67a16">ButtonState_Released</a>
}</td></tr>
<tr class="separator:a7e7392f1e24ef55450099d5e7d095c4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Funktionen</h2></td></tr>
<tr class="memitem:a80ec2c177aa9c2636f797ca881381827"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a80ec2c177aa9c2636f797ca881381827">EncoderInit</a> (void)</td></tr>
<tr class="memdesc:a80ec2c177aa9c2636f797ca881381827"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialisierung des Drehencoders und der Startwerte. <a href="encoder_8c.html#a80ec2c177aa9c2636f797ca881381827">Mehr ...</a><br /></td></tr>
<tr class="separator:a80ec2c177aa9c2636f797ca881381827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a660e5b11dce82f5b307f628def81d188"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a660e5b11dce82f5b307f628def81d188">EncoderPolling</a> (void)</td></tr>
<tr class="memdesc:a660e5b11dce82f5b307f628def81d188"><td class="mdescLeft">&#160;</td><td class="mdescRight">EncoderPolling. <a href="encoder_8c.html#a660e5b11dce82f5b307f628def81d188">Mehr ...</a><br /></td></tr>
<tr class="separator:a660e5b11dce82f5b307f628def81d188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf6a92358a883c87b032984732655084"><td class="memItemLeft" align="right" valign="top"><a id="aaf6a92358a883c87b032984732655084"></a>
int8_t&#160;</td><td class="memItemRight" valign="bottom"><b>EncodeRead</b> (void)</td></tr>
<tr class="separator:aaf6a92358a883c87b032984732655084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec6df4b13c9134f1c61546b718cd563"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a9ec6df4b13c9134f1c61546b718cd563">EncoderRead</a> (char Ueberlauf)</td></tr>
<tr class="memdesc:a9ec6df4b13c9134f1c61546b718cd563"><td class="mdescLeft">&#160;</td><td class="mdescRight">Liest die akt. Position des Drehencoders. <a href="encoder_8c.html#a9ec6df4b13c9134f1c61546b718cd563">Mehr ...</a><br /></td></tr>
<tr class="separator:a9ec6df4b13c9134f1c61546b718cd563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9e955efd05fd5f6579bb5e179b506c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#ac9e955efd05fd5f6579bb5e179b506c7">EncoderWrite</a> (int8_t <a class="el" href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a>)</td></tr>
<tr class="memdesc:ac9e955efd05fd5f6579bb5e179b506c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setzt die aktuelle Position des Drehencoders. <a href="encoder_8c.html#ac9e955efd05fd5f6579bb5e179b506c7">Mehr ...</a><br /></td></tr>
<tr class="separator:ac9e955efd05fd5f6579bb5e179b506c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5afede50bbce8aae40f3d02be64a374"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#ab5afede50bbce8aae40f3d02be64a374">EncoderMinMax</a> (int8_t EncoderMin, int8_t EncoderMax)</td></tr>
<tr class="memdesc:ab5afede50bbce8aae40f3d02be64a374"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setzt den minimalen und maximalen Bereich des Drehencoders. <a href="encoder_8c.html#ab5afede50bbce8aae40f3d02be64a374">Mehr ...</a><br /></td></tr>
<tr class="separator:ab5afede50bbce8aae40f3d02be64a374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="memItemLeft" align="right" valign="top">tEButtonPressedState&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a2de57e0e3c5f3e0ab176c11363a58bf1">EncoderGetButtonState</a> (void)</td></tr>
<tr class="memdesc:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Liefert den Status des Tasters vom Drehencoder. <a href="encoder_8c.html#a2de57e0e3c5f3e0ab176c11363a58bf1">Mehr ...</a><br /></td></tr>
<tr class="separator:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variablen</h2></td></tr>
<tr class="memitem:abdbce2c910e9ca583dbbf74a99d50d72"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#abdbce2c910e9ca583dbbf74a99d50d72">DrehgeberPosition</a></td></tr>
<tr class="memdesc:abdbce2c910e9ca583dbbf74a99d50d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">akt. Drehencoderposition <a href="encoder_8c.html#abdbce2c910e9ca583dbbf74a99d50d72">Mehr ...</a><br /></td></tr>
<tr class="separator:abdbce2c910e9ca583dbbf74a99d50d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7c6a2827b1cc4fcb2c5ff33d8d05300"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#aa7c6a2827b1cc4fcb2c5ff33d8d05300">DrehgeberMax</a> = 127</td></tr>
<tr class="memdesc:aa7c6a2827b1cc4fcb2c5ff33d8d05300"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximaler Wert des Drehgebers <a href="encoder_8c.html#aa7c6a2827b1cc4fcb2c5ff33d8d05300">Mehr ...</a><br /></td></tr>
<tr class="separator:aa7c6a2827b1cc4fcb2c5ff33d8d05300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af734dbab527768cb6207a4a5bd90bd1d"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#af734dbab527768cb6207a4a5bd90bd1d">DrehgeberMin</a> = -127</td></tr>
<tr class="memdesc:af734dbab527768cb6207a4a5bd90bd1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimaler Wert des Drehgebers <a href="encoder_8c.html#af734dbab527768cb6207a4a5bd90bd1d">Mehr ...</a><br /></td></tr>
<tr class="separator:af734dbab527768cb6207a4a5bd90bd1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f7e7becdadc23b1f28f301dbf0325d"><td class="memItemLeft" align="right" valign="top">volatile int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a25f7e7becdadc23b1f28f301dbf0325d">iButtonPressedCounter</a> = 0</td></tr>
<tr class="memdesc:a25f7e7becdadc23b1f28f301dbf0325d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zähler für kurzen Tastendruck. <a href="encoder_8c.html#a25f7e7becdadc23b1f28f301dbf0325d">Mehr ...</a><br /></td></tr>
<tr class="separator:a25f7e7becdadc23b1f28f301dbf0325d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93ec6852319d923e71003f50ad073327"><td class="memItemLeft" align="right" valign="top">volatile int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a93ec6852319d923e71003f50ad073327">iButtonDebounceCycles</a> = 0</td></tr>
<tr class="memdesc:a93ec6852319d923e71003f50ad073327"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zähler für Entprellung. <a href="encoder_8c.html#a93ec6852319d923e71003f50ad073327">Mehr ...</a><br /></td></tr>
<tr class="separator:a93ec6852319d923e71003f50ad073327"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa12d33a8833ab123443cfe09d8c385e8"><td class="memItemLeft" align="right" valign="top">volatile int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#aa12d33a8833ab123443cfe09d8c385e8">iButtonPressedLongCycles</a> = 0</td></tr>
<tr class="memdesc:aa12d33a8833ab123443cfe09d8c385e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zähler für langen Tastendruck. <a href="encoder_8c.html#aa12d33a8833ab123443cfe09d8c385e8">Mehr ...</a><br /></td></tr>
<tr class="separator:aa12d33a8833ab123443cfe09d8c385e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f5ba1853e96736d1ffcc756e9138849"><td class="memItemLeft" align="right" valign="top">volatile int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a3f5ba1853e96736d1ffcc756e9138849">enc_delta</a></td></tr>
<tr class="memdesc:a3f5ba1853e96736d1ffcc756e9138849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delta des Encoders bei Betätigung. <a href="encoder_8c.html#a3f5ba1853e96736d1ffcc756e9138849">Mehr ...</a><br /></td></tr>
<tr class="separator:a3f5ba1853e96736d1ffcc756e9138849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a904a7151d59a45adae73c4e0a68b5a1f"><td class="memItemLeft" align="right" valign="top">static int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8c.html#a904a7151d59a45adae73c4e0a68b5a1f">last</a></td></tr>
<tr class="memdesc:a904a7151d59a45adae73c4e0a68b5a1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">letzter Wert des Encoders <a href="encoder_8c.html#a904a7151d59a45adae73c4e0a68b5a1f">Mehr ...</a><br /></td></tr>
<tr class="separator:a904a7151d59a45adae73c4e0a68b5a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9031f1bbc45388b7f4d7a6d534114e64"><td class="memItemLeft" align="right" valign="top"><a id="a9031f1bbc45388b7f4d7a6d534114e64"></a>
volatile tEButtonState&#160;</td><td class="memItemRight" valign="bottom"><b>buttonState</b> = <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f">ButtonState_Unpressed</a></td></tr>
<tr class="separator:a9031f1bbc45388b7f4d7a6d534114e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32833c1bd4da805038b020ba58750218"><td class="memItemLeft" align="right" valign="top"><a id="a32833c1bd4da805038b020ba58750218"></a>
volatile tEButtonPressedState&#160;</td><td class="memItemRight" valign="bottom"><b>buttonPressed</b> = <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">ButtonPressed_Unpressed</a></td></tr>
<tr class="separator:a32833c1bd4da805038b020ba58750218"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Ausführliche Beschreibung</h2>
<div class="textblock"><p>Drehencoder Library. </p>
<dl class="section date"><dt>Datum</dt><dd>2014-12-04 </dd></dl>
<dl class="section author"><dt>Autor</dt><dd>Frank Klee <pre class="fragment"> Basisroutinen zum Abfragen eines Drehencoders mittels Polling.
Quelle: https://www.mikrocontroller.net/articles/Drehgeber
</pre></dd></dl>
<p>Formatierungen und Umbenennungen der Funktionen </p><dl class="section author"><dt>Autor</dt><dd>Tom, DL7BJ </dd></dl>
<dl class="section date"><dt>Datum</dt><dd>2023-03-23 </dd></dl>
</div><h2 class="groupheader">Dokumentation der Aufzählungstypen</h2>
<a id="a7e7392f1e24ef55450099d5e7d095c4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e7392f1e24ef55450099d5e7d095c4b">&#9670;&nbsp;</a></span>EButtonState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b">EButtonState</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Aufzählungswerte</th></tr><tr><td class="fieldname"><a id="a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f"></a>ButtonState_Unpressed&#160;</td><td class="fielddoc"><p>Taster nicht gedrückt. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e7392f1e24ef55450099d5e7d095c4bab17e4582ae92a602546a5ed70116b344"></a>ButtonState_Pressed&#160;</td><td class="fielddoc"><p>Taster gedrückt. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e7392f1e24ef55450099d5e7d095c4ba1ed28d4e307eb4999f1deaf3fa07f4d9"></a>ButtonState_Hold&#160;</td><td class="fielddoc"><p>Taster gehalten. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e7392f1e24ef55450099d5e7d095c4ba19d35c76d8d53f420fd3106123d67a16"></a>ButtonState_Released&#160;</td><td class="fielddoc"><p>Taster geöffnet. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Dokumentation der Funktionen</h2>
<a id="a2de57e0e3c5f3e0ab176c11363a58bf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2de57e0e3c5f3e0ab176c11363a58bf1">&#9670;&nbsp;</a></span>EncoderGetButtonState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">tEButtonPressedState EncoderGetButtonState </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Liefert den Status des Tasters vom Drehencoder. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">tEButtonPressedState</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a80ec2c177aa9c2636f797ca881381827"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80ec2c177aa9c2636f797ca881381827">&#9670;&nbsp;</a></span>EncoderInit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderInit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialisierung des Drehencoders und der Startwerte. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab5afede50bbce8aae40f3d02be64a374"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5afede50bbce8aae40f3d02be64a374">&#9670;&nbsp;</a></span>EncoderMinMax()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderMinMax </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderMin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderMax</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Setzt den minimalen und maximalen Bereich des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">EncoderMin</td><td>minimaler Wert des Drehencoders </td></tr>
<tr><td class="paramname">EncoderMax</td><td>maximaler Wert des Drehencoders </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a660e5b11dce82f5b307f628def81d188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a660e5b11dce82f5b307f628def81d188">&#9670;&nbsp;</a></span>EncoderPolling()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderPolling </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>EncoderPolling. </p>
<pre class="fragment"> Abfrage des Drehencoders und des Tasters
Wird vom Timer 0 aufgerufen
</pre> <dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9ec6df4b13c9134f1c61546b718cd563"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ec6df4b13c9134f1c61546b718cd563">&#9670;&nbsp;</a></span>EncoderRead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int8_t EncoderRead </td>
<td>(</td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>Ueberlauf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Liest die akt. Position des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">Ueberlauf</td><td>größer +127, -127 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">Aktuelle</td><td>Position des Drehencoders </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac9e955efd05fd5f6579bb5e179b506c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9e955efd05fd5f6579bb5e179b506c7">&#9670;&nbsp;</a></span>EncoderWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderWrite </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderPos</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Setzt die aktuelle Position des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">EncoderPos</td><td>- die Position des Drehencoders </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Variablen-Dokumentation</h2>
<a id="aa7c6a2827b1cc4fcb2c5ff33d8d05300"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7c6a2827b1cc4fcb2c5ff33d8d05300">&#9670;&nbsp;</a></span>DrehgeberMax</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int8_t DrehgeberMax = 127</td>
</tr>
</table>
</div><div class="memdoc">
<p>maximaler Wert des Drehgebers </p>
</div>
</div>
<a id="af734dbab527768cb6207a4a5bd90bd1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af734dbab527768cb6207a4a5bd90bd1d">&#9670;&nbsp;</a></span>DrehgeberMin</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int8_t DrehgeberMin = -127</td>
</tr>
</table>
</div><div class="memdoc">
<p>minimaler Wert des Drehgebers </p>
</div>
</div>
<a id="abdbce2c910e9ca583dbbf74a99d50d72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdbce2c910e9ca583dbbf74a99d50d72">&#9670;&nbsp;</a></span>DrehgeberPosition</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int8_t DrehgeberPosition</td>
</tr>
</table>
</div><div class="memdoc">
<p>akt. Drehencoderposition </p>
</div>
</div>
<a id="a3f5ba1853e96736d1ffcc756e9138849"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f5ba1853e96736d1ffcc756e9138849">&#9670;&nbsp;</a></span>enc_delta</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int8_t enc_delta</td>
</tr>
</table>
</div><div class="memdoc">
<p>Delta des Encoders bei Betätigung. </p>
</div>
</div>
<a id="a93ec6852319d923e71003f50ad073327"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93ec6852319d923e71003f50ad073327">&#9670;&nbsp;</a></span>iButtonDebounceCycles</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int16_t iButtonDebounceCycles = 0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Zähler für Entprellung. </p>
</div>
</div>
<a id="a25f7e7becdadc23b1f28f301dbf0325d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25f7e7becdadc23b1f28f301dbf0325d">&#9670;&nbsp;</a></span>iButtonPressedCounter</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int16_t iButtonPressedCounter = 0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Zähler für kurzen Tastendruck. </p>
</div>
</div>
<a id="aa12d33a8833ab123443cfe09d8c385e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa12d33a8833ab123443cfe09d8c385e8">&#9670;&nbsp;</a></span>iButtonPressedLongCycles</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int16_t iButtonPressedLongCycles = 0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Zähler für langen Tastendruck. </p>
</div>
</div>
<a id="a904a7151d59a45adae73c4e0a68b5a1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a904a7151d59a45adae73c4e0a68b5a1f">&#9670;&nbsp;</a></span>last</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int8_t last</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>letzter Wert des Encoders </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="encoder_8c.html">encoder.c</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,27 @@
var encoder_8c =
[
[ "tEButtonState", "encoder_8c.html#aedeed12448cdc285bc8c21763ae9f1a0", null ],
[ "EButtonState", "encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b", [
[ "ButtonState_Unpressed", "encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f", null ],
[ "ButtonState_Pressed", "encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4bab17e4582ae92a602546a5ed70116b344", null ],
[ "ButtonState_Hold", "encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba1ed28d4e307eb4999f1deaf3fa07f4d9", null ],
[ "ButtonState_Released", "encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba19d35c76d8d53f420fd3106123d67a16", null ]
] ],
[ "EncodeRead", "encoder_8c.html#aaf6a92358a883c87b032984732655084", null ],
[ "EncoderGetButtonState", "encoder_8c.html#a2de57e0e3c5f3e0ab176c11363a58bf1", null ],
[ "EncoderInit", "encoder_8c.html#a80ec2c177aa9c2636f797ca881381827", null ],
[ "EncoderMinMax", "encoder_8c.html#ab5afede50bbce8aae40f3d02be64a374", null ],
[ "EncoderPolling", "encoder_8c.html#a660e5b11dce82f5b307f628def81d188", null ],
[ "EncoderRead", "encoder_8c.html#a9ec6df4b13c9134f1c61546b718cd563", null ],
[ "EncoderWrite", "encoder_8c.html#ac9e955efd05fd5f6579bb5e179b506c7", null ],
[ "buttonPressed", "encoder_8c.html#a32833c1bd4da805038b020ba58750218", null ],
[ "buttonState", "encoder_8c.html#a9031f1bbc45388b7f4d7a6d534114e64", null ],
[ "DrehgeberMax", "encoder_8c.html#aa7c6a2827b1cc4fcb2c5ff33d8d05300", null ],
[ "DrehgeberMin", "encoder_8c.html#af734dbab527768cb6207a4a5bd90bd1d", null ],
[ "DrehgeberPosition", "encoder_8c.html#abdbce2c910e9ca583dbbf74a99d50d72", null ],
[ "enc_delta", "encoder_8c.html#a3f5ba1853e96736d1ffcc756e9138849", null ],
[ "iButtonDebounceCycles", "encoder_8c.html#a93ec6852319d923e71003f50ad073327", null ],
[ "iButtonPressedCounter", "encoder_8c.html#a25f7e7becdadc23b1f28f301dbf0325d", null ],
[ "iButtonPressedLongCycles", "encoder_8c.html#aa12d33a8833ab123443cfe09d8c385e8", null ],
[ "last", "encoder_8c.html#a904a7151d59a45adae73c4e0a68b5a1f", null ]
];

@ -0,0 +1,6 @@
<map id="encoder.c" name="encoder.c">
<area shape="rect" id="node1" title="Drehencoder Library." alt="" coords="107,5,185,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,71,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="95,80,197,107"/>
<area shape="rect" id="node4" href="$encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="221,80,300,107"/>
</map>

@ -0,0 +1 @@
6cf17fa0c5fbb862484f46cbe496f287

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

@ -0,0 +1,715 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: encoder.h-Dateireferenz</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('encoder_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Makrodefinitionen</a> &#124;
<a href="#typedef-members">Typdefinitionen</a> &#124;
<a href="#enum-members">Aufzählungen</a> &#124;
<a href="#func-members">Funktionen</a> </div>
<div class="headertitle">
<div class="title">encoder.h-Dateireferenz</div> </div>
</div><!--header-->
<div class="contents">
<p>Headerdatei Drehencoder Library.
<a href="#details">Mehr ...</a></p>
<div class="textblock"><div class="dynheader">
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:</div>
<div class="dyncontent">
<div class="center"><img src="encoder_8h__dep__incl.png" border="0" usemap="#aencoder_8hdep" alt=""/></div>
<map name="aencoder_8hdep" id="aencoder_8hdep">
<area shape="rect" title="Headerdatei Drehencoder Library." alt="" coords="100,5,179,32"/>
<area shape="rect" href="controls_8h.html" title="Headerdatei für controls.c." alt="" coords="23,80,101,107"/>
<area shape="rect" href="main_8h.html" title="Headerdatei für main.c." alt="" coords="109,155,170,181"/>
<area shape="rect" href="encoder_8c.html" title="Drehencoder Library." alt="" coords="177,80,256,107"/>
<area shape="rect" href="controls_8c.html" title="Display und Bedienelemente." alt="" coords="5,155,84,181"/>
<area shape="rect" href="functions_8h.html" title="Headerdatei für functions.c." alt="" coords="47,229,133,256"/>
<area shape="rect" href="main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="158,229,219,256"/>
<area shape="rect" href="functions_8c.html" title="Diverse Funktionen." alt="" coords="47,304,133,331"/>
<area shape="rect" href="vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="191,304,256,331"/>
<area shape="rect" href="vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="191,379,256,405"/>
</map>
</div>
</div>
<p><a href="encoder_8h_source.html">gehe zum Quellcode dieser Datei</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Makrodefinitionen</h2></td></tr>
<tr class="memitem:a4484973712e579e11ec1f9306d4dfa5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a4484973712e579e11ec1f9306d4dfa5c">TwoStep</a></td></tr>
<tr class="memdesc:a4484973712e579e11ec1f9306d4dfa5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Art des Drehencoders. <a href="encoder_8h.html#a4484973712e579e11ec1f9306d4dfa5c">Mehr ...</a><br /></td></tr>
<tr class="separator:a4484973712e579e11ec1f9306d4dfa5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a954872ee0daca1b1a8d0140b4fc80b82"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">ENC_A_PORT</a>&#160;&#160;&#160;PORTB</td></tr>
<tr class="memdesc:a954872ee0daca1b1a8d0140b4fc80b82"><td class="mdescLeft">&#160;</td><td class="mdescRight">port for line A <br />
<a href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">Mehr ...</a><br /></td></tr>
<tr class="separator:a954872ee0daca1b1a8d0140b4fc80b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d575adbcfeaadc13a6d6606a2ed0c1b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">ENC_A_PIN</a>&#160;&#160;&#160;PB1</td></tr>
<tr class="memdesc:a7d575adbcfeaadc13a6d6606a2ed0c1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">pin for line A <br />
<a href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">Mehr ...</a><br /></td></tr>
<tr class="separator:a7d575adbcfeaadc13a6d6606a2ed0c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e6f46965f5ffba14b80a7c353313982"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">ENC_B_PORT</a>&#160;&#160;&#160;PORTB</td></tr>
<tr class="memdesc:a4e6f46965f5ffba14b80a7c353313982"><td class="mdescLeft">&#160;</td><td class="mdescRight">port for line B <br />
<a href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">Mehr ...</a><br /></td></tr>
<tr class="separator:a4e6f46965f5ffba14b80a7c353313982"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab42063ad37138f2e94f87270f7826aa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">ENC_B_PIN</a>&#160;&#160;&#160;PB0</td></tr>
<tr class="memdesc:ab42063ad37138f2e94f87270f7826aa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">pin for line B <br />
<a href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">Mehr ...</a><br /></td></tr>
<tr class="separator:ab42063ad37138f2e94f87270f7826aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf7f0aca01dd1389118a21ec76ae7c13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">ENC_T_PORT</a>&#160;&#160;&#160;PORTB</td></tr>
<tr class="memdesc:abf7f0aca01dd1389118a21ec76ae7c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">port for button <br />
<a href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">Mehr ...</a><br /></td></tr>
<tr class="separator:abf7f0aca01dd1389118a21ec76ae7c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16f8e311086450a7061f6890fe028e61"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">ENC_T_PIN</a>&#160;&#160;&#160;PB2</td></tr>
<tr class="memdesc:a16f8e311086450a7061f6890fe028e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">pin for button <br />
<a href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">Mehr ...</a><br /></td></tr>
<tr class="separator:a16f8e311086450a7061f6890fe028e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe348573e1b5adccdc7bcf157dc6425"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425">DDR</a>(x)&#160;&#160;&#160;(*(&amp;x-1))</td></tr>
<tr class="memdesc:acbe348573e1b5adccdc7bcf157dc6425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro Datenrichtungsregister. <a href="encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425">Mehr ...</a><br /></td></tr>
<tr class="separator:acbe348573e1b5adccdc7bcf157dc6425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa229b4be775fd996225a45c52a7e8a6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#aa229b4be775fd996225a45c52a7e8a6d">Port</a>(x)&#160;&#160;&#160;(*(&amp;x))</td></tr>
<tr class="memdesc:aa229b4be775fd996225a45c52a7e8a6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro Port. <a href="encoder_8h.html#aa229b4be775fd996225a45c52a7e8a6d">Mehr ...</a><br /></td></tr>
<tr class="separator:aa229b4be775fd996225a45c52a7e8a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7581da21e9fd6fd6f6920dd68d1c782"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(x)&#160;&#160;&#160;(*(&amp;x-2))</td></tr>
<tr class="memdesc:ad7581da21e9fd6fd6f6920dd68d1c782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro Pin. <a href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">Mehr ...</a><br /></td></tr>
<tr class="separator:ad7581da21e9fd6fd6f6920dd68d1c782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad214039f52b011ce2bd6c85ff98a981b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ad214039f52b011ce2bd6c85ff98a981b">PHASE_A</a>&#160;&#160;&#160;<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">ENC_A_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">ENC_A_PIN</a>)</td></tr>
<tr class="memdesc:ad214039f52b011ce2bd6c85ff98a981b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro für Encoder PHASE A. <a href="encoder_8h.html#ad214039f52b011ce2bd6c85ff98a981b">Mehr ...</a><br /></td></tr>
<tr class="separator:ad214039f52b011ce2bd6c85ff98a981b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7b96feed1e1c12515dad5e926b2c62e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ad7b96feed1e1c12515dad5e926b2c62e">PHASE_B</a>&#160;&#160;&#160;<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">ENC_B_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">ENC_B_PIN</a>)</td></tr>
<tr class="memdesc:ad7b96feed1e1c12515dad5e926b2c62e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro für Encoder PHASE B. <a href="encoder_8h.html#ad7b96feed1e1c12515dad5e926b2c62e">Mehr ...</a><br /></td></tr>
<tr class="separator:ad7b96feed1e1c12515dad5e926b2c62e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0661a7570d43557a4cbade846808684"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#aa0661a7570d43557a4cbade846808684">BUTTONPRESSED</a>&#160;&#160;&#160;(!(<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">ENC_T_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">ENC_T_PIN</a>)))</td></tr>
<tr class="memdesc:aa0661a7570d43557a4cbade846808684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makro für Taster des Encoders. <a href="encoder_8h.html#aa0661a7570d43557a4cbade846808684">Mehr ...</a><br /></td></tr>
<tr class="separator:aa0661a7570d43557a4cbade846808684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f62996f43e5f428dae04bf6583e6095"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095">BUTTON_DEBOUNCETIME_MS</a>&#160;&#160;&#160;30</td></tr>
<tr class="memdesc:a4f62996f43e5f428dae04bf6583e6095"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entprellzeit Taster. <a href="encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095">Mehr ...</a><br /></td></tr>
<tr class="separator:a4f62996f43e5f428dae04bf6583e6095"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0faf2a568de603ff9e6867f6ba2a9f89"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89">BUTTON_PRESSEDLONG_MS</a>&#160;&#160;&#160;250</td></tr>
<tr class="memdesc:a0faf2a568de603ff9e6867f6ba2a9f89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition langer Tastendruck. <a href="encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89">Mehr ...</a><br /></td></tr>
<tr class="separator:a0faf2a568de603ff9e6867f6ba2a9f89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typdefinitionen</h2></td></tr>
<tr class="memitem:aa386d5445a9db1fd904ac94b12be4e2e"><td class="memItemLeft" align="right" valign="top"><a id="aa386d5445a9db1fd904ac94b12be4e2e"></a>
typedef enum <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">EButtonPressedState</a>&#160;</td><td class="memItemRight" valign="bottom"><b>tEButtonPressedState</b></td></tr>
<tr class="separator:aa386d5445a9db1fd904ac94b12be4e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Aufzählungen</h2></td></tr>
<tr class="memitem:a1f1601ea239948684d4b2a2f830bca26"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">EButtonPressedState</a> { <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">ButtonPressed_Unpressed</a>
, <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2">ButtonPressed_Short</a>
, <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b">ButtonPressed_Long</a>
}</td></tr>
<tr class="separator:a1f1601ea239948684d4b2a2f830bca26"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Funktionen</h2></td></tr>
<tr class="memitem:a80ec2c177aa9c2636f797ca881381827"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a80ec2c177aa9c2636f797ca881381827">EncoderInit</a> (void)</td></tr>
<tr class="memdesc:a80ec2c177aa9c2636f797ca881381827"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialisierung des Drehencoders und der Startwerte. <a href="encoder_8h.html#a80ec2c177aa9c2636f797ca881381827">Mehr ...</a><br /></td></tr>
<tr class="separator:a80ec2c177aa9c2636f797ca881381827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec6df4b13c9134f1c61546b718cd563"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563">EncoderRead</a> (char Ueberlauf)</td></tr>
<tr class="memdesc:a9ec6df4b13c9134f1c61546b718cd563"><td class="mdescLeft">&#160;</td><td class="mdescRight">Liest die akt. Position des Drehencoders. <a href="encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563">Mehr ...</a><br /></td></tr>
<tr class="separator:a9ec6df4b13c9134f1c61546b718cd563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="memItemLeft" align="right" valign="top">tEButtonPressedState&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1">EncoderGetButtonState</a> (void)</td></tr>
<tr class="memdesc:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Liefert den Status des Tasters vom Drehencoder. <a href="encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1">Mehr ...</a><br /></td></tr>
<tr class="separator:a2de57e0e3c5f3e0ab176c11363a58bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9e955efd05fd5f6579bb5e179b506c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7">EncoderWrite</a> (int8_t <a class="el" href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a>)</td></tr>
<tr class="memdesc:ac9e955efd05fd5f6579bb5e179b506c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setzt die aktuelle Position des Drehencoders. <a href="encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7">Mehr ...</a><br /></td></tr>
<tr class="separator:ac9e955efd05fd5f6579bb5e179b506c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5afede50bbce8aae40f3d02be64a374"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374">EncoderMinMax</a> (int8_t EncoderMin, int8_t EncoderMax)</td></tr>
<tr class="memdesc:ab5afede50bbce8aae40f3d02be64a374"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setzt den minimalen und maximalen Bereich des Drehencoders. <a href="encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374">Mehr ...</a><br /></td></tr>
<tr class="separator:ab5afede50bbce8aae40f3d02be64a374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a660e5b11dce82f5b307f628def81d188"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encoder_8h.html#a660e5b11dce82f5b307f628def81d188">EncoderPolling</a> (void)</td></tr>
<tr class="memdesc:a660e5b11dce82f5b307f628def81d188"><td class="mdescLeft">&#160;</td><td class="mdescRight">EncoderPolling. <a href="encoder_8h.html#a660e5b11dce82f5b307f628def81d188">Mehr ...</a><br /></td></tr>
<tr class="separator:a660e5b11dce82f5b307f628def81d188"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Ausführliche Beschreibung</h2>
<div class="textblock"><p>Headerdatei Drehencoder Library. </p>
<dl class="section date"><dt>Datum</dt><dd>2014-12-04 </dd></dl>
<dl class="section author"><dt>Autor</dt><dd>Frank Klee <pre class="fragment"> Basisroutinen zum Abfragen eines Drehencoders mittels Polling.
Quelle: https://www.mikrocontroller.net/articles/Drehgeber
</pre></dd></dl>
<p>Formatierungen und Umbenennungen der Funktionen </p><dl class="section author"><dt>Autor</dt><dd>Tom, DL7BJ </dd></dl>
<dl class="section date"><dt>Datum</dt><dd>2023-03-23 </dd></dl>
</div><h2 class="groupheader">Makro-Dokumentation</h2>
<a id="a4f62996f43e5f428dae04bf6583e6095"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f62996f43e5f428dae04bf6583e6095">&#9670;&nbsp;</a></span>BUTTON_DEBOUNCETIME_MS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BUTTON_DEBOUNCETIME_MS&#160;&#160;&#160;30</td>
</tr>
</table>
</div><div class="memdoc">
<p>Entprellzeit Taster. </p>
</div>
</div>
<a id="a0faf2a568de603ff9e6867f6ba2a9f89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0faf2a568de603ff9e6867f6ba2a9f89">&#9670;&nbsp;</a></span>BUTTON_PRESSEDLONG_MS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BUTTON_PRESSEDLONG_MS&#160;&#160;&#160;250</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition langer Tastendruck. </p>
</div>
</div>
<a id="aa0661a7570d43557a4cbade846808684"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0661a7570d43557a4cbade846808684">&#9670;&nbsp;</a></span>BUTTONPRESSED</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BUTTONPRESSED&#160;&#160;&#160;(!(<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">ENC_T_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">ENC_T_PIN</a>)))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro für Taster des Encoders. </p>
</div>
</div>
<a id="acbe348573e1b5adccdc7bcf157dc6425"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbe348573e1b5adccdc7bcf157dc6425">&#9670;&nbsp;</a></span>DDR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DDR</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;(*(&amp;x-1))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro Datenrichtungsregister. </p>
</div>
</div>
<a id="a7d575adbcfeaadc13a6d6606a2ed0c1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d575adbcfeaadc13a6d6606a2ed0c1b">&#9670;&nbsp;</a></span>ENC_A_PIN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_A_PIN&#160;&#160;&#160;PB1</td>
</tr>
</table>
</div><div class="memdoc">
<p>pin for line A <br />
</p>
</div>
</div>
<a id="a954872ee0daca1b1a8d0140b4fc80b82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a954872ee0daca1b1a8d0140b4fc80b82">&#9670;&nbsp;</a></span>ENC_A_PORT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_A_PORT&#160;&#160;&#160;PORTB</td>
</tr>
</table>
</div><div class="memdoc">
<p>port for line A <br />
</p>
</div>
</div>
<a id="ab42063ad37138f2e94f87270f7826aa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab42063ad37138f2e94f87270f7826aa0">&#9670;&nbsp;</a></span>ENC_B_PIN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_B_PIN&#160;&#160;&#160;PB0</td>
</tr>
</table>
</div><div class="memdoc">
<p>pin for line B <br />
</p>
</div>
</div>
<a id="a4e6f46965f5ffba14b80a7c353313982"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e6f46965f5ffba14b80a7c353313982">&#9670;&nbsp;</a></span>ENC_B_PORT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_B_PORT&#160;&#160;&#160;PORTB</td>
</tr>
</table>
</div><div class="memdoc">
<p>port for line B <br />
</p>
</div>
</div>
<a id="a16f8e311086450a7061f6890fe028e61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16f8e311086450a7061f6890fe028e61">&#9670;&nbsp;</a></span>ENC_T_PIN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_T_PIN&#160;&#160;&#160;PB2</td>
</tr>
</table>
</div><div class="memdoc">
<p>pin for button <br />
</p>
</div>
</div>
<a id="abf7f0aca01dd1389118a21ec76ae7c13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf7f0aca01dd1389118a21ec76ae7c13">&#9670;&nbsp;</a></span>ENC_T_PORT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ENC_T_PORT&#160;&#160;&#160;PORTB</td>
</tr>
</table>
</div><div class="memdoc">
<p>port for button <br />
</p>
</div>
</div>
<a id="ad214039f52b011ce2bd6c85ff98a981b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad214039f52b011ce2bd6c85ff98a981b">&#9670;&nbsp;</a></span>PHASE_A</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PHASE_A&#160;&#160;&#160;<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">ENC_A_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">ENC_A_PIN</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro für Encoder PHASE A. </p>
</div>
</div>
<a id="ad7b96feed1e1c12515dad5e926b2c62e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7b96feed1e1c12515dad5e926b2c62e">&#9670;&nbsp;</a></span>PHASE_B</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PHASE_B&#160;&#160;&#160;<a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">PIN</a>(<a class="el" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">ENC_B_PORT</a>) &amp; (1&lt;&lt;<a class="el" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">ENC_B_PIN</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro für Encoder PHASE B. </p>
</div>
</div>
<a id="ad7581da21e9fd6fd6f6920dd68d1c782"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7581da21e9fd6fd6f6920dd68d1c782">&#9670;&nbsp;</a></span>PIN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PIN</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;(*(&amp;x-2))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro Pin. </p>
</div>
</div>
<a id="aa229b4be775fd996225a45c52a7e8a6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa229b4be775fd996225a45c52a7e8a6d">&#9670;&nbsp;</a></span>Port</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define Port</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;(*(&amp;x))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Makro Port. </p>
</div>
</div>
<a id="a4484973712e579e11ec1f9306d4dfa5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4484973712e579e11ec1f9306d4dfa5c">&#9670;&nbsp;</a></span>TwoStep</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TwoStep</td>
</tr>
</table>
</div><div class="memdoc">
<p>Art des Drehencoders. </p>
</div>
</div>
<h2 class="groupheader">Dokumentation der Aufzählungstypen</h2>
<a id="a1f1601ea239948684d4b2a2f830bca26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f1601ea239948684d4b2a2f830bca26">&#9670;&nbsp;</a></span>EButtonPressedState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">EButtonPressedState</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Aufzählungswerte</th></tr><tr><td class="fieldname"><a id="a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d"></a>ButtonPressed_Unpressed&#160;</td><td class="fielddoc"><p>kein Taster betötigt </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2"></a>ButtonPressed_Short&#160;</td><td class="fielddoc"><p>Taster kurz betätigt. </p>
</td></tr>
<tr><td class="fieldname"><a id="a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b"></a>ButtonPressed_Long&#160;</td><td class="fielddoc"><p>Taster lang betätigt. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Dokumentation der Funktionen</h2>
<a id="a2de57e0e3c5f3e0ab176c11363a58bf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2de57e0e3c5f3e0ab176c11363a58bf1">&#9670;&nbsp;</a></span>EncoderGetButtonState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">tEButtonPressedState EncoderGetButtonState </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Liefert den Status des Tasters vom Drehencoder. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">tEButtonPressedState</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a80ec2c177aa9c2636f797ca881381827"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80ec2c177aa9c2636f797ca881381827">&#9670;&nbsp;</a></span>EncoderInit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderInit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialisierung des Drehencoders und der Startwerte. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab5afede50bbce8aae40f3d02be64a374"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5afede50bbce8aae40f3d02be64a374">&#9670;&nbsp;</a></span>EncoderMinMax()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderMinMax </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderMin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderMax</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Setzt den minimalen und maximalen Bereich des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">EncoderMin</td><td>minimaler Wert des Drehencoders </td></tr>
<tr><td class="paramname">EncoderMax</td><td>maximaler Wert des Drehencoders </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a660e5b11dce82f5b307f628def81d188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a660e5b11dce82f5b307f628def81d188">&#9670;&nbsp;</a></span>EncoderPolling()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderPolling </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>EncoderPolling. </p>
<pre class="fragment"> Abfrage des Drehencoders und des Tasters
Wird vom Timer 0 aufgerufen
</pre> <dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9ec6df4b13c9134f1c61546b718cd563"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ec6df4b13c9134f1c61546b718cd563">&#9670;&nbsp;</a></span>EncoderRead()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int8_t EncoderRead </td>
<td>(</td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>Ueberlauf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Liest die akt. Position des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">Ueberlauf</td><td>größer +127, -127 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">Aktuelle</td><td>Position des Drehencoders </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac9e955efd05fd5f6579bb5e179b506c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9e955efd05fd5f6579bb5e179b506c7">&#9670;&nbsp;</a></span>EncoderWrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EncoderWrite </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>EncoderPos</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Setzt die aktuelle Position des Drehencoders. </p>
<dl class="params"><dt>Parameter</dt><dd>
<table class="params">
<tr><td class="paramname">EncoderPos</td><td>- die Position des Drehencoders </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Rückgabewerte</dt><dd>
<table class="retval">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="encoder_8h.html">encoder.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,30 @@
var encoder_8h =
[
[ "BUTTON_DEBOUNCETIME_MS", "encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095", null ],
[ "BUTTON_PRESSEDLONG_MS", "encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89", null ],
[ "BUTTONPRESSED", "encoder_8h.html#aa0661a7570d43557a4cbade846808684", null ],
[ "DDR", "encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425", null ],
[ "ENC_A_PIN", "encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b", null ],
[ "ENC_A_PORT", "encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82", null ],
[ "ENC_B_PIN", "encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0", null ],
[ "ENC_B_PORT", "encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982", null ],
[ "ENC_T_PIN", "encoder_8h.html#a16f8e311086450a7061f6890fe028e61", null ],
[ "ENC_T_PORT", "encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13", null ],
[ "PHASE_A", "encoder_8h.html#ad214039f52b011ce2bd6c85ff98a981b", null ],
[ "PHASE_B", "encoder_8h.html#ad7b96feed1e1c12515dad5e926b2c62e", null ],
[ "PIN", "encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782", null ],
[ "Port", "encoder_8h.html#aa229b4be775fd996225a45c52a7e8a6d", null ],
[ "TwoStep", "encoder_8h.html#a4484973712e579e11ec1f9306d4dfa5c", null ],
[ "tEButtonPressedState", "encoder_8h.html#aa386d5445a9db1fd904ac94b12be4e2e", null ],
[ "EButtonPressedState", "encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26", [
[ "ButtonPressed_Unpressed", "encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d", null ],
[ "ButtonPressed_Short", "encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2", null ],
[ "ButtonPressed_Long", "encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b", null ]
] ],
[ "EncoderGetButtonState", "encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1", null ],
[ "EncoderInit", "encoder_8h.html#a80ec2c177aa9c2636f797ca881381827", null ],
[ "EncoderMinMax", "encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374", null ],
[ "EncoderPolling", "encoder_8h.html#a660e5b11dce82f5b307f628def81d188", null ],
[ "EncoderRead", "encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563", null ],
[ "EncoderWrite", "encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7", null ]
];

@ -0,0 +1,12 @@
<map id="encoder.h" name="encoder.h">
<area shape="rect" id="node1" title="Headerdatei Drehencoder Library." alt="" coords="100,5,179,32"/>
<area shape="rect" id="node2" href="$controls_8h.html" title="Headerdatei für controls.c." alt="" coords="23,80,101,107"/>
<area shape="rect" id="node4" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="109,155,170,181"/>
<area shape="rect" id="node10" href="$encoder_8c.html" title="Drehencoder Library." alt="" coords="177,80,256,107"/>
<area shape="rect" id="node3" href="$controls_8c.html" title="Display und Bedienelemente." alt="" coords="5,155,84,181"/>
<area shape="rect" id="node5" href="$functions_8h.html" title="Headerdatei für functions.c." alt="" coords="47,229,133,256"/>
<area shape="rect" id="node9" href="$main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="158,229,219,256"/>
<area shape="rect" id="node6" href="$functions_8c.html" title="Diverse Funktionen." alt="" coords="47,304,133,331"/>
<area shape="rect" id="node7" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="191,304,256,331"/>
<area shape="rect" id="node8" href="$vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="191,379,256,405"/>
</map>

@ -0,0 +1 @@
571b2306854c75e31350138af165e5ee

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,161 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: encoder.h Quellcode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('encoder_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">encoder.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="encoder_8h.html">gehe zur Dokumentation dieser Datei</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#ifndef ENCODER_H_</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define ENCODER_H_</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Art des Drehencoders definieren</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// #define SingleStep</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// #define TwoStep</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="encoder_8h.html#a4484973712e579e11ec1f9306d4dfa5c"> 18</a></span>&#160;<span class="preprocessor">#define TwoStep </span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82"> 20</a></span>&#160;<span class="preprocessor">#define ENC_A_PORT PORTB </span></div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b"> 21</a></span>&#160;<span class="preprocessor">#define ENC_A_PIN PB1 </span></div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982"> 22</a></span>&#160;<span class="preprocessor">#define ENC_B_PORT PORTB </span></div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0"> 23</a></span>&#160;<span class="preprocessor">#define ENC_B_PIN PB0 </span></div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13"> 24</a></span>&#160;<span class="preprocessor">#define ENC_T_PORT PORTB </span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61"> 25</a></span>&#160;<span class="preprocessor">#define ENC_T_PIN PB2 </span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425"> 27</a></span>&#160;<span class="preprocessor">#define DDR(x) (*(&amp;x-1)) </span></div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="encoder_8h.html#aa229b4be775fd996225a45c52a7e8a6d"> 28</a></span>&#160;<span class="preprocessor">#define Port(x) (*(&amp;x)) </span></div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782"> 29</a></span>&#160;<span class="preprocessor">#define PIN(x) (*(&amp;x-2)) </span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="encoder_8h.html#ad214039f52b011ce2bd6c85ff98a981b"> 31</a></span>&#160;<span class="preprocessor">#define PHASE_A PIN(ENC_A_PORT) &amp; (1&lt;&lt;ENC_A_PIN) </span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="encoder_8h.html#ad7b96feed1e1c12515dad5e926b2c62e"> 32</a></span>&#160;<span class="preprocessor">#define PHASE_B PIN(ENC_B_PORT) &amp; (1&lt;&lt;ENC_B_PIN) </span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="encoder_8h.html#aa0661a7570d43557a4cbade846808684"> 33</a></span>&#160;<span class="preprocessor">#define BUTTONPRESSED (!(PIN(ENC_T_PORT) &amp; (1&lt;&lt;ENC_T_PIN))) </span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095"> 35</a></span>&#160;<span class="preprocessor">#define BUTTON_DEBOUNCETIME_MS 30 </span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89"> 36</a></span>&#160;<span class="preprocessor">#define BUTTON_PRESSEDLONG_MS 250 </span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26"> 38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">EButtonPressedState</a></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d"> 40</a></span>&#160; <a class="code" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">ButtonPressed_Unpressed</a>, </div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2"> 41</a></span>&#160; <a class="code" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2">ButtonPressed_Short</a>, </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b">ButtonPressed_Long</a> </div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b"> 43</a></span>&#160;}tEButtonPressedState;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Initialisiert den Encoder und aktiviert den Interrupt + Timer</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">void</span> <a class="code" href="encoder_8h.html#a80ec2c177aa9c2636f797ca881381827">EncoderInit</a>( <span class="keywordtype">void</span> );</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Liest die Position des Encoders aus</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Wenn Ueberlauf=1 dann zдhlt der Encoder nach Max</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// wieder von Min und umgekehrt</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;int8_t <a class="code" href="encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563">EncoderRead</a>(<span class="keywordtype">char</span> Ueberlauf);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Ruft den Status des Encoder-Knopfes</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;tEButtonPressedState <a class="code" href="encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1">EncoderGetButtonState</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// Setzt die aktuelle Drehencoderposition</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keywordtype">void</span> <a class="code" href="encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7">EncoderWrite</a>(int8_t <a class="code" href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a>);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// Setzt Min- und Max-Werte fьr die Drehgeberposition</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keywordtype">void</span> <a class="code" href="encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374">EncoderMinMax</a>(int8_t EncoderMin,int8_t EncoderMax);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> <a class="code" href="encoder_8h.html#a660e5b11dce82f5b307f628def81d188">EncoderPolling</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ENCODER_H_ */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="ttc" id="aencoder_8h_html_a1f1601ea239948684d4b2a2f830bca26"><div class="ttname"><a href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">EButtonPressedState</a></div><div class="ttdeci">EButtonPressedState</div><div class="ttdef"><b>Definition:</b> encoder.h:39</div></div>
<div class="ttc" id="aencoder_8h_html_a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2"><div class="ttname"><a href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2">ButtonPressed_Short</a></div><div class="ttdeci">@ ButtonPressed_Short</div><div class="ttdoc">Taster kurz betätigt.</div><div class="ttdef"><b>Definition:</b> encoder.h:41</div></div>
<div class="ttc" id="aencoder_8h_html_a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d"><div class="ttname"><a href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">ButtonPressed_Unpressed</a></div><div class="ttdeci">@ ButtonPressed_Unpressed</div><div class="ttdoc">kein Taster betötigt</div><div class="ttdef"><b>Definition:</b> encoder.h:40</div></div>
<div class="ttc" id="aencoder_8h_html_a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b"><div class="ttname"><a href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b">ButtonPressed_Long</a></div><div class="ttdeci">@ ButtonPressed_Long</div><div class="ttdoc">Taster lang betätigt.</div><div class="ttdef"><b>Definition:</b> encoder.h:42</div></div>
<div class="ttc" id="aencoder_8h_html_a2de57e0e3c5f3e0ab176c11363a58bf1"><div class="ttname"><a href="encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1">EncoderGetButtonState</a></div><div class="ttdeci">tEButtonPressedState EncoderGetButtonState(void)</div><div class="ttdoc">Liefert den Status des Tasters vom Drehencoder.</div><div class="ttdef"><b>Definition:</b> encoder.c:192</div></div>
<div class="ttc" id="aencoder_8h_html_a660e5b11dce82f5b307f628def81d188"><div class="ttname"><a href="encoder_8h.html#a660e5b11dce82f5b307f628def81d188">EncoderPolling</a></div><div class="ttdeci">void EncoderPolling(void)</div><div class="ttdoc">EncoderPolling.</div><div class="ttdef"><b>Definition:</b> encoder.c:66</div></div>
<div class="ttc" id="aencoder_8h_html_a80ec2c177aa9c2636f797ca881381827"><div class="ttname"><a href="encoder_8h.html#a80ec2c177aa9c2636f797ca881381827">EncoderInit</a></div><div class="ttdeci">void EncoderInit(void)</div><div class="ttdoc">Initialisierung des Drehencoders und der Startwerte.</div><div class="ttdef"><b>Definition:</b> encoder.c:44</div></div>
<div class="ttc" id="aencoder_8h_html_a9ec6df4b13c9134f1c61546b718cd563"><div class="ttname"><a href="encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563">EncoderRead</a></div><div class="ttdeci">int8_t EncoderRead(char Ueberlauf)</div><div class="ttdoc">Liest die akt. Position des Drehencoders.</div><div class="ttdef"><b>Definition:</b> encoder.c:143</div></div>
<div class="ttc" id="aencoder_8h_html_ab5afede50bbce8aae40f3d02be64a374"><div class="ttname"><a href="encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374">EncoderMinMax</a></div><div class="ttdeci">void EncoderMinMax(int8_t EncoderMin, int8_t EncoderMax)</div><div class="ttdoc">Setzt den minimalen und maximalen Bereich des Drehencoders.</div><div class="ttdef"><b>Definition:</b> encoder.c:179</div></div>
<div class="ttc" id="aencoder_8h_html_ac9e955efd05fd5f6579bb5e179b506c7"><div class="ttname"><a href="encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7">EncoderWrite</a></div><div class="ttdeci">void EncoderWrite(int8_t EncoderPos)</div><div class="ttdoc">Setzt die aktuelle Position des Drehencoders.</div><div class="ttdef"><b>Definition:</b> encoder.c:168</div></div>
<div class="ttc" id="aglobals_8h_html_a3a1db669858552a5c21490149c648e12"><div class="ttname"><a href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a></div><div class="ttdeci">volatile int8_t EncoderPos</div><div class="ttdoc">Encoderposition für WpM/BpM.</div><div class="ttdef"><b>Definition:</b> globals.h:188</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="encoder_8h.html">encoder.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Auflistung der Dateien</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('files.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Auflistung der Dateien</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Dateien mit einer Kurzbeschreibung:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="controls_8c.html" target="_self">controls.c</a></td><td class="desc">Display und Bedienelemente </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="controls_8h_source.html"><span class="icondoc"></span></a><a class="el" href="controls_8h.html" target="_self">controls.h</a></td><td class="desc">Headerdatei für <a class="el" href="controls_8c.html" title="Display und Bedienelemente.">controls.c</a> </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="encoder_8c.html" target="_self">encoder.c</a></td><td class="desc">Drehencoder Library </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="encoder_8h_source.html"><span class="icondoc"></span></a><a class="el" href="encoder_8h.html" target="_self">encoder.h</a></td><td class="desc">Headerdatei Drehencoder Library </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="functions_8c.html" target="_self">functions.c</a></td><td class="desc">Diverse Funktionen </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="functions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="functions_8h.html" target="_self">functions.h</a></td><td class="desc">Headerdatei für <a class="el" href="functions_8c.html" title="Diverse Funktionen.">functions.c</a> </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="globals_8h_source.html"><span class="icondoc"></span></a><a class="el" href="globals_8h.html" target="_self">globals.h</a></td><td class="desc">Globale Variablen, Definitionen und Prototypen </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="main_8c.html" target="_self">main.c</a></td><td class="desc">BJ-Keyer, ein elektronischer Morsekeyer </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="main_8h_source.html"><span class="icondoc"></span></a><a class="el" href="main_8h.html" target="_self">main.h</a></td><td class="desc">Headerdatei für <a class="el" href="main_8c.html" title="BJ-Keyer, ein elektronischer Morsekeyer.">main.c</a> </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="vt100_8c.html" target="_self">vt100.c</a></td><td class="desc">VT100 Terminalausgabe </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="vt100_8h_source.html"><span class="icondoc"></span></a><a class="el" href="vt100_8h.html" target="_self">vt100.h</a></td><td class="desc">Headerdatei für <a class="el" href="vt100_8c.html" title="VT100 Terminalausgabe.">vt100.c</a> </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,14 @@
var files_dup =
[
[ "controls.c", "controls_8c.html", "controls_8c" ],
[ "controls.h", "controls_8h.html", "controls_8h" ],
[ "encoder.c", "encoder_8c.html", "encoder_8c" ],
[ "encoder.h", "encoder_8h.html", "encoder_8h" ],
[ "functions.c", "functions_8c.html", "functions_8c" ],
[ "functions.h", "functions_8h.html", "functions_8h" ],
[ "globals.h", "globals_8h.html", "globals_8h" ],
[ "main.c", "main_8c.html", "main_8c" ],
[ "main.h", "main_8h.html", "main_8h" ],
[ "vt100.c", "vt100_8c.html", "vt100_8c" ],
[ "vt100.h", "vt100_8h.html", "vt100_8h" ]
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

@ -0,0 +1,273 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Datenstruktur-Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Strukturen und Varianten mit Verweisen auf die Dokumentation zu jedem Element:</div>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>Ausgabe
: <a class="el" href="structSerialState.html#a6a240fb88c230572cb4235b1d70f3da8">SerialState</a>
</li>
<li>Automatic
: <a class="el" href="structState.html#a77084e27de545c8c9326e317a8c1edff">State</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>buttonPressed
: <a class="el" href="structMenuCtrl.html#aee5679939884de604d3e5ad970ec0cbb">MenuCtrl</a>
</li>
<li>buttonPressedLong
: <a class="el" href="structMenuCtrl.html#a45ed8ad2a9ae8803b446e599fb66fa78">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>ClrScr
: <a class="el" href="structMenuCtrl.html#ad890262e118180236b9eb54f7611b47c">MenuCtrl</a>
</li>
<li>Config
: <a class="el" href="structMenuCtrl.html#a47430d7c1484d7e5e18ae5a7fc4f8335">MenuCtrl</a>
</li>
<li>CurMenue
: <a class="el" href="structMenuCtrl.html#a458df051e05029982d088d98ac1a8069">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DahPressed
: <a class="el" href="structState.html#a76bff5a7c3dd312851c50afccd017b33">State</a>
</li>
<li>DebounceTime
: <a class="el" href="structConfig.html#ace4e1403e52d3d19aa9f2470a13cfaa3">Config</a>
</li>
<li>DitPressed
: <a class="el" href="structState.html#a0e3dcd5d2b54a5256fd71a1d956a2a0d">State</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>Eingabe
: <a class="el" href="structSerialState.html#aab0f350cb64b46822bfe911c465865ad">SerialState</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>KeyerMode
: <a class="el" href="structConfig.html#aef4f69db097a750c80f3b719bc14f341">Config</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LastSymbolWasDit
: <a class="el" href="structState.html#a0b10c2ed83f730ab25f808ca4159e0a1">State</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>m_buttonPressed
: <a class="el" href="structMenuCtrl.html#ac934eaf7540f23d8f603938031f95e10">MenuCtrl</a>
</li>
<li>m_buttonPressedLong
: <a class="el" href="structMenuCtrl.html#a143a285e1e4805feb057173b9116dcd0">MenuCtrl</a>
</li>
<li>MemButtonMode
: <a class="el" href="structConfig.html#adfbadb3847cb30d90b89f2db5b4850e4">Config</a>
</li>
<li>Memory
: <a class="el" href="structConfig.html#a471840b99ff046bf1404f8640a8193a8">Config</a>
</li>
<li>Msg1
: <a class="el" href="structMessage.html#a2265026394e7342c8434c932a5a777dd">Message</a>
</li>
<li>Msg2
: <a class="el" href="structMessage.html#ac5dad0fd3a9c8a443977e7edcaae96cc">Message</a>
</li>
<li>Msg3
: <a class="el" href="structMessage.html#a528c006fad602df75797db19063db917">Message</a>
</li>
<li>Msg4
: <a class="el" href="structMessage.html#a74a2060eb9e78eb89cb64498f9b56ea1">Message</a>
</li>
<li>Msg5
: <a class="el" href="structMessage.html#a6cdeaba6701076a96352634f7d2bfe8e">Message</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>Ratio
: <a class="el" href="structConfig.html#ac8db90b71b36d0a49ef231e68fb42797">Config</a>
</li>
<li>Reverse
: <a class="el" href="structConfig.html#a8be063e5e1e539a860e2714b30d66ecc">Config</a>
</li>
<li>RiseTime
: <a class="el" href="structConfig.html#a627e732da58565b3d28f99b82c6a5c54">Config</a>
</li>
<li>RiseTimeCounter
: <a class="el" href="structConfig.html#a5afac0757bcf374b784a1250501d0bb0">Config</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>SendStatus
: <a class="el" href="structState.html#ac9b34cc2b3cb4f8ffe789278d9b76616">State</a>
</li>
<li>SidetoneEnabled
: <a class="el" href="structConfig.html#a7d6dfda9db154b977769378223d56eff">Config</a>
, <a class="el" href="structState.html#aaebbf5da7337abd9a683f6fd3d63087d">State</a>
</li>
<li>SidetoneFreq
: <a class="el" href="structConfig.html#aa3910963f687f6cea42eb74a662f0504">Config</a>
</li>
<li>SidetoneOff
: <a class="el" href="structState.html#a5e94242222ee7d6061fb36f5374f36b4">State</a>
</li>
<li>SubMenue
: <a class="el" href="structMenuCtrl.html#a18592f292af3324a9d91db635c2e6fec">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>Trx1
: <a class="el" href="structConfig.html#a69e7d809f90ded45fed3d7511f5145dd">Config</a>
</li>
<li>Trx2
: <a class="el" href="structConfig.html#a4401df925b1dc135a26043c0809db461">Config</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>Update
: <a class="el" href="structMenuCtrl.html#ab5689421bcc8b519acde95507a30261d">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_w"></a>- w -</h3><ul>
<li>Weight
: <a class="el" href="structConfig.html#ace909792695e3949303df7fc26668739">Config</a>
</li>
<li>WpM
: <a class="el" href="structConfig.html#ad897d01be9484ac915e8d545c5937e16">Config</a>
</li>
<li>WpMBpM
: <a class="el" href="structConfig.html#a663b40e9d018ada8d4b6b97b4b2f5be0">Config</a>
</li>
<li>WpMChanged
: <a class="el" href="structState.html#a52ffc38efd1a9798d8d92014fe664e62">State</a>
</li>
<li>WriteEEprom
: <a class="el" href="structState.html#a0589ba8e59b2a9a246ce8d14f783577b">State</a>
</li>
<li>WriteMsgEEprom
: <a class="el" href="structState.html#acbc62fb74e564116927efe2f2147b8b9">State</a>
</li>
<li>WriteWpMEEprom
: <a class="el" href="structState.html#a0213cd5057520f3b652f3755dcdc0e70">State</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,55 @@
var functions_8c =
[
[ "Beep", "functions_8c.html#a2f616a93763b4bc437c4311d653c0491", null ],
[ "BeepBoop", "functions_8c.html#a72913eefa74c0c044d815a0b759577fa", null ],
[ "Boop", "functions_8c.html#a0366eaeb4aab61562dcd5b24994d0103", null ],
[ "CheckButtons", "functions_8c.html#a4010a7257caeca55f68c98ee199d3ea2", null ],
[ "CheckDahPaddle", "functions_8c.html#ac0bccd022514697217eaf063b1b2c0fa", null ],
[ "CheckDitPaddle", "functions_8c.html#a7783dcd27ef486bce541c85e10131394", null ],
[ "CheckPaddles", "functions_8c.html#a9bd61bc3c9e38f6b325e4ba3f96d9472", null ],
[ "CheckStraightKey", "functions_8c.html#a68bed2cd125260e9c6eb7f6f8e0c9106", null ],
[ "DelayMilliSeconds", "functions_8c.html#ada3125b546b3115e7afc2e51bc7db894", null ],
[ "GetMilliSeconds", "functions_8c.html#a682e380769f82867a41c13d632bb3cca", null ],
[ "IntDisable", "functions_8c.html#ae2f4a274ba95c3e94edd58ce6f129de4", null ],
[ "IntEnable", "functions_8c.html#ab321d23dfab578b6a40f3c5e8894c280", null ],
[ "ReadEEprom", "functions_8c.html#adf7f3486f66ae3386f330a5172dfdf52", null ],
[ "ReadEEpromWpM", "functions_8c.html#a3435bb0409b2c91ab253f4bd4cdc03e1", null ],
[ "ResetMilliSeconds", "functions_8c.html#a318f7eb176f7797e0166cbd652855a3c", null ],
[ "SendChar", "functions_8c.html#a49e16203823a4921910161bd2610987a", null ],
[ "SendDah", "functions_8c.html#a3dfd0f785e0377a124c423ac5ef8ddde", null ],
[ "SendDit", "functions_8c.html#a22d2dd23cb17e53e75c7d6366d9205d6", null ],
[ "SendIambic", "functions_8c.html#a683e588b64df83d67f1342ed5eeb099b", null ],
[ "SendString", "functions_8c.html#a33edcf2aa23f97390659434ead6ef593", null ],
[ "SendSymbol", "functions_8c.html#a3e6e9a204e6bac15fdc0fe500390517c", null ],
[ "SerialWriteChar", "functions_8c.html#a8684d17e55772fc84a10c9e778705eda", null ],
[ "SerialWriteString", "functions_8c.html#ac2bac61999066f61501cd244a237192e", null ],
[ "SetEEprom", "functions_8c.html#a4e592b116ccf5c55bbb5979bb7193981", null ],
[ "SetFrequency", "functions_8c.html#af3375f394993997701d75ee441810edc", null ],
[ "SetRatio", "functions_8c.html#aa0e063cf32b840a3ed51ae9aa677e2be", null ],
[ "SetWeight", "functions_8c.html#a7a31f60576d112eca1abddf447df8248", null ],
[ "SidetoneDisable", "functions_8c.html#ae8011166e9324f9f3c6948249eb15fd1", null ],
[ "SidetoneEnable", "functions_8c.html#a60f2f041b0803584ba5fc2e0a373ed50", null ],
[ "SidetoneOff", "functions_8c.html#ad82537f7ea58b4eb375952ce52615c4d", null ],
[ "SidetoneOn", "functions_8c.html#aa037229dc16e974a22eedcd6990a7b9d", null ],
[ "Tone", "functions_8c.html#a859cf4a556750b8aa340761627fb6c42", null ],
[ "TXKey", "functions_8c.html#aafcd99a76b601d8b43b6827d414ccddb", null ],
[ "WriteEEprom", "functions_8c.html#a586bc00ad3164def7ec76ac9bda4f1bc", null ],
[ "WriteEEpromWpM", "functions_8c.html#a838ffc3ce94fc8c85429e5297a185022", null ],
[ "Dummy", "functions_8c.html#a763e48e059d99b10646ca16a7e177df8", null ],
[ "ee_DebounceTime", "functions_8c.html#af46a7ac73709b59ac331e84016c6600f", null ],
[ "ee_Dummy", "functions_8c.html#a42f0b8f91ce6b2a23dd6ff8672d13b95", null ],
[ "ee_KeyerMode", "functions_8c.html#a169f1099862f2dc874d344eb240fd8c2", null ],
[ "ee_MemButtonMode", "functions_8c.html#a3f1e9ffbb5d98febdd58a4fa82b01f30", null ],
[ "ee_Memory", "functions_8c.html#a5f69205a6897625598ead5ab6a740fc7", null ],
[ "ee_Ratio", "functions_8c.html#a8814741a33f0a4f2e14eee14d8c00dad", null ],
[ "ee_Reverse", "functions_8c.html#ad5a1c7f3fe4cc3af1873519f70586866", null ],
[ "ee_RiseTime", "functions_8c.html#acde6a28c5a5747443f823ff09dce682b", null ],
[ "ee_RiseTimeCounter", "functions_8c.html#a138d8a4a73593b01e9ffdfebc7134c89", null ],
[ "ee_SidetoneEnabled", "functions_8c.html#a8f9b2a72d7b1d5f1c28673c36a51a33a", null ],
[ "ee_SidetoneFreq", "functions_8c.html#a025c31b4a3c9adca80df2782808579a7", null ],
[ "ee_Trx1", "functions_8c.html#a1c70858b9aea8006017b70d201604a96", null ],
[ "ee_Trx2", "functions_8c.html#a6f6cc3866f25698f6f9185e422ce7b8c", null ],
[ "ee_Weight", "functions_8c.html#ac8f8c751bbe43f711df2e1ba13f79994", null ],
[ "ee_WpM", "functions_8c.html#af636ee63fad94f56f61f334e0c2e46b0", null ],
[ "ee_WpMBpM", "functions_8c.html#a7c955b77d04539b88678e94d72deeef0", null ]
];

@ -0,0 +1,25 @@
<map id="functions.c" name="functions.c">
<area shape="rect" id="node1" title="Diverse Funktionen." alt="" coords="839,5,926,32"/>
<area shape="rect" id="node2" href="$functions_8h.html" title="Headerdatei für functions.c." alt="" coords="839,80,926,107"/>
<area shape="rect" id="node3" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="852,155,913,181"/>
<area shape="rect" id="node4" href="$globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,304,792,331"/>
<area shape="rect" id="node21" href="$encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="830,304,909,331"/>
<area shape="rect" id="node22" href="$controls_8h.html" title="Headerdatei für controls.c." alt="" coords="766,229,845,256"/>
<area shape="rect" id="node23" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="921,229,986,256"/>
<area shape="rect" id="node5" title=" " alt="" coords="5,379,69,405"/>
<area shape="rect" id="node6" title=" " alt="" coords="93,379,155,405"/>
<area shape="rect" id="node7" title=" " alt="" coords="179,379,245,405"/>
<area shape="rect" id="node8" title=" " alt="" coords="269,379,334,405"/>
<area shape="rect" id="node9" title=" " alt="" coords="358,379,421,405"/>
<area shape="rect" id="node10" title=" " alt="" coords="445,379,523,405"/>
<area shape="rect" id="node11" title=" " alt="" coords="547,379,613,405"/>
<area shape="rect" id="node12" title=" " alt="" coords="637,379,752,405"/>
<area shape="rect" id="node13" title=" " alt="" coords="777,379,853,405"/>
<area shape="rect" id="node14" title=" " alt="" coords="877,379,979,405"/>
<area shape="rect" id="node15" title=" " alt="" coords="1004,379,1103,405"/>
<area shape="rect" id="node16" title=" " alt="" coords="1127,379,1209,405"/>
<area shape="rect" id="node17" title=" " alt="" coords="1233,379,1327,405"/>
<area shape="rect" id="node18" title=" " alt="" coords="1351,379,1430,405"/>
<area shape="rect" id="node19" title=" " alt="" coords="1454,379,1533,405"/>
<area shape="rect" id="node20" title=" " alt="" coords="1557,379,1640,405"/>
</map>

@ -0,0 +1 @@
607d6c2dcb7bbf36264929cd8e425bf6

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

File diff suppressed because it is too large Load Diff

@ -0,0 +1,34 @@
var functions_8h =
[
[ "Beep", "functions_8h.html#a2f616a93763b4bc437c4311d653c0491", null ],
[ "BeepBoop", "functions_8h.html#a72913eefa74c0c044d815a0b759577fa", null ],
[ "Boop", "functions_8h.html#a0366eaeb4aab61562dcd5b24994d0103", null ],
[ "CheckPaddles", "functions_8h.html#a9bd61bc3c9e38f6b325e4ba3f96d9472", null ],
[ "DelayMilliSeconds", "functions_8h.html#ada3125b546b3115e7afc2e51bc7db894", null ],
[ "DisablePinChangeIRQ", "functions_8h.html#afeb1aaa538ce3d5ffb072786aed23a55", null ],
[ "EnablePinChangeIRQ", "functions_8h.html#a002f7b6558d9508ba71e95c8defd3ab4", null ],
[ "GetMilliSeconds", "functions_8h.html#a682e380769f82867a41c13d632bb3cca", null ],
[ "IntDisable", "functions_8h.html#ae2f4a274ba95c3e94edd58ce6f129de4", null ],
[ "IntEnable", "functions_8h.html#ab321d23dfab578b6a40f3c5e8894c280", null ],
[ "ReadEEprom", "functions_8h.html#adf7f3486f66ae3386f330a5172dfdf52", null ],
[ "ReadEEpromWpM", "functions_8h.html#a3435bb0409b2c91ab253f4bd4cdc03e1", null ],
[ "ResetMilliSeconds", "functions_8h.html#a318f7eb176f7797e0166cbd652855a3c", null ],
[ "SendChar", "functions_8h.html#a49e16203823a4921910161bd2610987a", null ],
[ "SendDah", "functions_8h.html#a3dfd0f785e0377a124c423ac5ef8ddde", null ],
[ "SendDit", "functions_8h.html#a22d2dd23cb17e53e75c7d6366d9205d6", null ],
[ "SendIambic", "functions_8h.html#a683e588b64df83d67f1342ed5eeb099b", null ],
[ "SendMemory", "functions_8h.html#adf505a2f38b0bd35e6030c8e9a82ae2a", null ],
[ "SendString", "functions_8h.html#a33edcf2aa23f97390659434ead6ef593", null ],
[ "SerialWriteChar", "functions_8h.html#a8684d17e55772fc84a10c9e778705eda", null ],
[ "SerialWriteString", "functions_8h.html#ac2bac61999066f61501cd244a237192e", null ],
[ "SetEEprom", "functions_8h.html#a4e592b116ccf5c55bbb5979bb7193981", null ],
[ "SetRatio", "functions_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be", null ],
[ "SetWeight", "functions_8h.html#a7a31f60576d112eca1abddf447df8248", null ],
[ "SideToneOff", "functions_8h.html#a543d0f249e5b505063a706525f99ff3a", null ],
[ "SideToneOn", "functions_8h.html#ab97cfac63db09807e98220a4b660bba1", null ],
[ "SymbolLoop", "functions_8h.html#a2a5677c9c6904f13c1fa4fd1b4bc0fd8", null ],
[ "Tone", "functions_8h.html#a859cf4a556750b8aa340761627fb6c42", null ],
[ "WriteEEprom", "functions_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc", null ],
[ "WriteEEpromWpM", "functions_8h.html#a838ffc3ce94fc8c85429e5297a185022", null ],
[ "sreg_tmp", "functions_8h.html#a82a35872e59db8f8de1f0e42854355dd", null ]
];

@ -0,0 +1,8 @@
<map id="functions.h" name="functions.h">
<area shape="rect" id="node1" title="Headerdatei für functions.c." alt="" coords="99,5,185,32"/>
<area shape="rect" id="node2" href="$functions_8c.html" title="Diverse Funktionen." alt="" coords="5,80,92,107"/>
<area shape="rect" id="node3" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="111,155,173,181"/>
<area shape="rect" id="node5" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="192,80,257,107"/>
<area shape="rect" id="node4" href="$main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="111,229,173,256"/>
<area shape="rect" id="node6" href="$vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="197,155,263,181"/>
</map>

@ -0,0 +1 @@
2b8c81e233bd3f30bc714f1d808115a4

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,24 @@
<map id="functions.h" name="functions.h">
<area shape="rect" id="node1" title="Headerdatei für functions.c." alt="" coords="839,5,926,32"/>
<area shape="rect" id="node2" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="852,80,913,107"/>
<area shape="rect" id="node3" href="$globals_8h.html" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,229,792,256"/>
<area shape="rect" id="node20" href="$encoder_8h.html" title="Headerdatei Drehencoder Library." alt="" coords="830,229,909,256"/>
<area shape="rect" id="node21" href="$controls_8h.html" title="Headerdatei für controls.c." alt="" coords="766,155,845,181"/>
<area shape="rect" id="node22" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="921,155,986,181"/>
<area shape="rect" id="node4" title=" " alt="" coords="5,304,69,331"/>
<area shape="rect" id="node5" title=" " alt="" coords="93,304,155,331"/>
<area shape="rect" id="node6" title=" " alt="" coords="179,304,245,331"/>
<area shape="rect" id="node7" title=" " alt="" coords="269,304,334,331"/>
<area shape="rect" id="node8" title=" " alt="" coords="358,304,421,331"/>
<area shape="rect" id="node9" title=" " alt="" coords="445,304,523,331"/>
<area shape="rect" id="node10" title=" " alt="" coords="547,304,613,331"/>
<area shape="rect" id="node11" title=" " alt="" coords="637,304,752,331"/>
<area shape="rect" id="node12" title=" " alt="" coords="777,304,853,331"/>
<area shape="rect" id="node13" title=" " alt="" coords="877,304,979,331"/>
<area shape="rect" id="node14" title=" " alt="" coords="1004,304,1103,331"/>
<area shape="rect" id="node15" title=" " alt="" coords="1127,304,1209,331"/>
<area shape="rect" id="node16" title=" " alt="" coords="1233,304,1327,331"/>
<area shape="rect" id="node17" title=" " alt="" coords="1351,304,1430,331"/>
<area shape="rect" id="node18" title=" " alt="" coords="1454,304,1533,331"/>
<area shape="rect" id="node19" title=" " alt="" coords="1557,304,1640,331"/>
</map>

@ -0,0 +1 @@
4c565b2502657d6bf578143f1cb702b1

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

@ -0,0 +1,173 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: functions.h Quellcode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">functions.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="functions_8h.html">gehe zur Dokumentation dieser Datei</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#ifndef FUNCTIONS_H_INCLUDED</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define FUNCTIONS_H_INCLUDED</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_8h.html">main.h</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="functions_8h.html#a82a35872e59db8f8de1f0e42854355dd"> 10</a></span>&#160;uint8_t <a class="code" href="functions_8h.html#a82a35872e59db8f8de1f0e42854355dd">sreg_tmp</a>; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// Prototypes</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keywordtype">void</span> SymbolLoop(uint8_t Len);</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a9bd61bc3c9e38f6b325e4ba3f96d9472">CheckPaddles</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">SetRatio</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> SetWeight(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a22d2dd23cb17e53e75c7d6366d9205d6">SendDit</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a3dfd0f785e0377a124c423ac5ef8ddde">SendDah</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a683e588b64df83d67f1342ed5eeb099b">SendIambic</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a49e16203823a4921910161bd2610987a">SendChar</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c);</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a33edcf2aa23f97390659434ead6ef593">SendString</a>(<span class="keywordtype">char</span> *s);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// Sidetone</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keywordtype">void</span> SideToneOn(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> SideToneOff(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a859cf4a556750b8aa340761627fb6c42">Tone</a>(uint16_t f, uint8_t duration);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Boop</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a2f616a93763b4bc437c4311d653c0491">Beep</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a72913eefa74c0c044d815a0b759577fa">BeepBoop</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// Interrupt</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#ae2f4a274ba95c3e94edd58ce6f129de4">IntDisable</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#ab321d23dfab578b6a40f3c5e8894c280">IntEnable</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> DisablePinChangeIRQ(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> EnablePinChangeIRQ(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// EEPROM</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">WriteEEprom</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#adf7f3486f66ae3386f330a5172dfdf52">ReadEEprom</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a838ffc3ce94fc8c85429e5297a185022">WriteEEpromWpM</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a3435bb0409b2c91ab253f4bd4cdc03e1">ReadEEpromWpM</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a4e592b116ccf5c55bbb5979bb7193981">SetEEprom</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Serielle Schnittstelle</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">void</span> SerialWriteString(<span class="keywordtype">char</span> *s);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a8684d17e55772fc84a10c9e778705eda">SerialWriteChar</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> data);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Delay Millis</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#ada3125b546b3115e7afc2e51bc7db894">DelayMilliSeconds</a>(uint16_t ms);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">void</span> <a class="code" href="functions_8h.html#a318f7eb176f7797e0166cbd652855a3c">ResetMilliSeconds</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;uint16_t <a class="code" href="functions_8h.html#a682e380769f82867a41c13d632bb3cca">GetMilliSeconds</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Externals</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="functions_8h.html#adf505a2f38b0bd35e6030c8e9a82ae2a">SendMemory</a>(uint8_t ButtonPressed);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="afunctions_8h_html_a0366eaeb4aab61562dcd5b24994d0103"><div class="ttname"><a href="functions_8h.html#a0366eaeb4aab61562dcd5b24994d0103">Boop</a></div><div class="ttdeci">void Boop(void)</div><div class="ttdoc">Boop Ton ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:688</div></div>
<div class="ttc" id="afunctions_8h_html_a22d2dd23cb17e53e75c7d6366d9205d6"><div class="ttname"><a href="functions_8h.html#a22d2dd23cb17e53e75c7d6366d9205d6">SendDit</a></div><div class="ttdeci">void SendDit(void)</div><div class="ttdoc">Gibt einen Punkt aus.</div><div class="ttdef"><b>Definition:</b> functions.c:570</div></div>
<div class="ttc" id="afunctions_8h_html_a2f616a93763b4bc437c4311d653c0491"><div class="ttname"><a href="functions_8h.html#a2f616a93763b4bc437c4311d653c0491">Beep</a></div><div class="ttdeci">void Beep(void)</div><div class="ttdoc">Beep Ton ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:698</div></div>
<div class="ttc" id="afunctions_8h_html_a318f7eb176f7797e0166cbd652855a3c"><div class="ttname"><a href="functions_8h.html#a318f7eb176f7797e0166cbd652855a3c">ResetMilliSeconds</a></div><div class="ttdeci">void ResetMilliSeconds(void)</div><div class="ttdoc">Setzt den Millisekundenzähler für Zeitschleifen auf 0.</div><div class="ttdef"><b>Definition:</b> functions.c:67</div></div>
<div class="ttc" id="afunctions_8h_html_a33edcf2aa23f97390659434ead6ef593"><div class="ttname"><a href="functions_8h.html#a33edcf2aa23f97390659434ead6ef593">SendString</a></div><div class="ttdeci">void SendString(char *s)</div><div class="ttdoc">Gibt eine Zeichenkette als Morsecode aus.</div><div class="ttdef"><b>Definition:</b> functions.c:729</div></div>
<div class="ttc" id="afunctions_8h_html_a3435bb0409b2c91ab253f4bd4cdc03e1"><div class="ttname"><a href="functions_8h.html#a3435bb0409b2c91ab253f4bd4cdc03e1">ReadEEpromWpM</a></div><div class="ttdeci">void ReadEEpromWpM(void)</div><div class="ttdoc">Gespeicherte Einstellung für die Geschwindigkeit aus EEprom lesen.</div><div class="ttdef"><b>Definition:</b> functions.c:129</div></div>
<div class="ttc" id="afunctions_8h_html_a3dfd0f785e0377a124c423ac5ef8ddde"><div class="ttname"><a href="functions_8h.html#a3dfd0f785e0377a124c423ac5ef8ddde">SendDah</a></div><div class="ttdeci">void SendDah(void)</div><div class="ttdoc">Gibt einen Strich aus.</div><div class="ttdef"><b>Definition:</b> functions.c:588</div></div>
<div class="ttc" id="afunctions_8h_html_a49e16203823a4921910161bd2610987a"><div class="ttname"><a href="functions_8h.html#a49e16203823a4921910161bd2610987a">SendChar</a></div><div class="ttdeci">void SendChar(unsigned char c)</div><div class="ttdoc">Gibt ein Zeichen aus.</div><div class="ttdef"><b>Definition:</b> functions.c:759</div></div>
<div class="ttc" id="afunctions_8h_html_a4e592b116ccf5c55bbb5979bb7193981"><div class="ttname"><a href="functions_8h.html#a4e592b116ccf5c55bbb5979bb7193981">SetEEprom</a></div><div class="ttdeci">void SetEEprom(void)</div><div class="ttdoc">Standardeinstellungen (bei neuem Controller)</div><div class="ttdef"><b>Definition:</b> functions.c:158</div></div>
<div class="ttc" id="afunctions_8h_html_a586bc00ad3164def7ec76ac9bda4f1bc"><div class="ttname"><a href="functions_8h.html#a586bc00ad3164def7ec76ac9bda4f1bc">WriteEEprom</a></div><div class="ttdeci">void WriteEEprom(void)</div><div class="ttdoc">Akt. Einstellungen in EEPROM schreiben.</div><div class="ttdef"><b>Definition:</b> functions.c:102</div></div>
<div class="ttc" id="afunctions_8h_html_a682e380769f82867a41c13d632bb3cca"><div class="ttname"><a href="functions_8h.html#a682e380769f82867a41c13d632bb3cca">GetMilliSeconds</a></div><div class="ttdeci">uint16_t GetMilliSeconds(void)</div><div class="ttdoc">Zählerwert für Zeitschleifen auslesen.</div><div class="ttdef"><b>Definition:</b> functions.c:52</div></div>
<div class="ttc" id="afunctions_8h_html_a683e588b64df83d67f1342ed5eeb099b"><div class="ttname"><a href="functions_8h.html#a683e588b64df83d67f1342ed5eeb099b">SendIambic</a></div><div class="ttdeci">void SendIambic(void)</div><div class="ttdoc">Wenn beide Paddle betätigt sind, wird alternierend ein Punkt und Strich ausgegeben.</div><div class="ttdef"><b>Definition:</b> functions.c:612</div></div>
<div class="ttc" id="afunctions_8h_html_a72913eefa74c0c044d815a0b759577fa"><div class="ttname"><a href="functions_8h.html#a72913eefa74c0c044d815a0b759577fa">BeepBoop</a></div><div class="ttdeci">void BeepBoop(void)</div><div class="ttdoc">BeepBoop Doppelton ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:708</div></div>
<div class="ttc" id="afunctions_8h_html_a82a35872e59db8f8de1f0e42854355dd"><div class="ttname"><a href="functions_8h.html#a82a35872e59db8f8de1f0e42854355dd">sreg_tmp</a></div><div class="ttdeci">uint8_t sreg_tmp</div><div class="ttdoc">Merker für Registerinhalte.</div><div class="ttdef"><b>Definition:</b> functions.h:10</div></div>
<div class="ttc" id="afunctions_8h_html_a838ffc3ce94fc8c85429e5297a185022"><div class="ttname"><a href="functions_8h.html#a838ffc3ce94fc8c85429e5297a185022">WriteEEpromWpM</a></div><div class="ttdeci">void WriteEEpromWpM(void)</div><div class="ttdoc">Akt. Einstellung für die Geschwindigkeit in EEprom schreiben.</div><div class="ttdef"><b>Definition:</b> functions.c:141</div></div>
<div class="ttc" id="afunctions_8h_html_a859cf4a556750b8aa340761627fb6c42"><div class="ttname"><a href="functions_8h.html#a859cf4a556750b8aa340761627fb6c42">Tone</a></div><div class="ttdeci">void Tone(uint16_t f, uint8_t duration)</div><div class="ttdoc">Ausgabe eines Tons mit Dauer und Frequenz.</div><div class="ttdef"><b>Definition:</b> functions.c:674</div></div>
<div class="ttc" id="afunctions_8h_html_a8684d17e55772fc84a10c9e778705eda"><div class="ttname"><a href="functions_8h.html#a8684d17e55772fc84a10c9e778705eda">SerialWriteChar</a></div><div class="ttdeci">void SerialWriteChar(unsigned char data)</div><div class="ttdoc">Ein Zeichen über serielle Schnittstelle ausgeben.</div><div class="ttdef"><b>Definition:</b> functions.c:220</div></div>
<div class="ttc" id="afunctions_8h_html_a9bd61bc3c9e38f6b325e4ba3f96d9472"><div class="ttname"><a href="functions_8h.html#a9bd61bc3c9e38f6b325e4ba3f96d9472">CheckPaddles</a></div><div class="ttdeci">void CheckPaddles(void)</div><div class="ttdoc">Diese Funktion prüft, ob ein Paddle betätigt wurde.</div><div class="ttdef"><b>Definition:</b> functions.c:436</div></div>
<div class="ttc" id="afunctions_8h_html_aa0e063cf32b840a3ed51ae9aa677e2be"><div class="ttname"><a href="functions_8h.html#aa0e063cf32b840a3ed51ae9aa677e2be">SetRatio</a></div><div class="ttdeci">void SetRatio(void)</div><div class="ttdoc">Berechnung der Zeitdauer für Punkt und Strich.</div><div class="ttdef"><b>Definition:</b> functions.c:525</div></div>
<div class="ttc" id="afunctions_8h_html_ab321d23dfab578b6a40f3c5e8894c280"><div class="ttname"><a href="functions_8h.html#ab321d23dfab578b6a40f3c5e8894c280">IntEnable</a></div><div class="ttdeci">void IntEnable(void)</div><div class="ttdoc">Register wieder herstellen und Interrupts erlauben.</div><div class="ttdef"><b>Definition:</b> functions.c:80</div></div>
<div class="ttc" id="afunctions_8h_html_ada3125b546b3115e7afc2e51bc7db894"><div class="ttname"><a href="functions_8h.html#ada3125b546b3115e7afc2e51bc7db894">DelayMilliSeconds</a></div><div class="ttdeci">void DelayMilliSeconds(uint16_t ms)</div><div class="ttdoc">Zeitschleife von 1-65535 Millisekunden.</div><div class="ttdef"><b>Definition:</b> functions.c:33</div></div>
<div class="ttc" id="afunctions_8h_html_adf505a2f38b0bd35e6030c8e9a82ae2a"><div class="ttname"><a href="functions_8h.html#adf505a2f38b0bd35e6030c8e9a82ae2a">SendMemory</a></div><div class="ttdeci">void SendMemory(uint8_t ButtonPressed)</div><div class="ttdoc">Sendet den Text eines Speichers.</div><div class="ttdef"><b>Definition:</b> memory.c:46</div></div>
<div class="ttc" id="afunctions_8h_html_adf7f3486f66ae3386f330a5172dfdf52"><div class="ttname"><a href="functions_8h.html#adf7f3486f66ae3386f330a5172dfdf52">ReadEEprom</a></div><div class="ttdeci">void ReadEEprom(void)</div><div class="ttdoc">Einstellungen aus dem EEprom lesen.</div><div class="ttdef"><b>Definition:</b> functions.c:187</div></div>
<div class="ttc" id="afunctions_8h_html_ae2f4a274ba95c3e94edd58ce6f129de4"><div class="ttname"><a href="functions_8h.html#ae2f4a274ba95c3e94edd58ce6f129de4">IntDisable</a></div><div class="ttdeci">void IntDisable(void)</div><div class="ttdoc">Register sichern und Interrupts verbieten.</div><div class="ttdef"><b>Definition:</b> functions.c:91</div></div>
<div class="ttc" id="amain_8h_html"><div class="ttname"><a href="main_8h.html">main.h</a></div><div class="ttdoc">Headerdatei für main.c.</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="functions_8h.html">functions.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,273 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Datenstruktur-Elemente - Variablen</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions_vars.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;
<h3><a id="index_a"></a>- a -</h3><ul>
<li>Ausgabe
: <a class="el" href="structSerialState.html#a6a240fb88c230572cb4235b1d70f3da8">SerialState</a>
</li>
<li>Automatic
: <a class="el" href="structState.html#a77084e27de545c8c9326e317a8c1edff">State</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>buttonPressed
: <a class="el" href="structMenuCtrl.html#aee5679939884de604d3e5ad970ec0cbb">MenuCtrl</a>
</li>
<li>buttonPressedLong
: <a class="el" href="structMenuCtrl.html#a45ed8ad2a9ae8803b446e599fb66fa78">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>ClrScr
: <a class="el" href="structMenuCtrl.html#ad890262e118180236b9eb54f7611b47c">MenuCtrl</a>
</li>
<li>Config
: <a class="el" href="structMenuCtrl.html#a47430d7c1484d7e5e18ae5a7fc4f8335">MenuCtrl</a>
</li>
<li>CurMenue
: <a class="el" href="structMenuCtrl.html#a458df051e05029982d088d98ac1a8069">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DahPressed
: <a class="el" href="structState.html#a76bff5a7c3dd312851c50afccd017b33">State</a>
</li>
<li>DebounceTime
: <a class="el" href="structConfig.html#ace4e1403e52d3d19aa9f2470a13cfaa3">Config</a>
</li>
<li>DitPressed
: <a class="el" href="structState.html#a0e3dcd5d2b54a5256fd71a1d956a2a0d">State</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>Eingabe
: <a class="el" href="structSerialState.html#aab0f350cb64b46822bfe911c465865ad">SerialState</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>KeyerMode
: <a class="el" href="structConfig.html#aef4f69db097a750c80f3b719bc14f341">Config</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LastSymbolWasDit
: <a class="el" href="structState.html#a0b10c2ed83f730ab25f808ca4159e0a1">State</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>m_buttonPressed
: <a class="el" href="structMenuCtrl.html#ac934eaf7540f23d8f603938031f95e10">MenuCtrl</a>
</li>
<li>m_buttonPressedLong
: <a class="el" href="structMenuCtrl.html#a143a285e1e4805feb057173b9116dcd0">MenuCtrl</a>
</li>
<li>MemButtonMode
: <a class="el" href="structConfig.html#adfbadb3847cb30d90b89f2db5b4850e4">Config</a>
</li>
<li>Memory
: <a class="el" href="structConfig.html#a471840b99ff046bf1404f8640a8193a8">Config</a>
</li>
<li>Msg1
: <a class="el" href="structMessage.html#a2265026394e7342c8434c932a5a777dd">Message</a>
</li>
<li>Msg2
: <a class="el" href="structMessage.html#ac5dad0fd3a9c8a443977e7edcaae96cc">Message</a>
</li>
<li>Msg3
: <a class="el" href="structMessage.html#a528c006fad602df75797db19063db917">Message</a>
</li>
<li>Msg4
: <a class="el" href="structMessage.html#a74a2060eb9e78eb89cb64498f9b56ea1">Message</a>
</li>
<li>Msg5
: <a class="el" href="structMessage.html#a6cdeaba6701076a96352634f7d2bfe8e">Message</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>Ratio
: <a class="el" href="structConfig.html#ac8db90b71b36d0a49ef231e68fb42797">Config</a>
</li>
<li>Reverse
: <a class="el" href="structConfig.html#a8be063e5e1e539a860e2714b30d66ecc">Config</a>
</li>
<li>RiseTime
: <a class="el" href="structConfig.html#a627e732da58565b3d28f99b82c6a5c54">Config</a>
</li>
<li>RiseTimeCounter
: <a class="el" href="structConfig.html#a5afac0757bcf374b784a1250501d0bb0">Config</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>SendStatus
: <a class="el" href="structState.html#ac9b34cc2b3cb4f8ffe789278d9b76616">State</a>
</li>
<li>SidetoneEnabled
: <a class="el" href="structConfig.html#a7d6dfda9db154b977769378223d56eff">Config</a>
, <a class="el" href="structState.html#aaebbf5da7337abd9a683f6fd3d63087d">State</a>
</li>
<li>SidetoneFreq
: <a class="el" href="structConfig.html#aa3910963f687f6cea42eb74a662f0504">Config</a>
</li>
<li>SidetoneOff
: <a class="el" href="structState.html#a5e94242222ee7d6061fb36f5374f36b4">State</a>
</li>
<li>SubMenue
: <a class="el" href="structMenuCtrl.html#a18592f292af3324a9d91db635c2e6fec">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>Trx1
: <a class="el" href="structConfig.html#a69e7d809f90ded45fed3d7511f5145dd">Config</a>
</li>
<li>Trx2
: <a class="el" href="structConfig.html#a4401df925b1dc135a26043c0809db461">Config</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>Update
: <a class="el" href="structMenuCtrl.html#ab5689421bcc8b519acde95507a30261d">MenuCtrl</a>
</li>
</ul>
<h3><a id="index_w"></a>- w -</h3><ul>
<li>Weight
: <a class="el" href="structConfig.html#ace909792695e3949303df7fc26668739">Config</a>
</li>
<li>WpM
: <a class="el" href="structConfig.html#ad897d01be9484ac915e8d545c5937e16">Config</a>
</li>
<li>WpMBpM
: <a class="el" href="structConfig.html#a663b40e9d018ada8d4b6b97b4b2f5be0">Config</a>
</li>
<li>WpMChanged
: <a class="el" href="structState.html#a52ffc38efd1a9798d8d92014fe664e62">State</a>
</li>
<li>WriteEEprom
: <a class="el" href="structState.html#a0589ba8e59b2a9a246ce8d14f783577b">State</a>
</li>
<li>WriteMsgEEprom
: <a class="el" href="structState.html#acbc62fb74e564116927efe2f2147b8b9">State</a>
</li>
<li>WriteWpMEEprom
: <a class="el" href="structState.html#a0213cd5057520f3b652f3755dcdc0e70">State</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen mit Verweisen auf die zugehörigen Dateien:</div>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>AUDIO
: <a class="el" href="globals_8h.html#a73ed4be5c2afc6b3c6d872c67f06b27b">globals.h</a>
</li>
<li>AUDIO_EN
: <a class="el" href="globals_8h.html#a9aae0b11edb13ba23962062c6310b48a">globals.h</a>
</li>
<li>AUTO
: <a class="el" href="globals_8h.html#a0cc6f7717df9fbdc0f33efb88720a639">globals.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,110 @@
var globals_8h =
[
[ "State", "structState.html", "structState" ],
[ "MenuCtrl", "structMenuCtrl.html", "structMenuCtrl" ],
[ "Config", "structConfig.html", "structConfig" ],
[ "Message", "structMessage.html", "structMessage" ],
[ "AUDIO", "globals_8h.html#a73ed4be5c2afc6b3c6d872c67f06b27b", null ],
[ "AUDIO_EN", "globals_8h.html#a9aae0b11edb13ba23962062c6310b48a", null ],
[ "AUTO", "globals_8h.html#a0cc6f7717df9fbdc0f33efb88720a639", null ],
[ "CALL", "globals_8h.html#aa980b5e5e502cf62bdca6c0452b97516", null ],
[ "cbi", "globals_8h.html#ae70baf5399951da1e7ad45a0ed890832", null ],
[ "CLEARLINE", "globals_8h.html#ae39a97a19b2e372929dabdc0e3822910", null ],
[ "DAH", "globals_8h.html#a3e7e891ff7a66fac8cbf2d81c91499a5", null ],
[ "DAH_DIT_OFF", "globals_8h.html#a2206cbd4be1ac8deb197ce07f11ee3e5", null ],
[ "DAH_DIT_ON", "globals_8h.html#a979c3e4f92443067e0d4844f11a11f47", null ],
[ "DIT", "globals_8h.html#a1d71d0c10cdc379fc3a1b2f029d3d9c9", null ],
[ "DIT_DAH_OFF", "globals_8h.html#a518c76a915f90d5175ce01e2007b62be", null ],
[ "DIT_DAH_ON", "globals_8h.html#a0486f3908c841216f2b7a08d8fde0098", null ],
[ "F_CPU", "globals_8h.html#a43bafb28b29491ec7f871319b5a3b2f8", null ],
[ "F_CPUPRESIN", "globals_8h.html#a1ff3ba8cf4ac5bd14d4189d600c5d367", null ],
[ "IAMBIC_A", "globals_8h.html#a1887a861cea3b6644def420638c0fc98", null ],
[ "IAMBIC_B", "globals_8h.html#ab4856cba3700d9faf68f3c36c38a64d5", null ],
[ "KEY_PRESSED", "globals_8h.html#a8386b89daf8ec3a1805554fd95b80a9e", null ],
[ "KEY_PRESSED_DEBOUNCE", "globals_8h.html#a9e2cfe84dafa1c4834ff619652d9a64c", null ],
[ "LEFT_PADDLE", "globals_8h.html#a8f0a217b99055286939b536efe9516f1", null ],
[ "M_DEBOUNCE", "globals_8h.html#a80ca77ca3492d1b5046c74dd71f3c0ba", null ],
[ "M_IAMBICA", "globals_8h.html#ae27e8d0e9f4019e3317b663153269b59", null ],
[ "M_IAMBICB", "globals_8h.html#a799f279139320d58849c9b39873bed97", null ],
[ "M_MAX", "globals_8h.html#a61819141b0164a35f4d791b0e696721f", null ],
[ "M_MEMBUTTONMODE", "globals_8h.html#a4ffa488bf9e0bec3211bfc7325ad1adc", null ],
[ "M_MEMORY", "globals_8h.html#a0b7f5f1f400522efde7ac959d42e6acb", null ],
[ "M_RATIO", "globals_8h.html#a935c2d21e455b9b554384acebcff05b0", null ],
[ "M_REVERSE", "globals_8h.html#afa9ef2159f32ec11b39b7408a90d3cf9", null ],
[ "M_RISETIME", "globals_8h.html#aac1d2918a98167deeddc74dfb73e0515", null ],
[ "M_TON", "globals_8h.html#a84501feff2919521b6051a205eb9467c", null ],
[ "M_TON_FREQ", "globals_8h.html#aa6f3b49681da4d4092468fb4dd1fe3d6", null ],
[ "M_TRX1", "globals_8h.html#ad54285de16d1e4eb57197272b15527c2", null ],
[ "M_TRX2", "globals_8h.html#a57235a40744e5ada2d7597832be662f6", null ],
[ "M_ULTIMATIC", "globals_8h.html#a0ef7a9454ad52abf182e22a751f37e9d", null ],
[ "M_WEIGHT", "globals_8h.html#a7cf02cee6c492d10d81fa7f8cd9e75d6", null ],
[ "M_WPMBPM", "globals_8h.html#a3531d6078fac920f06b5d54f073c66c7", null ],
[ "MAN", "globals_8h.html#accc898f427bcfab8f8554d0683a736de", null ],
[ "MEM1", "globals_8h.html#a5e91fefffdc4ae99555253d521d70d42", null ],
[ "MEM2", "globals_8h.html#af81f3155e333a7c017258f1a69949b0b", null ],
[ "MEM3", "globals_8h.html#afbacae6e435d743bef46dfc8369bf7c5", null ],
[ "MEM4", "globals_8h.html#ab305dee14a45b9899420fb017b6b0838", null ],
[ "MEM5", "globals_8h.html#a25a135b8117cdf599cdfe176200df2fa", null ],
[ "MORSE_LED", "globals_8h.html#adb6b98f999edb7b4152f2e3f8785406a", null ],
[ "MSGSIZE", "globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522", null ],
[ "NO_KEY_PRESSED", "globals_8h.html#aefdcc3e9dbabb74aeb89ff310722ba51", null ],
[ "NOINIT", "globals_8h.html#a2a59d5a77252e56299995f56e137cac6", null ],
[ "NORMAL", "globals_8h.html#a1291f416b069313021b519eea62d5bf1", null ],
[ "NOTHING", "globals_8h.html#aad4a7ebff687dc5228cc3fd4d25067f2", null ],
[ "OFF", "globals_8h.html#a29e413f6725b2ba32d165ffaa35b01e5", null ],
[ "ON", "globals_8h.html#ad76d1750a6cdeebd506bfcd6752554d2", null ],
[ "PADDLE_NORMAL", "globals_8h.html#a0f491a526845fa7f262309a82a0d7190", null ],
[ "PADDLE_REVERSE", "globals_8h.html#ab8fe6659548cbcff654c32b32903beab", null ],
[ "PRESCALER", "globals_8h.html#a0fac869d83ac1a584d6c45cf609f5fe7", null ],
[ "PRG", "globals_8h.html#a687ae7445182571cc179ad43ecd329e6", null ],
[ "RIGHT_PADDLE", "globals_8h.html#a2531fa489a13983ebf61c93e71ec43d5", null ],
[ "sbi", "globals_8h.html#ac4a5536d9bf092116f88b94797ddc882", null ],
[ "SCL", "globals_8h.html#ab5ffc4751921608954bb7a5687566b2d", null ],
[ "SDA", "globals_8h.html#a6890442e1cc24a0d61597a13576b8727", null ],
[ "SENDING_AUTOMATIC", "globals_8h.html#acbf37f526e50d2774c17f10d8d167532", null ],
[ "SENDING_DAH", "globals_8h.html#accfd3eb8f7e07b630344f41ecafc6e79", null ],
[ "SENDING_DIT", "globals_8h.html#a153dd0d1d330ebe85d5681984b690f19", null ],
[ "SENDING_NOTHING", "globals_8h.html#a26467aab195715bb21eca2df8d729078", null ],
[ "SENDING_SPC", "globals_8h.html#acfc4030c7ccaf6767ce25766c334c07b", null ],
[ "SENDING_STRAIGHT", "globals_8h.html#a69c769033e48b3d24d40255e3811a068", null ],
[ "SINEWAVELENGTH", "globals_8h.html#a89bbee3eaf4759d9c2bb75f2cc463c1c", null ],
[ "SINGLE_PADDLE", "globals_8h.html#a21db5f41a6f17da0c82b95cda61b48ff", null ],
[ "STRAIGHT", "globals_8h.html#ae5284d1a5b3e5a009614298e3e7730bc", null ],
[ "STRAIGHT_KEY", "globals_8h.html#a7ce37f67d167ed8deb6c5e0e24c213d8", null ],
[ "TRX1", "globals_8h.html#a23a8a741ec974d3d82de16f4a59af347", null ],
[ "TRX2", "globals_8h.html#a8bf6fec9796ce1a4372b299d2ac6079e", null ],
[ "UBRR_VALUE", "globals_8h.html#a0b029ff580b042a27aaac4bd2ec925e2", null ],
[ "ULTIMATIC", "globals_8h.html#a37afa2db2d5b90d445555f29ed6d44a9", null ],
[ "USART_BAUDRATE", "globals_8h.html#a6a53a6c94a70cc286e300a0ea8f46ba4", null ],
[ "VER", "globals_8h.html#a98ed931f97fef7e06e3ea441d0326c67", null ],
[ "DahMillis", "globals_8h.html#ad4e6326c3ab1d15391fcc416ff86c436", null ],
[ "DitMillis", "globals_8h.html#a2f7701e9783a70804580512902c10ee7", null ],
[ "EncoderCounter", "globals_8h.html#a426d3fb4cd1535f9e7616df2601f4ddc", null ],
[ "EncoderPos", "globals_8h.html#a3a1db669858552a5c21490149c648e12", null ],
[ "EncoderPosConfig", "globals_8h.html#a2b61ba3fb70419b8b5151d7216f6ab87", null ],
[ "EncoderPosSubConfig", "globals_8h.html#a2afbcb36398df196b3205ab28f612edf", null ],
[ "EncoderTimer", "globals_8h.html#a1756e538888c2c722809420489b62a53", null ],
[ "icnt", "globals_8h.html#a5a4807ab81f5583d7c509be8897714a1", null ],
[ "KeyerMode", "globals_8h.html#a9a19b6437a6a56a5855dd3488c6428f8", null ],
[ "KeyTX", "globals_8h.html#ad1fad28daa019aa1084957dd6e7a808a", null ],
[ "lastButton", "globals_8h.html#acee5a37cadaac095a39a4ae4d033df7d", null ],
[ "LastPINDState", "globals_8h.html#a69df8d53e45e7fceeeca61ebeed0c249", null ],
[ "MenuCtrlTimer", "globals_8h.html#a088c685d08447f6614b3aea76cd94582", null ],
[ "ocr2a", "globals_8h.html#a7f2869abff8463c80351c1a4dda05b0d", null ],
[ "PaddleMode", "globals_8h.html#ad7f78d2aebfab57b15aa5bf6e28d8723", null ],
[ "SpcMillis", "globals_8h.html#a7db74a7792308dd1d7c35be61d5ff9e8", null ],
[ "StateButtonPressed", "globals_8h.html#a094f3d15714cd07a3536db03d58cb818", null ],
[ "StatePaddleDahKeyPressed", "globals_8h.html#a92483c848dd64122cc79472ad979f5e5", null ],
[ "StatePaddleDitKeyPressed", "globals_8h.html#a9684e7a5392d3dc5b8436002c3ce1c85", null ],
[ "StateRiseTime", "globals_8h.html#ab36cf30c9e53f719929eba1f738e4b12", null ],
[ "StateRiseTimeCounter", "globals_8h.html#a03249b48d31b6f929b91011f73c3eb56", null ],
[ "StateStraightKeyPressed", "globals_8h.html#a39b1d9792105a52be2c2713ecf044a97", null ],
[ "StoreEEpromTimer", "globals_8h.html#ab51365843be3e4ebfabfc836b59e7ef1", null ],
[ "t_delayms", "globals_8h.html#a4a4d36a87b010340a12f80300a0c5f76", null ],
[ "t_elementlength", "globals_8h.html#a8a613665f46a0641e6dc293da130ab23", null ],
[ "TimerButtonPressed", "globals_8h.html#a926757eaf37be188fd6e15410d83c953", null ],
[ "TimerPaddleDahKeyPressed", "globals_8h.html#a57e73db78b59b4d79e72189fb0158f7a", null ],
[ "TimerPaddleDitKeyPressed", "globals_8h.html#a170fcf4ece2368541f1bcb04a3dd1511", null ],
[ "TimerStraightKeyPressed", "globals_8h.html#a0ca92f009021ed55c2f9199cf5bf80c3", null ],
[ "WpM", "globals_8h.html#a28fa6cb1767abefbe9c197700410d946", null ]
];

@ -0,0 +1,11 @@
<map id="globals.h" name="globals.h">
<area shape="rect" id="node1" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="63,5,138,32"/>
<area shape="rect" id="node2" href="$controls_8h.html" title="Headerdatei für controls.c." alt="" coords="23,80,101,107"/>
<area shape="rect" id="node4" href="$main_8h.html" title="Headerdatei für main.c." alt="" coords="109,155,170,181"/>
<area shape="rect" id="node3" href="$controls_8c.html" title="Display und Bedienelemente." alt="" coords="5,155,84,181"/>
<area shape="rect" id="node5" href="$functions_8h.html" title="Headerdatei für functions.c." alt="" coords="47,229,133,256"/>
<area shape="rect" id="node9" href="$main_8c.html" title="BJ&#45;Keyer, ein elektronischer Morsekeyer." alt="" coords="158,229,219,256"/>
<area shape="rect" id="node6" href="$functions_8c.html" title="Diverse Funktionen." alt="" coords="47,304,133,331"/>
<area shape="rect" id="node7" href="$vt100_8h.html" title="Headerdatei für vt100.c." alt="" coords="191,304,256,331"/>
<area shape="rect" id="node8" href="$vt100_8c.html" title="VT100 Terminalausgabe." alt="" coords="191,379,256,405"/>
</map>

@ -0,0 +1 @@
d8ebd8eaacc9f4a51f3abfd493b2bf05

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,19 @@
<map id="globals.h" name="globals.h">
<area shape="rect" id="node1" title="Globale Variablen, Definitionen und Prototypen." alt="" coords="717,5,792,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,69,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="93,80,155,107"/>
<area shape="rect" id="node4" title=" " alt="" coords="179,80,245,107"/>
<area shape="rect" id="node5" title=" " alt="" coords="269,80,334,107"/>
<area shape="rect" id="node6" title=" " alt="" coords="358,80,421,107"/>
<area shape="rect" id="node7" title=" " alt="" coords="445,80,523,107"/>
<area shape="rect" id="node8" title=" " alt="" coords="547,80,613,107"/>
<area shape="rect" id="node9" title=" " alt="" coords="637,80,752,107"/>
<area shape="rect" id="node10" title=" " alt="" coords="777,80,853,107"/>
<area shape="rect" id="node11" title=" " alt="" coords="877,80,979,107"/>
<area shape="rect" id="node12" title=" " alt="" coords="1004,80,1103,107"/>
<area shape="rect" id="node13" title=" " alt="" coords="1127,80,1209,107"/>
<area shape="rect" id="node14" title=" " alt="" coords="1233,80,1327,107"/>
<area shape="rect" id="node15" title=" " alt="" coords="1351,80,1430,107"/>
<area shape="rect" id="node16" title=" " alt="" coords="1454,80,1533,107"/>
<area shape="rect" id="node17" title=" " alt="" coords="1557,80,1640,107"/>
</map>

@ -0,0 +1 @@
c8fbade9a88bd8c81194a8a194f53654

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@ -0,0 +1,382 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: globals.h Quellcode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">globals.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="globals_8h.html">gehe zur Dokumentation dieser Datei</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#ifndef GLOBALS_H_INCLUDED</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define GLOBALS_H_INCLUDED</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define F_CPU 16000000UL</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define PRESCALER 8</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define SINEWAVELENGTH 64</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define F_CPUPRESIN (F_CPU/(PRESCALER*SINEWAVELENGTH))</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define USART_BAUDRATE 9600</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;inttypes.h&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;avr/io.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;avr/wdt.h&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;avr/interrupt.h&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;avr/eeprom.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;util/delay.h&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;util/atomic.h&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define cbi(sfr, bit) (_SFR_BYTE(sfr) &amp;= ~_BV(bit)) </span><span class="comment">// clear bit</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) </span><span class="comment">// set bit</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;oled/i2c.h&quot;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;oled/lcd.h&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;oled/font.h&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#ifndef EEMEM</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define EEMEM __attribute__ ((section (&quot;.eeprom&quot;</span>)))</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifndef NOINIT</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NOINIT __attribute__ ((section (&quot;.noinit&quot;</span>)))</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define CALL &quot; DL7BJ &quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define PRG &quot; BJ-Keyer &quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define VER &quot; V1.03 &quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="globals_8h.html#aad4a7ebff687dc5228cc3fd4d25067f2"> 51</a></span>&#160;<span class="preprocessor">#define NOTHING 0</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#define DIT_DAH_OFF 1</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define DAH_DIT_OFF 2</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#define DIT_DAH_ON 3</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define DAH_DIT_ON 4</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="globals_8h.html#ae5284d1a5b3e5a009614298e3e7730bc"> 57</a></span>&#160;<span class="preprocessor">#define STRAIGHT 0</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define IAMBIC_B 1</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define IAMBIC_A 2</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define ULTIMATIC 3</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define SINGLE_PADDLE 4</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="globals_8h.html#a0f491a526845fa7f262309a82a0d7190"> 63</a></span>&#160;<span class="preprocessor">#define PADDLE_NORMAL 0</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define PADDLE_REVERSE 1</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="globals_8h.html#a26467aab195715bb21eca2df8d729078"> 66</a></span>&#160;<span class="preprocessor">#define SENDING_NOTHING 0</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define SENDING_DIT 1</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#define SENDING_DAH 2</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#define SENDING_SPC 3</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#define SENDING_STRAIGHT 4</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define SENDING_AUTOMATIC 5</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="globals_8h.html#a0cc6f7717df9fbdc0f33efb88720a639"> 73</a></span>&#160;<span class="preprocessor">#define AUTO 0 </span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="globals_8h.html#accc898f427bcfab8f8554d0683a736de"> 74</a></span>&#160;<span class="preprocessor">#define MAN 1 </span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="globals_8h.html#a8f0a217b99055286939b536efe9516f1"> 76</a></span>&#160;<span class="preprocessor">#define LEFT_PADDLE PD2 </span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="globals_8h.html#a2531fa489a13983ebf61c93e71ec43d5"> 77</a></span>&#160;<span class="preprocessor">#define RIGHT_PADDLE PD3 </span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="globals_8h.html#a7ce37f67d167ed8deb6c5e0e24c213d8"> 78</a></span>&#160;<span class="preprocessor">#define STRAIGHT_KEY PD4 </span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="globals_8h.html#adb6b98f999edb7b4152f2e3f8785406a"> 79</a></span>&#160;<span class="preprocessor">#define MORSE_LED PC3 </span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="globals_8h.html#a5e91fefffdc4ae99555253d521d70d42"> 80</a></span>&#160;<span class="preprocessor">#define MEM1 PD5 </span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="globals_8h.html#af81f3155e333a7c017258f1a69949b0b"> 81</a></span>&#160;<span class="preprocessor">#define MEM2 PD6 </span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="globals_8h.html#afbacae6e435d743bef46dfc8369bf7c5"> 82</a></span>&#160;<span class="preprocessor">#define MEM3 PD7 </span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="globals_8h.html#ab305dee14a45b9899420fb017b6b0838"> 83</a></span>&#160;<span class="preprocessor">#define MEM4 PC0 </span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="globals_8h.html#a25a135b8117cdf599cdfe176200df2fa"> 84</a></span>&#160;<span class="preprocessor">#define MEM5 PB5 </span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="globals_8h.html#a23a8a741ec974d3d82de16f4a59af347"> 85</a></span>&#160;<span class="preprocessor">#define TRX1 PC1 </span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="globals_8h.html#a8bf6fec9796ce1a4372b299d2ac6079e"> 86</a></span>&#160;<span class="preprocessor">#define TRX2 PC2 </span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="globals_8h.html#a73ed4be5c2afc6b3c6d872c67f06b27b"> 87</a></span>&#160;<span class="preprocessor">#define AUDIO PB3 </span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="globals_8h.html#a9aae0b11edb13ba23962062c6310b48a"> 88</a></span>&#160;<span class="preprocessor">#define AUDIO_EN PB4 </span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="globals_8h.html#ab5ffc4751921608954bb7a5687566b2d"> 89</a></span>&#160;<span class="preprocessor">#define SCL PC5 </span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="globals_8h.html#a6890442e1cc24a0d61597a13576b8727"> 90</a></span>&#160;<span class="preprocessor">#define SDA PC4 </span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// States</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#define ON 1</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#define OFF 0</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#define DIT 1</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define DAH 0</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#define NO_KEY_PRESSED 0</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#define KEY_PRESSED_DEBOUNCE 1</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define KEY_PRESSED 2</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Menue und Drehencoder</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#define M_TRX1 1</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define M_TRX2 2</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#define M_TON 3</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#define M_TON_FREQ 4</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#define M_IAMBICA 5</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#define M_IAMBICB 6</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#define M_ULTIMATIC 7</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#define M_MEMORY 8</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#define M_REVERSE 9</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#define M_RATIO 10</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#define M_WEIGHT 11</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#define M_WPMBPM 12</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#define M_MEMBUTTONMODE 13</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#define M_RISETIME 14</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#define M_DEBOUNCE 15</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="globals_8h.html#a61819141b0164a35f4d791b0e696721f"> 115</a></span>&#160;<span class="preprocessor">#define M_MAX 15 </span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="globals_8h.html#ae39a97a19b2e372929dabdc0e3822910"> 117</a></span>&#160;<span class="preprocessor">#define CLEARLINE &quot; &quot;</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define NORMAL 0</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structState.html"> 120</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structState.html">State</a></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structState.html#a52ffc38efd1a9798d8d92014fe664e62"> 122</a></span>&#160; uint8_t <a class="code" href="structState.html#a52ffc38efd1a9798d8d92014fe664e62">WpMChanged</a>: 1; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structState.html#a0213cd5057520f3b652f3755dcdc0e70"> 123</a></span>&#160; uint8_t <a class="code" href="structState.html#a0213cd5057520f3b652f3755dcdc0e70">WriteWpMEEprom</a>: 1; </div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structState.html#a0589ba8e59b2a9a246ce8d14f783577b"> 124</a></span>&#160; uint8_t <a class="code" href="structState.html#a0589ba8e59b2a9a246ce8d14f783577b">WriteEEprom</a>: 1; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structState.html#acbc62fb74e564116927efe2f2147b8b9"> 125</a></span>&#160; uint8_t <a class="code" href="structState.html#acbc62fb74e564116927efe2f2147b8b9">WriteMsgEEprom</a>: 2; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="structState.html#a5e94242222ee7d6061fb36f5374f36b4"> 126</a></span>&#160; uint8_t <a class="code" href="structState.html#a5e94242222ee7d6061fb36f5374f36b4">SidetoneOff</a>: 1; </div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structState.html#aaebbf5da7337abd9a683f6fd3d63087d"> 127</a></span>&#160; uint8_t <a class="code" href="structState.html#aaebbf5da7337abd9a683f6fd3d63087d">SidetoneEnabled</a>: 1; </div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structState.html#ac9b34cc2b3cb4f8ffe789278d9b76616"> 128</a></span>&#160; uint8_t <a class="code" href="structState.html#ac9b34cc2b3cb4f8ffe789278d9b76616">SendStatus</a>; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structState.html#a77084e27de545c8c9326e317a8c1edff"> 129</a></span>&#160; uint8_t <a class="code" href="structState.html#a77084e27de545c8c9326e317a8c1edff">Automatic</a>; </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structState.html#a0b10c2ed83f730ab25f808ca4159e0a1"> 130</a></span>&#160; uint8_t <a class="code" href="structState.html#a0b10c2ed83f730ab25f808ca4159e0a1">LastSymbolWasDit</a>: 1; </div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structState.html#a0e3dcd5d2b54a5256fd71a1d956a2a0d"> 131</a></span>&#160; uint8_t <a class="code" href="structState.html#a0e3dcd5d2b54a5256fd71a1d956a2a0d">DitPressed</a>: 1; </div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structState.html#a76bff5a7c3dd312851c50afccd017b33"> 132</a></span>&#160; uint8_t <a class="code" href="structState.html#a76bff5a7c3dd312851c50afccd017b33">DahPressed</a>: 1; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint8_t KeyState:1; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint8_t KeyTX:1; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="structMenuCtrl.html"> 137</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structMenuCtrl.html">MenuCtrl</a></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#aee5679939884de604d3e5ad970ec0cbb"> 139</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#aee5679939884de604d3e5ad970ec0cbb">buttonPressed</a>: 1; </div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#a45ed8ad2a9ae8803b446e599fb66fa78"> 140</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#a45ed8ad2a9ae8803b446e599fb66fa78">buttonPressedLong</a>: 1; </div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#ac934eaf7540f23d8f603938031f95e10"> 141</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#ac934eaf7540f23d8f603938031f95e10">m_buttonPressed</a>: 2; </div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#a143a285e1e4805feb057173b9116dcd0"> 142</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#a143a285e1e4805feb057173b9116dcd0">m_buttonPressedLong</a>: 1; </div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#ad890262e118180236b9eb54f7611b47c"> 143</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#ad890262e118180236b9eb54f7611b47c">ClrScr</a>: 1; </div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#a47430d7c1484d7e5e18ae5a7fc4f8335"> 144</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#a47430d7c1484d7e5e18ae5a7fc4f8335">Config</a>: 1; </div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#ab5689421bcc8b519acde95507a30261d"> 145</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#ab5689421bcc8b519acde95507a30261d">Update</a>: 1; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#a458df051e05029982d088d98ac1a8069"> 146</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#a458df051e05029982d088d98ac1a8069">CurMenue</a>; </div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structMenuCtrl.html#a18592f292af3324a9d91db635c2e6fec"> 147</a></span>&#160; uint8_t <a class="code" href="structMenuCtrl.html#a18592f292af3324a9d91db635c2e6fec">SubMenue</a>: 1; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structConfig.html"> 150</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structConfig.html">Config</a></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;{</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structConfig.html#a69e7d809f90ded45fed3d7511f5145dd"> 152</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a69e7d809f90ded45fed3d7511f5145dd">Trx1</a>: 1; </div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structConfig.html#a4401df925b1dc135a26043c0809db461"> 153</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a4401df925b1dc135a26043c0809db461">Trx2</a>: 1; </div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structConfig.html#aef4f69db097a750c80f3b719bc14f341"> 154</a></span>&#160; uint8_t <a class="code" href="structConfig.html#aef4f69db097a750c80f3b719bc14f341">KeyerMode</a>: 3; </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structConfig.html#a7d6dfda9db154b977769378223d56eff"> 155</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a7d6dfda9db154b977769378223d56eff">SidetoneEnabled</a>: 1; </div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structConfig.html#a663b40e9d018ada8d4b6b97b4b2f5be0"> 156</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a663b40e9d018ada8d4b6b97b4b2f5be0">WpMBpM</a>: 1; </div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structConfig.html#a8be063e5e1e539a860e2714b30d66ecc"> 157</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a8be063e5e1e539a860e2714b30d66ecc">Reverse</a>: 1; </div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structConfig.html#ac8db90b71b36d0a49ef231e68fb42797"> 158</a></span>&#160; uint8_t <a class="code" href="structConfig.html#ac8db90b71b36d0a49ef231e68fb42797">Ratio</a>; </div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structConfig.html#ace909792695e3949303df7fc26668739"> 159</a></span>&#160; uint8_t <a class="code" href="structConfig.html#ace909792695e3949303df7fc26668739">Weight</a>; </div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structConfig.html#a471840b99ff046bf1404f8640a8193a8"> 160</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a471840b99ff046bf1404f8640a8193a8">Memory</a>:1; </div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="structConfig.html#adfbadb3847cb30d90b89f2db5b4850e4"> 161</a></span>&#160; uint8_t <a class="code" href="structConfig.html#adfbadb3847cb30d90b89f2db5b4850e4">MemButtonMode</a>:1; </div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structConfig.html#aa3910963f687f6cea42eb74a662f0504"> 162</a></span>&#160; uint16_t <a class="code" href="structConfig.html#aa3910963f687f6cea42eb74a662f0504">SidetoneFreq</a>; </div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structConfig.html#ad897d01be9484ac915e8d545c5937e16"> 163</a></span>&#160; uint8_t <a class="code" href="structConfig.html#ad897d01be9484ac915e8d545c5937e16">WpM</a>; </div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structConfig.html#a627e732da58565b3d28f99b82c6a5c54"> 164</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a627e732da58565b3d28f99b82c6a5c54">RiseTime</a>; </div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structConfig.html#a5afac0757bcf374b784a1250501d0bb0"> 165</a></span>&#160; uint8_t <a class="code" href="structConfig.html#a5afac0757bcf374b784a1250501d0bb0">RiseTimeCounter</a>; </div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="structConfig.html#ace4e1403e52d3d19aa9f2470a13cfaa3"> 166</a></span>&#160; uint8_t <a class="code" href="structConfig.html#ace4e1403e52d3d19aa9f2470a13cfaa3">DebounceTime</a>; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522"> 169</a></span>&#160;<span class="preprocessor">#define MSGSIZE 60 </span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structMessage.html"> 171</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structMessage.html">Message</a> </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structMessage.html#a2265026394e7342c8434c932a5a777dd"> 173</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structMessage.html#a2265026394e7342c8434c932a5a777dd">Msg1</a>[<a class="code" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a>]; </div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structMessage.html#ac5dad0fd3a9c8a443977e7edcaae96cc"> 174</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structMessage.html#ac5dad0fd3a9c8a443977e7edcaae96cc">Msg2</a>[<a class="code" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a>]; </div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structMessage.html#a528c006fad602df75797db19063db917"> 175</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structMessage.html#a528c006fad602df75797db19063db917">Msg3</a>[<a class="code" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a>]; </div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structMessage.html#a74a2060eb9e78eb89cb64498f9b56ea1"> 176</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structMessage.html#a74a2060eb9e78eb89cb64498f9b56ea1">Msg4</a>[<a class="code" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a>]; </div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structMessage.html#a6cdeaba6701076a96352634f7d2bfe8e"> 177</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structMessage.html#a6cdeaba6701076a96352634f7d2bfe8e">Msg5</a>[<a class="code" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a>]; </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// Pin Change Interrupt Merker für Port </span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;uint8_t LastPINDState;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Drehencoder</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="globals_8h.html#a1756e538888c2c722809420489b62a53"> 186</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a1756e538888c2c722809420489b62a53">EncoderTimer</a>; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="globals_8h.html#a426d3fb4cd1535f9e7616df2601f4ddc"> 187</a></span>&#160;<span class="keyword">volatile</span> int8_t <a class="code" href="globals_8h.html#a426d3fb4cd1535f9e7616df2601f4ddc">EncoderCounter</a>; </div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="globals_8h.html#a3a1db669858552a5c21490149c648e12"> 188</a></span>&#160;<span class="keyword">volatile</span> int8_t <a class="code" href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a>; </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="globals_8h.html#a2b61ba3fb70419b8b5151d7216f6ab87"> 189</a></span>&#160;<span class="keyword">volatile</span> int8_t <a class="code" href="globals_8h.html#a2b61ba3fb70419b8b5151d7216f6ab87">EncoderPosConfig</a>; </div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="globals_8h.html#a2afbcb36398df196b3205ab28f612edf"> 190</a></span>&#160;<span class="keyword">volatile</span> int8_t <a class="code" href="globals_8h.html#a2afbcb36398df196b3205ab28f612edf">EncoderPosSubConfig</a>; </div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="globals_8h.html#ab51365843be3e4ebfabfc836b59e7ef1"> 191</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#ab51365843be3e4ebfabfc836b59e7ef1">StoreEEpromTimer</a>; </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="controls_8h.html#a28fa6cb1767abefbe9c197700410d946"> 193</a></span>&#160;uint8_t <a class="code" href="globals_8h.html#a28fa6cb1767abefbe9c197700410d946">WpM</a>; </div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="globals_8h.html#ad7f78d2aebfab57b15aa5bf6e28d8723"> 194</a></span>&#160;uint8_t <a class="code" href="globals_8h.html#ad7f78d2aebfab57b15aa5bf6e28d8723">PaddleMode</a>; </div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="globals_8h.html#a9a19b6437a6a56a5855dd3488c6428f8"> 195</a></span>&#160;uint8_t <a class="code" href="globals_8h.html#a9a19b6437a6a56a5855dd3488c6428f8">KeyerMode</a>; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;uint8_t KeyTX;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// Sidetone generation</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword">volatile</span> uint8_t icnt;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">volatile</span> uint8_t ocr2a;</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="globals_8h.html#acee5a37cadaac095a39a4ae4d033df7d"> 201</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#acee5a37cadaac095a39a4ae4d033df7d">lastButton</a>; </div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="globals_8h.html#a2f7701e9783a70804580512902c10ee7"> 202</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#a2f7701e9783a70804580512902c10ee7">DitMillis</a>; </div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="globals_8h.html#ad4e6326c3ab1d15391fcc416ff86c436"> 203</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#ad4e6326c3ab1d15391fcc416ff86c436">DahMillis</a>; </div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="globals_8h.html#a7db74a7792308dd1d7c35be61d5ff9e8"> 204</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#a7db74a7792308dd1d7c35be61d5ff9e8">SpcMillis</a>; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// Zähler und Status für Entprellung der Tasteneingänge und Mithörton</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="globals_8h.html#a39b1d9792105a52be2c2713ecf044a97"> 206</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a39b1d9792105a52be2c2713ecf044a97">StateStraightKeyPressed</a>; </div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="globals_8h.html#a0ca92f009021ed55c2f9199cf5bf80c3"> 207</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a0ca92f009021ed55c2f9199cf5bf80c3">TimerStraightKeyPressed</a>; </div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="globals_8h.html#a9684e7a5392d3dc5b8436002c3ce1c85"> 208</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a9684e7a5392d3dc5b8436002c3ce1c85">StatePaddleDitKeyPressed</a>; </div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="globals_8h.html#a170fcf4ece2368541f1bcb04a3dd1511"> 209</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a170fcf4ece2368541f1bcb04a3dd1511">TimerPaddleDitKeyPressed</a>; </div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="globals_8h.html#a92483c848dd64122cc79472ad979f5e5"> 210</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a92483c848dd64122cc79472ad979f5e5">StatePaddleDahKeyPressed</a>; </div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="globals_8h.html#a57e73db78b59b4d79e72189fb0158f7a"> 211</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a57e73db78b59b4d79e72189fb0158f7a">TimerPaddleDahKeyPressed</a>; </div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="globals_8h.html#a094f3d15714cd07a3536db03d58cb818"> 212</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a094f3d15714cd07a3536db03d58cb818">StateButtonPressed</a>; </div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="globals_8h.html#a926757eaf37be188fd6e15410d83c953"> 213</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a926757eaf37be188fd6e15410d83c953">TimerButtonPressed</a>; </div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="globals_8h.html#a03249b48d31b6f929b91011f73c3eb56"> 214</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#a03249b48d31b6f929b91011f73c3eb56">StateRiseTimeCounter</a>; </div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="globals_8h.html#ab36cf30c9e53f719929eba1f738e4b12"> 215</a></span>&#160;<span class="keyword">volatile</span> uint8_t <a class="code" href="globals_8h.html#ab36cf30c9e53f719929eba1f738e4b12">StateRiseTime</a>; </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// Diverse Zähler für Timer 0</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="controls_8h.html#a088c685d08447f6614b3aea76cd94582"> 217</a></span>&#160;uint16_t <a class="code" href="globals_8h.html#a088c685d08447f6614b3aea76cd94582">MenuCtrlTimer</a>; </div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="globals_8h.html#a4a4d36a87b010340a12f80300a0c5f76"> 218</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#a4a4d36a87b010340a12f80300a0c5f76">t_delayms</a>; </div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="globals_8h.html#a8a613665f46a0641e6dc293da130ab23"> 219</a></span>&#160;<span class="keyword">volatile</span> uint16_t <a class="code" href="globals_8h.html#a8a613665f46a0641e6dc293da130ab23">t_elementlength</a>; </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif </span></div>
<div class="ttc" id="aglobals_8h_html_a03249b48d31b6f929b91011f73c3eb56"><div class="ttname"><a href="globals_8h.html#a03249b48d31b6f929b91011f73c3eb56">StateRiseTimeCounter</a></div><div class="ttdeci">volatile uint8_t StateRiseTimeCounter</div><div class="ttdoc">Zähler für Anstieg des Mithörtons.</div><div class="ttdef"><b>Definition:</b> globals.h:214</div></div>
<div class="ttc" id="aglobals_8h_html_a088c685d08447f6614b3aea76cd94582"><div class="ttname"><a href="globals_8h.html#a088c685d08447f6614b3aea76cd94582">MenuCtrlTimer</a></div><div class="ttdeci">uint16_t MenuCtrlTimer</div><div class="ttdoc">Wartezeit bis zur Betriebsanzeige nach Config.</div><div class="ttdef"><b>Definition:</b> globals.h:217</div></div>
<div class="ttc" id="aglobals_8h_html_a094f3d15714cd07a3536db03d58cb818"><div class="ttname"><a href="globals_8h.html#a094f3d15714cd07a3536db03d58cb818">StateButtonPressed</a></div><div class="ttdeci">volatile uint8_t StateButtonPressed</div><div class="ttdoc">Merker für Speichertaste betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:212</div></div>
<div class="ttc" id="aglobals_8h_html_a0ca92f009021ed55c2f9199cf5bf80c3"><div class="ttname"><a href="globals_8h.html#a0ca92f009021ed55c2f9199cf5bf80c3">TimerStraightKeyPressed</a></div><div class="ttdeci">volatile uint8_t TimerStraightKeyPressed</div><div class="ttdoc">Timer Variable für Entprellung.</div><div class="ttdef"><b>Definition:</b> globals.h:207</div></div>
<div class="ttc" id="aglobals_8h_html_a170fcf4ece2368541f1bcb04a3dd1511"><div class="ttname"><a href="globals_8h.html#a170fcf4ece2368541f1bcb04a3dd1511">TimerPaddleDitKeyPressed</a></div><div class="ttdeci">volatile uint8_t TimerPaddleDitKeyPressed</div><div class="ttdoc">Timer Variable für Entprellung.</div><div class="ttdef"><b>Definition:</b> globals.h:209</div></div>
<div class="ttc" id="aglobals_8h_html_a1756e538888c2c722809420489b62a53"><div class="ttname"><a href="globals_8h.html#a1756e538888c2c722809420489b62a53">EncoderTimer</a></div><div class="ttdeci">volatile uint8_t EncoderTimer</div><div class="ttdoc">10ms Timer for Encoder</div><div class="ttdef"><b>Definition:</b> globals.h:186</div></div>
<div class="ttc" id="aglobals_8h_html_a28fa6cb1767abefbe9c197700410d946"><div class="ttname"><a href="globals_8h.html#a28fa6cb1767abefbe9c197700410d946">WpM</a></div><div class="ttdeci">uint8_t WpM</div><div class="ttdoc">Aktuelle Zeichengeschwindigkeit.</div><div class="ttdef"><b>Definition:</b> globals.h:193</div></div>
<div class="ttc" id="aglobals_8h_html_a2afbcb36398df196b3205ab28f612edf"><div class="ttname"><a href="globals_8h.html#a2afbcb36398df196b3205ab28f612edf">EncoderPosSubConfig</a></div><div class="ttdeci">volatile int8_t EncoderPosSubConfig</div><div class="ttdoc">Encoderposition für Submenues.</div><div class="ttdef"><b>Definition:</b> globals.h:190</div></div>
<div class="ttc" id="aglobals_8h_html_a2b61ba3fb70419b8b5151d7216f6ab87"><div class="ttname"><a href="globals_8h.html#a2b61ba3fb70419b8b5151d7216f6ab87">EncoderPosConfig</a></div><div class="ttdeci">volatile int8_t EncoderPosConfig</div><div class="ttdoc">Encoderposition für Einstellungen.</div><div class="ttdef"><b>Definition:</b> globals.h:189</div></div>
<div class="ttc" id="aglobals_8h_html_a2f7701e9783a70804580512902c10ee7"><div class="ttname"><a href="globals_8h.html#a2f7701e9783a70804580512902c10ee7">DitMillis</a></div><div class="ttdeci">volatile uint16_t DitMillis</div><div class="ttdoc">Dauer eines Dits.</div><div class="ttdef"><b>Definition:</b> globals.h:202</div></div>
<div class="ttc" id="aglobals_8h_html_a39b1d9792105a52be2c2713ecf044a97"><div class="ttname"><a href="globals_8h.html#a39b1d9792105a52be2c2713ecf044a97">StateStraightKeyPressed</a></div><div class="ttdeci">volatile uint8_t StateStraightKeyPressed</div><div class="ttdoc">Merker für StraightKey betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:206</div></div>
<div class="ttc" id="aglobals_8h_html_a3a1db669858552a5c21490149c648e12"><div class="ttname"><a href="globals_8h.html#a3a1db669858552a5c21490149c648e12">EncoderPos</a></div><div class="ttdeci">volatile int8_t EncoderPos</div><div class="ttdoc">Encoderposition für WpM/BpM.</div><div class="ttdef"><b>Definition:</b> globals.h:188</div></div>
<div class="ttc" id="aglobals_8h_html_a426d3fb4cd1535f9e7616df2601f4ddc"><div class="ttname"><a href="globals_8h.html#a426d3fb4cd1535f9e7616df2601f4ddc">EncoderCounter</a></div><div class="ttdeci">volatile int8_t EncoderCounter</div><div class="ttdoc">Vor/Rück Zähler.</div><div class="ttdef"><b>Definition:</b> globals.h:187</div></div>
<div class="ttc" id="aglobals_8h_html_a4a4d36a87b010340a12f80300a0c5f76"><div class="ttname"><a href="globals_8h.html#a4a4d36a87b010340a12f80300a0c5f76">t_delayms</a></div><div class="ttdeci">volatile uint16_t t_delayms</div><div class="ttdoc">Timer 0 max. 65535ms, all purpose timer variable.</div><div class="ttdef"><b>Definition:</b> globals.h:218</div></div>
<div class="ttc" id="aglobals_8h_html_a57332b76331a1bbe1d6807ddbb6d0522"><div class="ttname"><a href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">MSGSIZE</a></div><div class="ttdeci">#define MSGSIZE</div><div class="ttdoc">60 Zeichen für jeden Textspeicher</div><div class="ttdef"><b>Definition:</b> globals.h:169</div></div>
<div class="ttc" id="aglobals_8h_html_a57e73db78b59b4d79e72189fb0158f7a"><div class="ttname"><a href="globals_8h.html#a57e73db78b59b4d79e72189fb0158f7a">TimerPaddleDahKeyPressed</a></div><div class="ttdeci">volatile uint8_t TimerPaddleDahKeyPressed</div><div class="ttdoc">Timer Variable für Entprellung.</div><div class="ttdef"><b>Definition:</b> globals.h:211</div></div>
<div class="ttc" id="aglobals_8h_html_a7db74a7792308dd1d7c35be61d5ff9e8"><div class="ttname"><a href="globals_8h.html#a7db74a7792308dd1d7c35be61d5ff9e8">SpcMillis</a></div><div class="ttdeci">volatile uint16_t SpcMillis</div><div class="ttdoc">Dauer einer Pause zwischen den Zeichen.</div><div class="ttdef"><b>Definition:</b> globals.h:204</div></div>
<div class="ttc" id="aglobals_8h_html_a8a613665f46a0641e6dc293da130ab23"><div class="ttname"><a href="globals_8h.html#a8a613665f46a0641e6dc293da130ab23">t_elementlength</a></div><div class="ttdeci">volatile uint16_t t_elementlength</div><div class="ttdoc">Timer 0 max. 65535ms, element length of dit or dah.</div><div class="ttdef"><b>Definition:</b> globals.h:219</div></div>
<div class="ttc" id="aglobals_8h_html_a92483c848dd64122cc79472ad979f5e5"><div class="ttname"><a href="globals_8h.html#a92483c848dd64122cc79472ad979f5e5">StatePaddleDahKeyPressed</a></div><div class="ttdeci">volatile uint8_t StatePaddleDahKeyPressed</div><div class="ttdoc">Merker für Paddle betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:210</div></div>
<div class="ttc" id="aglobals_8h_html_a926757eaf37be188fd6e15410d83c953"><div class="ttname"><a href="globals_8h.html#a926757eaf37be188fd6e15410d83c953">TimerButtonPressed</a></div><div class="ttdeci">volatile uint8_t TimerButtonPressed</div><div class="ttdoc">Timer Variable für Entprellung.</div><div class="ttdef"><b>Definition:</b> globals.h:213</div></div>
<div class="ttc" id="aglobals_8h_html_a9684e7a5392d3dc5b8436002c3ce1c85"><div class="ttname"><a href="globals_8h.html#a9684e7a5392d3dc5b8436002c3ce1c85">StatePaddleDitKeyPressed</a></div><div class="ttdeci">volatile uint8_t StatePaddleDitKeyPressed</div><div class="ttdoc">Merker für Paddle betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:208</div></div>
<div class="ttc" id="aglobals_8h_html_a9a19b6437a6a56a5855dd3488c6428f8"><div class="ttname"><a href="globals_8h.html#a9a19b6437a6a56a5855dd3488c6428f8">KeyerMode</a></div><div class="ttdeci">uint8_t KeyerMode</div><div class="ttdoc">Merker für Iambic A, Iambic B oder Ultimatic.</div><div class="ttdef"><b>Definition:</b> globals.h:195</div></div>
<div class="ttc" id="aglobals_8h_html_ab36cf30c9e53f719929eba1f738e4b12"><div class="ttname"><a href="globals_8h.html#ab36cf30c9e53f719929eba1f738e4b12">StateRiseTime</a></div><div class="ttdeci">volatile uint8_t StateRiseTime</div><div class="ttdoc">Timer für Anstieg des Mithörtons.</div><div class="ttdef"><b>Definition:</b> globals.h:215</div></div>
<div class="ttc" id="aglobals_8h_html_ab51365843be3e4ebfabfc836b59e7ef1"><div class="ttname"><a href="globals_8h.html#ab51365843be3e4ebfabfc836b59e7ef1">StoreEEpromTimer</a></div><div class="ttdeci">volatile uint16_t StoreEEpromTimer</div><div class="ttdoc">Zählvariable für auto. Speicherung EEprom.</div><div class="ttdef"><b>Definition:</b> globals.h:191</div></div>
<div class="ttc" id="aglobals_8h_html_acee5a37cadaac095a39a4ae4d033df7d"><div class="ttname"><a href="globals_8h.html#acee5a37cadaac095a39a4ae4d033df7d">lastButton</a></div><div class="ttdeci">volatile uint8_t lastButton</div><div class="ttdoc">Wert der letzten Buttonabfrage.</div><div class="ttdef"><b>Definition:</b> globals.h:201</div></div>
<div class="ttc" id="aglobals_8h_html_ad4e6326c3ab1d15391fcc416ff86c436"><div class="ttname"><a href="globals_8h.html#ad4e6326c3ab1d15391fcc416ff86c436">DahMillis</a></div><div class="ttdeci">volatile uint16_t DahMillis</div><div class="ttdoc">Dauer eines Dahs.</div><div class="ttdef"><b>Definition:</b> globals.h:203</div></div>
<div class="ttc" id="aglobals_8h_html_ad7f78d2aebfab57b15aa5bf6e28d8723"><div class="ttname"><a href="globals_8h.html#ad7f78d2aebfab57b15aa5bf6e28d8723">PaddleMode</a></div><div class="ttdeci">uint8_t PaddleMode</div><div class="ttdoc">Merker für Links / Rechts vertauscht.</div><div class="ttdef"><b>Definition:</b> globals.h:194</div></div>
<div class="ttc" id="astructConfig_html"><div class="ttname"><a href="structConfig.html">Config</a></div><div class="ttdef"><b>Definition:</b> globals.h:151</div></div>
<div class="ttc" id="astructConfig_html_a4401df925b1dc135a26043c0809db461"><div class="ttname"><a href="structConfig.html#a4401df925b1dc135a26043c0809db461">Config::Trx2</a></div><div class="ttdeci">uint8_t Trx2</div><div class="ttdoc">TRX 2 eingeschaltet.</div><div class="ttdef"><b>Definition:</b> globals.h:153</div></div>
<div class="ttc" id="astructConfig_html_a471840b99ff046bf1404f8640a8193a8"><div class="ttname"><a href="structConfig.html#a471840b99ff046bf1404f8640a8193a8">Config::Memory</a></div><div class="ttdeci">uint8_t Memory</div><div class="ttdoc">Punkt/Strich Speicher.</div><div class="ttdef"><b>Definition:</b> globals.h:160</div></div>
<div class="ttc" id="astructConfig_html_a5afac0757bcf374b784a1250501d0bb0"><div class="ttname"><a href="structConfig.html#a5afac0757bcf374b784a1250501d0bb0">Config::RiseTimeCounter</a></div><div class="ttdeci">uint8_t RiseTimeCounter</div><div class="ttdoc">Anzahl Sinusschwingungen für den Anstieg.</div><div class="ttdef"><b>Definition:</b> globals.h:165</div></div>
<div class="ttc" id="astructConfig_html_a627e732da58565b3d28f99b82c6a5c54"><div class="ttname"><a href="structConfig.html#a627e732da58565b3d28f99b82c6a5c54">Config::RiseTime</a></div><div class="ttdeci">uint8_t RiseTime</div><div class="ttdoc">Anstiegszeit Sinuston.</div><div class="ttdef"><b>Definition:</b> globals.h:164</div></div>
<div class="ttc" id="astructConfig_html_a663b40e9d018ada8d4b6b97b4b2f5be0"><div class="ttname"><a href="structConfig.html#a663b40e9d018ada8d4b6b97b4b2f5be0">Config::WpMBpM</a></div><div class="ttdeci">uint8_t WpMBpM</div><div class="ttdoc">WpM oder BpM Anzeige.</div><div class="ttdef"><b>Definition:</b> globals.h:156</div></div>
<div class="ttc" id="astructConfig_html_a69e7d809f90ded45fed3d7511f5145dd"><div class="ttname"><a href="structConfig.html#a69e7d809f90ded45fed3d7511f5145dd">Config::Trx1</a></div><div class="ttdeci">uint8_t Trx1</div><div class="ttdoc">TRX 1 eingeschaltet.</div><div class="ttdef"><b>Definition:</b> globals.h:152</div></div>
<div class="ttc" id="astructConfig_html_a7d6dfda9db154b977769378223d56eff"><div class="ttname"><a href="structConfig.html#a7d6dfda9db154b977769378223d56eff">Config::SidetoneEnabled</a></div><div class="ttdeci">uint8_t SidetoneEnabled</div><div class="ttdoc">Mithörton eingeschaltet.</div><div class="ttdef"><b>Definition:</b> globals.h:155</div></div>
<div class="ttc" id="astructConfig_html_a8be063e5e1e539a860e2714b30d66ecc"><div class="ttname"><a href="structConfig.html#a8be063e5e1e539a860e2714b30d66ecc">Config::Reverse</a></div><div class="ttdeci">uint8_t Reverse</div><div class="ttdoc">linkes/rechtes Paddle vertauschen</div><div class="ttdef"><b>Definition:</b> globals.h:157</div></div>
<div class="ttc" id="astructConfig_html_aa3910963f687f6cea42eb74a662f0504"><div class="ttname"><a href="structConfig.html#aa3910963f687f6cea42eb74a662f0504">Config::SidetoneFreq</a></div><div class="ttdeci">uint16_t SidetoneFreq</div><div class="ttdoc">Frequenz des Mithörtons.</div><div class="ttdef"><b>Definition:</b> globals.h:162</div></div>
<div class="ttc" id="astructConfig_html_ac8db90b71b36d0a49ef231e68fb42797"><div class="ttname"><a href="structConfig.html#ac8db90b71b36d0a49ef231e68fb42797">Config::Ratio</a></div><div class="ttdeci">uint8_t Ratio</div><div class="ttdoc">Punkt/Strich Verhältnis 1:3.</div><div class="ttdef"><b>Definition:</b> globals.h:158</div></div>
<div class="ttc" id="astructConfig_html_ace4e1403e52d3d19aa9f2470a13cfaa3"><div class="ttname"><a href="structConfig.html#ace4e1403e52d3d19aa9f2470a13cfaa3">Config::DebounceTime</a></div><div class="ttdeci">uint8_t DebounceTime</div><div class="ttdoc">Entprellzeit für Straight Key Eingang.</div><div class="ttdef"><b>Definition:</b> globals.h:166</div></div>
<div class="ttc" id="astructConfig_html_ace909792695e3949303df7fc26668739"><div class="ttname"><a href="structConfig.html#ace909792695e3949303df7fc26668739">Config::Weight</a></div><div class="ttdeci">uint8_t Weight</div><div class="ttdoc">Punkt/Strich Gewichtung.</div><div class="ttdef"><b>Definition:</b> globals.h:159</div></div>
<div class="ttc" id="astructConfig_html_ad897d01be9484ac915e8d545c5937e16"><div class="ttname"><a href="structConfig.html#ad897d01be9484ac915e8d545c5937e16">Config::WpM</a></div><div class="ttdeci">uint8_t WpM</div><div class="ttdoc">WpM.</div><div class="ttdef"><b>Definition:</b> globals.h:163</div></div>
<div class="ttc" id="astructConfig_html_adfbadb3847cb30d90b89f2db5b4850e4"><div class="ttname"><a href="structConfig.html#adfbadb3847cb30d90b89f2db5b4850e4">Config::MemButtonMode</a></div><div class="ttdeci">uint8_t MemButtonMode</div><div class="ttdoc">Button 5 als Umschalter TRX oder Speichertaste.</div><div class="ttdef"><b>Definition:</b> globals.h:161</div></div>
<div class="ttc" id="astructConfig_html_aef4f69db097a750c80f3b719bc14f341"><div class="ttname"><a href="structConfig.html#aef4f69db097a750c80f3b719bc14f341">Config::KeyerMode</a></div><div class="ttdeci">uint8_t KeyerMode</div><div class="ttdoc">Iambic A, Iambic B oder Ultimatic.</div><div class="ttdef"><b>Definition:</b> globals.h:154</div></div>
<div class="ttc" id="astructMenuCtrl_html"><div class="ttname"><a href="structMenuCtrl.html">MenuCtrl</a></div><div class="ttdef"><b>Definition:</b> globals.h:138</div></div>
<div class="ttc" id="astructMenuCtrl_html_a143a285e1e4805feb057173b9116dcd0"><div class="ttname"><a href="structMenuCtrl.html#a143a285e1e4805feb057173b9116dcd0">MenuCtrl::m_buttonPressedLong</a></div><div class="ttdeci">uint8_t m_buttonPressedLong</div><div class="ttdoc">Merker für Taster Drehencoder lange gedrückt.</div><div class="ttdef"><b>Definition:</b> globals.h:142</div></div>
<div class="ttc" id="astructMenuCtrl_html_a18592f292af3324a9d91db635c2e6fec"><div class="ttname"><a href="structMenuCtrl.html#a18592f292af3324a9d91db635c2e6fec">MenuCtrl::SubMenue</a></div><div class="ttdeci">uint8_t SubMenue</div><div class="ttdoc">im Submenue</div><div class="ttdef"><b>Definition:</b> globals.h:147</div></div>
<div class="ttc" id="astructMenuCtrl_html_a458df051e05029982d088d98ac1a8069"><div class="ttname"><a href="structMenuCtrl.html#a458df051e05029982d088d98ac1a8069">MenuCtrl::CurMenue</a></div><div class="ttdeci">uint8_t CurMenue</div><div class="ttdoc">aktuelles Menue</div><div class="ttdef"><b>Definition:</b> globals.h:146</div></div>
<div class="ttc" id="astructMenuCtrl_html_a45ed8ad2a9ae8803b446e599fb66fa78"><div class="ttname"><a href="structMenuCtrl.html#a45ed8ad2a9ae8803b446e599fb66fa78">MenuCtrl::buttonPressedLong</a></div><div class="ttdeci">uint8_t buttonPressedLong</div><div class="ttdoc">Taster Drehencoder lange gedrückt.</div><div class="ttdef"><b>Definition:</b> globals.h:140</div></div>
<div class="ttc" id="astructMenuCtrl_html_a47430d7c1484d7e5e18ae5a7fc4f8335"><div class="ttname"><a href="structMenuCtrl.html#a47430d7c1484d7e5e18ae5a7fc4f8335">MenuCtrl::Config</a></div><div class="ttdeci">uint8_t Config</div><div class="ttdoc">Bitmerker für Config geändert.</div><div class="ttdef"><b>Definition:</b> globals.h:144</div></div>
<div class="ttc" id="astructMenuCtrl_html_ab5689421bcc8b519acde95507a30261d"><div class="ttname"><a href="structMenuCtrl.html#ab5689421bcc8b519acde95507a30261d">MenuCtrl::Update</a></div><div class="ttdeci">uint8_t Update</div><div class="ttdoc">Bitmerker für Display update.</div><div class="ttdef"><b>Definition:</b> globals.h:145</div></div>
<div class="ttc" id="astructMenuCtrl_html_ac934eaf7540f23d8f603938031f95e10"><div class="ttname"><a href="structMenuCtrl.html#ac934eaf7540f23d8f603938031f95e10">MenuCtrl::m_buttonPressed</a></div><div class="ttdeci">uint8_t m_buttonPressed</div><div class="ttdoc">Merker für Taster Drehencoder gedrückt.</div><div class="ttdef"><b>Definition:</b> globals.h:141</div></div>
<div class="ttc" id="astructMenuCtrl_html_ad890262e118180236b9eb54f7611b47c"><div class="ttname"><a href="structMenuCtrl.html#ad890262e118180236b9eb54f7611b47c">MenuCtrl::ClrScr</a></div><div class="ttdeci">uint8_t ClrScr</div><div class="ttdoc">Bitmerker für Display löschen.</div><div class="ttdef"><b>Definition:</b> globals.h:143</div></div>
<div class="ttc" id="astructMenuCtrl_html_aee5679939884de604d3e5ad970ec0cbb"><div class="ttname"><a href="structMenuCtrl.html#aee5679939884de604d3e5ad970ec0cbb">MenuCtrl::buttonPressed</a></div><div class="ttdeci">uint8_t buttonPressed</div><div class="ttdoc">Taster Drehencoder gedrückt.</div><div class="ttdef"><b>Definition:</b> globals.h:139</div></div>
<div class="ttc" id="astructMessage_html"><div class="ttname"><a href="structMessage.html">Message</a></div><div class="ttdef"><b>Definition:</b> globals.h:172</div></div>
<div class="ttc" id="astructMessage_html_a2265026394e7342c8434c932a5a777dd"><div class="ttname"><a href="structMessage.html#a2265026394e7342c8434c932a5a777dd">Message::Msg1</a></div><div class="ttdeci">char Msg1[60]</div><div class="ttdoc">Textspeicher 1.</div><div class="ttdef"><b>Definition:</b> globals.h:173</div></div>
<div class="ttc" id="astructMessage_html_a528c006fad602df75797db19063db917"><div class="ttname"><a href="structMessage.html#a528c006fad602df75797db19063db917">Message::Msg3</a></div><div class="ttdeci">char Msg3[60]</div><div class="ttdoc">Textspeicher 3.</div><div class="ttdef"><b>Definition:</b> globals.h:175</div></div>
<div class="ttc" id="astructMessage_html_a6cdeaba6701076a96352634f7d2bfe8e"><div class="ttname"><a href="structMessage.html#a6cdeaba6701076a96352634f7d2bfe8e">Message::Msg5</a></div><div class="ttdeci">char Msg5[60]</div><div class="ttdoc">Textspeicher 5.</div><div class="ttdef"><b>Definition:</b> globals.h:177</div></div>
<div class="ttc" id="astructMessage_html_a74a2060eb9e78eb89cb64498f9b56ea1"><div class="ttname"><a href="structMessage.html#a74a2060eb9e78eb89cb64498f9b56ea1">Message::Msg4</a></div><div class="ttdeci">char Msg4[60]</div><div class="ttdoc">Textspeicher 4.</div><div class="ttdef"><b>Definition:</b> globals.h:176</div></div>
<div class="ttc" id="astructMessage_html_ac5dad0fd3a9c8a443977e7edcaae96cc"><div class="ttname"><a href="structMessage.html#ac5dad0fd3a9c8a443977e7edcaae96cc">Message::Msg2</a></div><div class="ttdeci">char Msg2[60]</div><div class="ttdoc">Textspeicher 2.</div><div class="ttdef"><b>Definition:</b> globals.h:174</div></div>
<div class="ttc" id="astructState_html"><div class="ttname"><a href="structState.html">State</a></div><div class="ttdef"><b>Definition:</b> globals.h:121</div></div>
<div class="ttc" id="astructState_html_a0213cd5057520f3b652f3755dcdc0e70"><div class="ttname"><a href="structState.html#a0213cd5057520f3b652f3755dcdc0e70">State::WriteWpMEEprom</a></div><div class="ttdeci">uint8_t WriteWpMEEprom</div><div class="ttdoc">nicht gespeicherte Geschwindigkeit</div><div class="ttdef"><b>Definition:</b> globals.h:123</div></div>
<div class="ttc" id="astructState_html_a0589ba8e59b2a9a246ce8d14f783577b"><div class="ttname"><a href="structState.html#a0589ba8e59b2a9a246ce8d14f783577b">State::WriteEEprom</a></div><div class="ttdeci">uint8_t WriteEEprom</div><div class="ttdoc">nicht gespeicherte EEprom Werte</div><div class="ttdef"><b>Definition:</b> globals.h:124</div></div>
<div class="ttc" id="astructState_html_a0b10c2ed83f730ab25f808ca4159e0a1"><div class="ttname"><a href="structState.html#a0b10c2ed83f730ab25f808ca4159e0a1">State::LastSymbolWasDit</a></div><div class="ttdeci">uint8_t LastSymbolWasDit</div><div class="ttdoc">letztes Symbol war ein Punkt</div><div class="ttdef"><b>Definition:</b> globals.h:130</div></div>
<div class="ttc" id="astructState_html_a0e3dcd5d2b54a5256fd71a1d956a2a0d"><div class="ttname"><a href="structState.html#a0e3dcd5d2b54a5256fd71a1d956a2a0d">State::DitPressed</a></div><div class="ttdeci">uint8_t DitPressed</div><div class="ttdoc">Dit Hebel betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:131</div></div>
<div class="ttc" id="astructState_html_a52ffc38efd1a9798d8d92014fe664e62"><div class="ttname"><a href="structState.html#a52ffc38efd1a9798d8d92014fe664e62">State::WpMChanged</a></div><div class="ttdeci">uint8_t WpMChanged</div><div class="ttdoc">Geschwindigkeit geändert.</div><div class="ttdef"><b>Definition:</b> globals.h:122</div></div>
<div class="ttc" id="astructState_html_a5e94242222ee7d6061fb36f5374f36b4"><div class="ttname"><a href="structState.html#a5e94242222ee7d6061fb36f5374f36b4">State::SidetoneOff</a></div><div class="ttdeci">uint8_t SidetoneOff</div><div class="ttdoc">Mithörton an oder aus.</div><div class="ttdef"><b>Definition:</b> globals.h:126</div></div>
<div class="ttc" id="astructState_html_a76bff5a7c3dd312851c50afccd017b33"><div class="ttname"><a href="structState.html#a76bff5a7c3dd312851c50afccd017b33">State::DahPressed</a></div><div class="ttdeci">uint8_t DahPressed</div><div class="ttdoc">Dah Hebel betätigt.</div><div class="ttdef"><b>Definition:</b> globals.h:132</div></div>
<div class="ttc" id="astructState_html_a77084e27de545c8c9326e317a8c1edff"><div class="ttname"><a href="structState.html#a77084e27de545c8c9326e317a8c1edff">State::Automatic</a></div><div class="ttdeci">uint8_t Automatic</div><div class="ttdoc">Speicher wird gesendet.</div><div class="ttdef"><b>Definition:</b> globals.h:129</div></div>
<div class="ttc" id="astructState_html_aaebbf5da7337abd9a683f6fd3d63087d"><div class="ttname"><a href="structState.html#aaebbf5da7337abd9a683f6fd3d63087d">State::SidetoneEnabled</a></div><div class="ttdeci">uint8_t SidetoneEnabled</div><div class="ttdoc">Mithörton ein- oder ausgeschaltet.</div><div class="ttdef"><b>Definition:</b> globals.h:127</div></div>
<div class="ttc" id="astructState_html_ac9b34cc2b3cb4f8ffe789278d9b76616"><div class="ttname"><a href="structState.html#ac9b34cc2b3cb4f8ffe789278d9b76616">State::SendStatus</a></div><div class="ttdeci">uint8_t SendStatus</div><div class="ttdoc">Status, ob Symbol gesendet wird.</div><div class="ttdef"><b>Definition:</b> globals.h:128</div></div>
<div class="ttc" id="astructState_html_acbc62fb74e564116927efe2f2147b8b9"><div class="ttname"><a href="structState.html#acbc62fb74e564116927efe2f2147b8b9">State::WriteMsgEEprom</a></div><div class="ttdeci">uint8_t WriteMsgEEprom</div><div class="ttdoc">nicht gespeicherte Textnachrichten</div><div class="ttdef"><b>Definition:</b> globals.h:125</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="globals_8h.html">globals.h</a></li>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_b.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen mit Verweisen auf die zugehörigen Dateien:</div>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>bConfig
: <a class="el" href="main_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">main.h</a>
, <a class="el" href="controls_8h.html#a8c3e2d3135447df0d9e7057fea4ff5b0">controls.h</a>
</li>
<li>Beep()
: <a class="el" href="controls_8h.html#a2f616a93763b4bc437c4311d653c0491">controls.h</a>
, <a class="el" href="functions_8c.html#a2f616a93763b4bc437c4311d653c0491">functions.c</a>
, <a class="el" href="functions_8h.html#a2f616a93763b4bc437c4311d653c0491">functions.h</a>
</li>
<li>BeepBoop()
: <a class="el" href="functions_8c.html#a72913eefa74c0c044d815a0b759577fa">functions.c</a>
, <a class="el" href="functions_8h.html#a72913eefa74c0c044d815a0b759577fa">functions.h</a>
</li>
<li>bMenuCtrl
: <a class="el" href="controls_8h.html#a885b2af021946a60a0bd2a271711c17a">controls.h</a>
, <a class="el" href="main_8h.html#a885b2af021946a60a0bd2a271711c17a">main.h</a>
</li>
<li>bMessage
: <a class="el" href="main_8h.html#a29b39b8616c75ea80051354a3a8593da">main.h</a>
</li>
<li>Boop()
: <a class="el" href="controls_8h.html#a0366eaeb4aab61562dcd5b24994d0103">controls.h</a>
, <a class="el" href="functions_8c.html#a0366eaeb4aab61562dcd5b24994d0103">functions.c</a>
, <a class="el" href="functions_8h.html#a0366eaeb4aab61562dcd5b24994d0103">functions.h</a>
</li>
<li>bSerialState
: <a class="el" href="vt100_8h.html#a0fb4570721a451b3d31a7e71b2124f17">vt100.h</a>
</li>
<li>bState
: <a class="el" href="controls_8h.html#a44ef5c8aeac95b862dab43408c149f9a">controls.h</a>
, <a class="el" href="main_8h.html#a44ef5c8aeac95b862dab43408c149f9a">main.h</a>
</li>
<li>BUTTON_DEBOUNCETIME_MS
: <a class="el" href="encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095">encoder.h</a>
</li>
<li>BUTTON_PRESSEDLONG_MS
: <a class="el" href="encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89">encoder.h</a>
</li>
<li>BUTTONPRESSED
: <a class="el" href="encoder_8h.html#aa0661a7570d43557a4cbade846808684">encoder.h</a>
</li>
<li>ButtonPressed_Long
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b">encoder.h</a>
</li>
<li>ButtonPressed_Short
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2">encoder.h</a>
</li>
<li>ButtonPressed_Unpressed
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">encoder.h</a>
</li>
<li>ButtonState_Hold
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba1ed28d4e307eb4999f1deaf3fa07f4d9">encoder.c</a>
</li>
<li>ButtonState_Pressed
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4bab17e4582ae92a602546a5ed70116b344">encoder.c</a>
</li>
<li>ButtonState_Released
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba19d35c76d8d53f420fd3106123d67a16">encoder.c</a>
</li>
<li>ButtonState_Unpressed
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f">encoder.c</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,131 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_c.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen mit Verweisen auf die zugehörigen Dateien:</div>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>CheckButtons()
: <a class="el" href="functions_8c.html#a4010a7257caeca55f68c98ee199d3ea2">functions.c</a>
, <a class="el" href="main_8h.html#a4010a7257caeca55f68c98ee199d3ea2">main.h</a>
</li>
<li>CheckDahPaddle()
: <a class="el" href="functions_8c.html#ac0bccd022514697217eaf063b1b2c0fa">functions.c</a>
, <a class="el" href="main_8h.html#ac0bccd022514697217eaf063b1b2c0fa">main.h</a>
</li>
<li>CheckDitPaddle()
: <a class="el" href="functions_8c.html#a7783dcd27ef486bce541c85e10131394">functions.c</a>
, <a class="el" href="main_8h.html#a7783dcd27ef486bce541c85e10131394">main.h</a>
</li>
<li>CheckPaddles()
: <a class="el" href="functions_8c.html#a9bd61bc3c9e38f6b325e4ba3f96d9472">functions.c</a>
, <a class="el" href="functions_8h.html#a9bd61bc3c9e38f6b325e4ba3f96d9472">functions.h</a>
</li>
<li>CheckStraightKey()
: <a class="el" href="functions_8c.html#a68bed2cd125260e9c6eb7f6f8e0c9106">functions.c</a>
, <a class="el" href="main_8h.html#a68bed2cd125260e9c6eb7f6f8e0c9106">main.h</a>
</li>
<li>CLEARLINE
: <a class="el" href="globals_8h.html#ae39a97a19b2e372929dabdc0e3822910">globals.h</a>
</li>
<li>CLRSCR
: <a class="el" href="vt100_8h.html#ae9078b83eea3d7919a417fba39d744ce">vt100.h</a>
</li>
<li>ConfigMenue()
: <a class="el" href="controls_8c.html#a582148370499a6b91171ed6134cc7041">controls.c</a>
, <a class="el" href="controls_8h.html#a582148370499a6b91171ed6134cc7041">controls.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,135 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_d.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen mit Verweisen auf die zugehörigen Dateien:</div>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DahMillis
: <a class="el" href="globals_8h.html#ad4e6326c3ab1d15391fcc416ff86c436">globals.h</a>
</li>
<li>DDR
: <a class="el" href="encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425">encoder.h</a>
</li>
<li>DebounceTime
: <a class="el" href="controls_8c.html#a14d2686ee95132d4d7c740d23f38677b">controls.c</a>
</li>
<li>DelayMilliSeconds()
: <a class="el" href="controls_8h.html#a4e03330a0d63dbc5c8c0ce8a3ba10ff7">controls.h</a>
, <a class="el" href="functions_8c.html#ada3125b546b3115e7afc2e51bc7db894">functions.c</a>
, <a class="el" href="functions_8h.html#ada3125b546b3115e7afc2e51bc7db894">functions.h</a>
</li>
<li>DisplayVersion()
: <a class="el" href="controls_8c.html#a9dec45875121142b6466b9475691b40a">controls.c</a>
, <a class="el" href="controls_8h.html#a9dec45875121142b6466b9475691b40a">controls.h</a>
</li>
<li>DitMillis
: <a class="el" href="globals_8h.html#a2f7701e9783a70804580512902c10ee7">globals.h</a>
</li>
<li>Drehencoder()
: <a class="el" href="controls_8c.html#aaf6c1bd6cb225efe37f9762de8a0c3d1">controls.c</a>
, <a class="el" href="controls_8h.html#ac6dc8b683fdf1a5fc24b2a509279f887">controls.h</a>
</li>
<li>DrehgeberMax
: <a class="el" href="encoder_8c.html#aa7c6a2827b1cc4fcb2c5ff33d8d05300">encoder.c</a>
</li>
<li>DrehgeberMin
: <a class="el" href="encoder_8c.html#af734dbab527768cb6207a4a5bd90bd1d">encoder.c</a>
</li>
<li>DrehgeberPosition
: <a class="el" href="encoder_8c.html#abdbce2c910e9ca583dbbf74a99d50d72">encoder.c</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,262 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;
<h3><a id="index_a"></a>- a -</h3><ul>
<li>AUDIO
: <a class="el" href="globals_8h.html#a73ed4be5c2afc6b3c6d872c67f06b27b">globals.h</a>
</li>
<li>AUDIO_EN
: <a class="el" href="globals_8h.html#a9aae0b11edb13ba23962062c6310b48a">globals.h</a>
</li>
<li>AUTO
: <a class="el" href="globals_8h.html#a0cc6f7717df9fbdc0f33efb88720a639">globals.h</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>BUTTON_DEBOUNCETIME_MS
: <a class="el" href="encoder_8h.html#a4f62996f43e5f428dae04bf6583e6095">encoder.h</a>
</li>
<li>BUTTON_PRESSEDLONG_MS
: <a class="el" href="encoder_8h.html#a0faf2a568de603ff9e6867f6ba2a9f89">encoder.h</a>
</li>
<li>BUTTONPRESSED
: <a class="el" href="encoder_8h.html#aa0661a7570d43557a4cbade846808684">encoder.h</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>CLEARLINE
: <a class="el" href="globals_8h.html#ae39a97a19b2e372929dabdc0e3822910">globals.h</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DDR
: <a class="el" href="encoder_8h.html#acbe348573e1b5adccdc7bcf157dc6425">encoder.h</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ENC_A_PIN
: <a class="el" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">encoder.h</a>
</li>
<li>ENC_A_PORT
: <a class="el" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">encoder.h</a>
</li>
<li>ENC_B_PIN
: <a class="el" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">encoder.h</a>
</li>
<li>ENC_B_PORT
: <a class="el" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">encoder.h</a>
</li>
<li>ENC_T_PIN
: <a class="el" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">encoder.h</a>
</li>
<li>ENC_T_PORT
: <a class="el" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">encoder.h</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LEFT_PADDLE
: <a class="el" href="globals_8h.html#a8f0a217b99055286939b536efe9516f1">globals.h</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>M_MAX
: <a class="el" href="globals_8h.html#a61819141b0164a35f4d791b0e696721f">globals.h</a>
</li>
<li>MAN
: <a class="el" href="globals_8h.html#accc898f427bcfab8f8554d0683a736de">globals.h</a>
</li>
<li>MEM1
: <a class="el" href="globals_8h.html#a5e91fefffdc4ae99555253d521d70d42">globals.h</a>
</li>
<li>MEM2
: <a class="el" href="globals_8h.html#af81f3155e333a7c017258f1a69949b0b">globals.h</a>
</li>
<li>MEM3
: <a class="el" href="globals_8h.html#afbacae6e435d743bef46dfc8369bf7c5">globals.h</a>
</li>
<li>MEM4
: <a class="el" href="globals_8h.html#ab305dee14a45b9899420fb017b6b0838">globals.h</a>
</li>
<li>MEM5
: <a class="el" href="globals_8h.html#a25a135b8117cdf599cdfe176200df2fa">globals.h</a>
</li>
<li>MORSE_LED
: <a class="el" href="globals_8h.html#adb6b98f999edb7b4152f2e3f8785406a">globals.h</a>
</li>
<li>MSGSIZE
: <a class="el" href="globals_8h.html#a57332b76331a1bbe1d6807ddbb6d0522">globals.h</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>NOTHING
: <a class="el" href="globals_8h.html#aad4a7ebff687dc5228cc3fd4d25067f2">globals.h</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>PADDLE_NORMAL
: <a class="el" href="globals_8h.html#a0f491a526845fa7f262309a82a0d7190">globals.h</a>
</li>
<li>PHASE_A
: <a class="el" href="encoder_8h.html#ad214039f52b011ce2bd6c85ff98a981b">encoder.h</a>
</li>
<li>PHASE_B
: <a class="el" href="encoder_8h.html#ad7b96feed1e1c12515dad5e926b2c62e">encoder.h</a>
</li>
<li>PIN
: <a class="el" href="encoder_8h.html#ad7581da21e9fd6fd6f6920dd68d1c782">encoder.h</a>
</li>
<li>Port
: <a class="el" href="encoder_8h.html#aa229b4be775fd996225a45c52a7e8a6d">encoder.h</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>RIGHT_PADDLE
: <a class="el" href="globals_8h.html#a2531fa489a13983ebf61c93e71ec43d5">globals.h</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>SCL
: <a class="el" href="globals_8h.html#ab5ffc4751921608954bb7a5687566b2d">globals.h</a>
</li>
<li>SDA
: <a class="el" href="globals_8h.html#a6890442e1cc24a0d61597a13576b8727">globals.h</a>
</li>
<li>SENDING_NOTHING
: <a class="el" href="globals_8h.html#a26467aab195715bb21eca2df8d729078">globals.h</a>
</li>
<li>STRAIGHT
: <a class="el" href="globals_8h.html#ae5284d1a5b3e5a009614298e3e7730bc">globals.h</a>
</li>
<li>STRAIGHT_KEY
: <a class="el" href="globals_8h.html#a7ce37f67d167ed8deb6c5e0e24c213d8">globals.h</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>TRX1
: <a class="el" href="globals_8h.html#a23a8a741ec974d3d82de16f4a59af347">globals.h</a>
</li>
<li>TRX2
: <a class="el" href="globals_8h.html#a8bf6fec9796ce1a4372b299d2ac6079e">globals.h</a>
</li>
<li>TwoStep
: <a class="el" href="encoder_8h.html#a4484973712e579e11ec1f9306d4dfa5c">encoder.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,23 @@
var globals_dup =
[
[ "a", "globals.html", null ],
[ "b", "globals_b.html", null ],
[ "c", "globals_c.html", null ],
[ "d", "globals_d.html", null ],
[ "e", "globals_e.html", null ],
[ "g", "globals_g.html", null ],
[ "h", "globals_h.html", null ],
[ "i", "globals_i.html", null ],
[ "k", "globals_k.html", null ],
[ "l", "globals_l.html", null ],
[ "m", "globals_m.html", null ],
[ "n", "globals_n.html", null ],
[ "o", "globals_o.html", null ],
[ "p", "globals_p.html", null ],
[ "r", "globals_r.html", null ],
[ "s", "globals_s.html", null ],
[ "t", "globals_t.html", null ],
[ "u", "globals_u.html", null ],
[ "w", "globals_w.html", null ],
[ "y", "globals_y.html", null ]
];

@ -0,0 +1,218 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_e.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Hier folgt die Aufzählung aller dokumentierten Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen mit Verweisen auf die zugehörigen Dateien:</div>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>EButtonPressedState
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">encoder.h</a>
</li>
<li>EButtonState
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b">encoder.c</a>
</li>
<li>ee_DebounceTime
: <a class="el" href="functions_8c.html#af46a7ac73709b59ac331e84016c6600f">functions.c</a>
</li>
<li>ee_Dummy
: <a class="el" href="functions_8c.html#a42f0b8f91ce6b2a23dd6ff8672d13b95">functions.c</a>
</li>
<li>ee_KeyerMode
: <a class="el" href="functions_8c.html#a169f1099862f2dc874d344eb240fd8c2">functions.c</a>
</li>
<li>ee_MemButtonMode
: <a class="el" href="functions_8c.html#a3f1e9ffbb5d98febdd58a4fa82b01f30">functions.c</a>
</li>
<li>ee_Memory
: <a class="el" href="functions_8c.html#a5f69205a6897625598ead5ab6a740fc7">functions.c</a>
</li>
<li>ee_Ratio
: <a class="el" href="functions_8c.html#a8814741a33f0a4f2e14eee14d8c00dad">functions.c</a>
</li>
<li>ee_Reverse
: <a class="el" href="functions_8c.html#ad5a1c7f3fe4cc3af1873519f70586866">functions.c</a>
</li>
<li>ee_RiseTime
: <a class="el" href="functions_8c.html#acde6a28c5a5747443f823ff09dce682b">functions.c</a>
</li>
<li>ee_RiseTimeCounter
: <a class="el" href="functions_8c.html#a138d8a4a73593b01e9ffdfebc7134c89">functions.c</a>
</li>
<li>ee_SidetoneEnabled
: <a class="el" href="functions_8c.html#a8f9b2a72d7b1d5f1c28673c36a51a33a">functions.c</a>
</li>
<li>ee_SidetoneFreq
: <a class="el" href="functions_8c.html#a025c31b4a3c9adca80df2782808579a7">functions.c</a>
</li>
<li>ee_Trx1
: <a class="el" href="functions_8c.html#a1c70858b9aea8006017b70d201604a96">functions.c</a>
</li>
<li>ee_Trx2
: <a class="el" href="functions_8c.html#a6f6cc3866f25698f6f9185e422ce7b8c">functions.c</a>
</li>
<li>ee_Weight
: <a class="el" href="functions_8c.html#ac8f8c751bbe43f711df2e1ba13f79994">functions.c</a>
</li>
<li>ee_WpM
: <a class="el" href="functions_8c.html#af636ee63fad94f56f61f334e0c2e46b0">functions.c</a>
</li>
<li>ee_WpMBpM
: <a class="el" href="functions_8c.html#a7c955b77d04539b88678e94d72deeef0">functions.c</a>
</li>
<li>Einstellungen
: <a class="el" href="controls_8c.html#a3776d070bf17ce9a6dca80728d44a800">controls.c</a>
</li>
<li>ENC_A_PIN
: <a class="el" href="encoder_8h.html#a7d575adbcfeaadc13a6d6606a2ed0c1b">encoder.h</a>
</li>
<li>ENC_A_PORT
: <a class="el" href="encoder_8h.html#a954872ee0daca1b1a8d0140b4fc80b82">encoder.h</a>
</li>
<li>ENC_B_PIN
: <a class="el" href="encoder_8h.html#ab42063ad37138f2e94f87270f7826aa0">encoder.h</a>
</li>
<li>ENC_B_PORT
: <a class="el" href="encoder_8h.html#a4e6f46965f5ffba14b80a7c353313982">encoder.h</a>
</li>
<li>enc_delta
: <a class="el" href="encoder_8c.html#a3f5ba1853e96736d1ffcc756e9138849">encoder.c</a>
</li>
<li>ENC_T_PIN
: <a class="el" href="encoder_8h.html#a16f8e311086450a7061f6890fe028e61">encoder.h</a>
</li>
<li>ENC_T_PORT
: <a class="el" href="encoder_8h.html#abf7f0aca01dd1389118a21ec76ae7c13">encoder.h</a>
</li>
<li>EncoderCounter
: <a class="el" href="globals_8h.html#a426d3fb4cd1535f9e7616df2601f4ddc">globals.h</a>
</li>
<li>EncoderGetButtonState()
: <a class="el" href="encoder_8c.html#a2de57e0e3c5f3e0ab176c11363a58bf1">encoder.c</a>
, <a class="el" href="encoder_8h.html#a2de57e0e3c5f3e0ab176c11363a58bf1">encoder.h</a>
</li>
<li>EncoderInit()
: <a class="el" href="encoder_8c.html#a80ec2c177aa9c2636f797ca881381827">encoder.c</a>
, <a class="el" href="encoder_8h.html#a80ec2c177aa9c2636f797ca881381827">encoder.h</a>
</li>
<li>EncoderMinMax()
: <a class="el" href="encoder_8h.html#ab5afede50bbce8aae40f3d02be64a374">encoder.h</a>
, <a class="el" href="encoder_8c.html#ab5afede50bbce8aae40f3d02be64a374">encoder.c</a>
</li>
<li>EncoderPolling()
: <a class="el" href="encoder_8c.html#a660e5b11dce82f5b307f628def81d188">encoder.c</a>
, <a class="el" href="encoder_8h.html#a660e5b11dce82f5b307f628def81d188">encoder.h</a>
</li>
<li>EncoderPos
: <a class="el" href="globals_8h.html#a3a1db669858552a5c21490149c648e12">globals.h</a>
</li>
<li>EncoderPosConfig
: <a class="el" href="globals_8h.html#a2b61ba3fb70419b8b5151d7216f6ab87">globals.h</a>
</li>
<li>EncoderPosSubConfig
: <a class="el" href="globals_8h.html#a2afbcb36398df196b3205ab28f612edf">globals.h</a>
</li>
<li>EncoderRead()
: <a class="el" href="encoder_8c.html#a9ec6df4b13c9134f1c61546b718cd563">encoder.c</a>
, <a class="el" href="encoder_8h.html#a9ec6df4b13c9134f1c61546b718cd563">encoder.h</a>
</li>
<li>EncoderTimer
: <a class="el" href="globals_8h.html#a1756e538888c2c722809420489b62a53">globals.h</a>
</li>
<li>EncoderWrite()
: <a class="el" href="encoder_8c.html#ac9e955efd05fd5f6579bb5e179b506c7">encoder.c</a>
, <a class="el" href="encoder_8h.html#ac9e955efd05fd5f6579bb5e179b506c7">encoder.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_enum.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>EButtonPressedState
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26">encoder.h</a>
</li>
<li>EButtonState
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4b">encoder.c</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BJ-Keyer: Globale Elemente</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="dl7bj-shadow-vert.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">BJ-Keyer
&#160;<span id="projectnumber">1.03</span>
</div>
<div id="projectbrief">Morsekeyer für 2 TRX und 6 Morsetasten</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Erzeugt von Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Suchen','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Suchen');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_eval.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>ButtonPressed_Long
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a82989ac86ef7500aa2cc10c79404ff1b">encoder.h</a>
</li>
<li>ButtonPressed_Short
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a48e867e4b957ba7ef1d30609694100c2">encoder.h</a>
</li>
<li>ButtonPressed_Unpressed
: <a class="el" href="encoder_8h.html#a1f1601ea239948684d4b2a2f830bca26a7eda9605623092fc9f64c89f6126092d">encoder.h</a>
</li>
<li>ButtonState_Hold
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba1ed28d4e307eb4999f1deaf3fa07f4d9">encoder.c</a>
</li>
<li>ButtonState_Pressed
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4bab17e4582ae92a602546a5ed70116b344">encoder.c</a>
</li>
<li>ButtonState_Released
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4ba19d35c76d8d53f420fd3106123d67a16">encoder.c</a>
</li>
<li>ButtonState_Unpressed
: <a class="el" href="encoder_8c.html#a7e7392f1e24ef55450099d5e7d095c4baa6d3bd33730cea4d3d97c7bb97611d0f">encoder.c</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Erzeugt am Mit Sep 6 2023 00:03:03 für BJ-Keyer von <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save