Het programma heeft een cyclus waarbij hij ofwel wacht op een aanslag en intussen kijkt hoelang die tijd tussen de aanslag en de voorgaande aanslag is.
Bij het aanslaan wordt er een flag hoog gemaakt, zodat het programma herkent dat er eerder een aanslag is geweest.
Als er dan een tweede aanslag is, wordt de tijd bekeken en beoordeeld of de tijd kort is, zodat dit binnen een karakter valt, of dat deze wat langer is, zodat het als een andere letter wordt herkend.
In dat laatste geval wordt de letter geprojecteerd.
Is de rusttijd nog langer, dan wordt er een spatie aan toegevoegd.
Ik monitorde de aanslagen in tijd, en die tijd werd weergegeven op mijn serial monitor, samen met het karakter.
Het gebeurde me tevaak dat een aanslag (volgens mij) denderde omdat hij een aanslag als twee aanslagen zag.
Ik heb wel een paar voorwaardes ertussen gezet.
Ligt tijd tussen waardes a en b is het een punt.
Ligt tijd tussen waardes c en d is het een streep.
Buiten die kaders is het een error.
Wat ik met die error doe is nog even puzzelen. Misschien dat ik een sterretje oid weergeef.
Anyway... Ik kan de tijd zometeen instellen. Door de cyclustijd aan te passen.
Daarnaast kan ik de marge rondom de punt, streep of rustmomenten verruimen als leermiddel.
Zover ben ik nu overigens nog niet.
Ik blijf met die dender zitten.
Elektronisch stond ik er niet bij stil dat ik met een condensator alleen het "maak" moment kan dempen. Het loslaat moment speelt ook mee.
Terug naar het programma...
Als ik aansla, zijn er een paar cyclussen waar niets mee wordt gedaan.
Daarna pas worden ze geteld en afhankelijk van de lengte gezien als punt of als fout. (een streep wordt meestal dusdanig lang aangeslagen, dat dat niet fout gaat).
Door de dender valt het eerste stukje af omdat het te kort is.
Het tweede deel van die dender (er vanuit gaande dat het gezien wordt als 2 aanslagen) is vaak te kort, waardoor hij wordt genegeerd.
Met dat ik dit schrijf realiseer ik me dat ik binnen die denderperiode, moet voorkomen dat het program dit als een rust ziet.
Een rust kan pas ingaan als er 3 cycli voorbij zijn... (15mS)
Dit straks even proberen.
En dan natuurlijk ook bij het rustmoment...