Π‘Ρ Π΅ΠΌΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ
ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΡΡΡΠ°: Else if (measureTime < currentTime) {. Else if (reportTime
Π‘Ρ Π΅ΠΌΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π£ΡΠΈΡΡΠ²Π°Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄ΠΈΡΠ»Π΅ΠΊΡΡΠΎΠΌΠ΅ΡΡΠ° (2.1) ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊ ΡΡΠ΅Π΄ΡΡΠ²Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ (1.1) Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ STM32F407.
ΠΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 168 ΠΠΡ, 32-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ARM, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (FPU) ΠΈ ΡΡΡΡΡΠΈΠΊΠΎΠΌ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π‘Π°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² FPGA ΠΏΠ°ΠΉΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΌΠΎΠ½ΡΠ°ΠΆΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Discovery. ΠΠ°Π½Π½Π°Ρ ΠΏΠ»Π°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ USB-Π²ΡΡ ΠΎΠ΄, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΡ Π΄Π»Ρ (2.1) Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΡ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΠΎΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ C ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° gnu-arm-gcc+, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΠ — Π½Π° ΡΠ·ΡΠΊΠ΅ Scala.
ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΡΡΡΠ°:
const measureTime = 50.
const reportTime = 100.
uint currentTime = 0.
onTimerTick => currentTime += 1.
do.
if (currentTime >= 0) {.
powerOn (LED4).
resetExternalTimerClock ().
} else if (measureTime < currentTime) {.
ulong count = externalTimerValue ().
reportResult (count).
powerOff (LED4).
powerOn (LED3).
} else if (reportTime < currentTime) {.
currentTime = 0.
powerOff (LED3).
}.
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· ΡΠΈΡΠ΅Π», ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π½ΠΎ Π΄Π»Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΠ½ΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ.
ΠΠ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Scala, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ jssc Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ COM ΠΏΠΎΡΡΠΎΠΌ, ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ½ΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ (.xls).