Arduino hög hastighet oscilloskop med PC-gränssnitt (5 / 7 steg)
Steg 5: Att sätta ut uppgifterna
Ogiltig loop rutin utför följande funktioner
1) om writeit är sant:
- beräknar observerade tidsperioden, korrigera för mikro tid rollover
- utgångar buffert bufa
- beräknar frekvensen i KiloHertz
- utgångar buffert bufinfo, med en handshke noll byte och frekvensen i milliHertz
- aktiverar lcd-porten så att knapparna kan läsas
- Stänger av test pulsen på pw3
- Utgångar text Detaljer till den seriella porten om showdetails stämmer (som falska av en snabb körning)
- uppsättningar flagga writeit till false och hasdata True
Data skickas två samtidiga sektioner
- en) en 5 byte header buffert med noll, följt av 4 byte som är frekvensen i milliHz. Skicka in milliHertz ökar precisionen i transporteras frekvensvärde.
- b) 1000 byte av rådata, varje i intervallet 0 till 255.
2) om hasdata stämmer
- Kolla LCD-knapparna
- om en snabb körning är aktiv, leta efter en handskakning karaktär från datorn (eller 1.5s timeout) och få mer data
- check för seriell indatakommandon
.
LCD-knappar
Indata är emot subrutin buttoncheck.
Knapparna lcd Läs från analog port 0.
Varje knapp ger en spänning inom ett visst intervall av värden
Den vänstra knappen, ligger till exempel i intervallet 400 till 599
- Välj - initierar ett nytt prov (eller begränsar en snabb körning)
- Upp - positiva kanten trigger
- Ner - negativa kanten trigger
- Vänster - provtas minskning period (ökar Prescalar)
- Rätt - urvalet öka period (minskning Prescalar)
.
Seriell indata
Indata är emot subrutin commandcheck.
"test" växlar en fyrkantsvåg på testpin (= digital anslutning 3), använda flaggan pwtoggle.
pinMode(testpin,OUTPUT);
om (pwtoggle == false) analogWrite (testpin, 0);
om (pwtoggle) analogWrite(testpin,127);
Detta är mycket användbart. Enkelt ansluta digital anslutning 3 till analog 1, direkt.
"trig" anger trigger. I programvaran används utlösta version trigger variabel matematiskt fastställa en utlösande. Hardware version växla det helt enkelt utlöser.
"mer" ger en en av prov
"kör" ger en snabb upprepade prov
"vref" anger spänning referensvärdet. (Endast används av programvara utlöste oscilloskopet för att tolka trigger nivå.)