Stap 23: Arduino Software ontwikkeling
Terwijl de Arduino script nodig om te implementeren de ECG golfvorm generatie is niet moeilijk, het is een beetje meer betrokken dan de "knipperen van een LED" inleidende voorbeelden een tegenkomen. Hier zijn enkele van de kwesties die men over denken moet alvorens de eerste coderegel.Golfvorm als een matrix van de programmeertaal C
Dit project heeft twee belangrijke criteria met betrekking tot de golfvorm. De samplefrequentie zullen 1000 keer per seconde (1 milliseconde per monster); Dit werd gekozen voor de golfvorm van de goede trouw. De schaal voor deze golfvorm moet 0 tot en met 4095 (full-scale om gebruik te maken van een unipolaire D/A converter van 12-bits).
De golfvorm moet bevinden zich in de EPROM, gemakkelijk tevreden met behulp van een const C-matrix met een initializer in de volgende vorm:
Const korte y_data [] {} =
939, 940, 941, 942, 944, 945, 946, 947, 951, 956,
962, 967 973, 978, 983, 989, 994, 1000, 1005, 1015
};
Door te verklaren de golfvorm array als een const array, wordt het opgebouwd in de 32 k-EPROM in plaats van de meer kostbare 2k RAM-geheugen die nodig zullen zijn voor variabelen, enz.
Golfvorm bijgewerkt als een Interrupt Timer2
De golfvorm zal worden output op een vernieuwingsfrequentie van 1000 samples per seconde. Om dit te doen, zal Timer2 uit een periode van één milliseconde tellen en dan het teweegbrengen van een interrupt Timer2 worden gebruikt. Binnen de interrupt routine, zal het volgende monster worden verplaatst van de golfvorm van de opgeslagen matrix en verzonden naar de D/A-omzetter via de SPI interface. De Timer2 opnieuw is gestart en dit blijft ad-infinitum (forever).
Hartslag weergegeven elke 50 milliseconden
Elke 50ste inschrijving aan de Timer2 interrupt routine, wordt de hartslag geselecteerd door de gebruiker via de potentiometer toegestuurd aan de 4-cijferige numerieke weergave (weer met behulp van de SPI interface). Zowel de D/A en de 4-cijferige weergave worden bijgewerkt binnen de Timer2 interrupt routine. Omdat ze zijn geserialiseerd (een na de andere), zal er geen twist op de bus SPI interface.
Hartslag Pot lezen in de achtergrond-lus
De Arduino achtergrond lus is waar de analoge spanning (0 tot en met 5 volt) door de pot wordt gelezen met behulp van een analoge ingang. Deze waarde zal worden gebruikt om op te geven van het aantal monsters gedurende de"zwakke" van de golfvorm, specifiek deze flat-lijn termijn na de T-golf die nog steeds naar het begin van het volgende PQRS complex. Deze waarde "rustige periode" zal worden geschreven aan een variabele, die zal worden gelezen door de Timer2 interrupt routine.