ΠΠ΅ΠΊΡΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Cortex-M3 ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠΌΠΈ ΠΏΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΠ‘Π Π. Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΌΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΈ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ Π΅Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ‘Π Π Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π±ΠΎΠ»Π΅Π΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΅ΠΊΡΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π’Π°Π±Π»ΠΈΡΠ° Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Cortex Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ° 0×4. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 4 Π±Π°ΠΉΡΠ° ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠ΅ 15 Π²Π΅ΠΊΡΠΎΡΠΎΠ² (Π½ΠΎΠΌΠ΅ΡΠ° 1−15) — Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ Π² ΡΠ΄ΡΠ΅ Cortex. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ 16-Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°, ΡΠ»Π΅Π΄ΡΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π£ΠΠ. ΠΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (ΡΠΌ. ΡΠΈΡ. 1.7). <
p>Π ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Keil uVision ΠΈΠΌΠ΅ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² 1986 ΡΠ΅ΡΠΈΠΈ. Π ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π²Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΈ IRQ0-IRQ31 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°Π±Π». 3.4. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅Π·Π°Π½ΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.Π’Π°Π±Π»ΠΈΡΠ° 3.4
Π’Π°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
IRQ. | ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. | ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. |
SysTick. | SysTick Handler. | Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ |
CAN1 lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ CAN 1. | |
CAN2 lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ CAN2. | |
USB lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ USB. | |
DMA lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΠΠ. | |
UARTI lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ UART1. | |
UART2 lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ UART2. | |
SSP1 lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ SSP1. | |
I2C lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ I2C. | |
POWER lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ PWR. | |
WWDGIRQ Handler. | ΠΠΊΠΎΠΏΠ½ΡΠΉ WDT. | |
Timerl_IRQHandler. | Π‘ΡΠ΅ΡΡΠΈΠΊ/ΡΠ°ΠΉΠΌΠ΅Ρ 1. | |
Timer2_lRQI landlcr. | Π‘ΡΡΡΡΠΈΠΊ/ΡΠ°ΠΉΠΌΡΡ2. | |
Timer3 lRQHandler. | Π‘ΡΠ΅ΡΡΠΈΠΊ/ΡΠ°ΠΉΠΌΠ΅ΡΠ. | |
ADC lRQHandler. | ΠΠ¦Π. | |
COMPARATOR lRQHandler. | ΠΠ½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ | |
SSP2 lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ SSP2. | |
BACKUP lRQHandler. | ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΠΠ . | |
EXT INTI lRQHandler. | ΠΠ½Π΅ΡΠ½ΠΈΠΉ INTI. | |
EXT INT2 lRQHandler. | ΠΠ½Π΅ΡΠ½ΠΈΠΉ INT2. | |
EXT INT3 lRQHandler. | ΠΠ½Π΅ΡΠ½ΠΈΠΉ INT3. | |
EXT INT4 lRQHandler. | ΠΠ½Π΅ΡΠ½ΠΈΠΉ INT4. |
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 13. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° (ΡΠΈΡ. 3.30) Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΏΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π°, ΡΡΠ΅ΡΡΠΈΠΊΡΠ°ΠΉΠΌΠ΅Ρ Π‘Π’1 ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ NVIC). ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ-ΡΠ°ΠΉΠΌΠ΅Ρ Π‘Π’1 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΡΡΡ Π΄Π»Ρ Π²ΡΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 1 Ρ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ IRQ 14, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΡΠ΅ΡΡΠΈΠΊΠ΅ΡΠ°ΠΉΠΌΠ΅ΡΠ΅ CTI. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (Timcrl_IRQHandler) ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ.
Π‘Π΅ΠΊΡΠΈΡ Include ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄Π²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (MDR32F*.h).
Π ΠΈΡ. 3.30. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ.
Π‘Π΅ΠΊΡΠΈΡ Define ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
VD0 — Π»ΠΈΠ½ΠΈΡ ΠΏΠΎΡΡΠ° PORTC, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ VD0;
WR_CMPL — ΡΠ»Π°Π³ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² CNT, PSG ΠΈ ARR ΠΊ Π·Π°ΠΏΠΈΡΠΈ; CNT_ARR_EVENT — ΡΠ»Π°Π³ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ CNT ΠΈ ARR.
Π ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: frqjnit — Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (HSE-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ) ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π° ΡΠ°ΡΡΠΎΡΡ 8 ΠΠ Ρ (8 388 608 Π Ρ); Timerljnit — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ; io_init — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°Π²ΡΠ²ΠΎΠ΄Π°; led_on ΠΈ lcd_off — ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ) ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ.
Π ΡΠ΅ΠΊΡΠΈΠΈ main ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» while. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ Timerl_init () (ΡΠΌ. ΡΠΈΡ. 3.30) ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠ½Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ:
- — Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘Π’1 (Π±ΠΈΡ 14 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ PER_CLOCK);
- — Π²ΡΠ±ΠΎΡ ΡΠ°ΡΡΠΎΡΡ HCLK/128 (8 388 608/128=65 536 ΠΡ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° (Π±ΠΈΡ 24 ΠΈ Π±ΠΈΡΡ 2:0 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TIM_CLOCK);
- — ΠΎΡΡΠ°Π½ΠΎΠ² Π‘Π’1 (Π±ΠΈΡ 0 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TIMER 1->CNTRL) ΠΈ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° CNT;
- — Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° Π΄Π΅Π»Π΅Π½ΠΈΡ f/64 Π΄Π»Ρ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ (ΡΠ΅Π³ΠΈΡΡΡ TIMER 1->PSG). Π§Π°ΡΡΠΎΡΠ° ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 65 536/64= 1024 ΠΡ. ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ PSG ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π±ΠΈΡΠ° VR_CMPL;
- — Π²ΡΠ±ΠΎΡ Π±Π°Π·Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° 1024 (ΡΠ΅Π³ΠΈΡΡΡ TIMER 1->ARR). ΠΡΠΈ ΡΠ°ΡΡΠΎΡΠ΅ ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° 1024 ΠΡ ΡΠ°ΠΊΠ°Ρ Π±Π°Π·Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ ΡΡΠ΅ΡΠ° Π² 1 Ρ. ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ARR ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π±ΠΈΡΠ° WR_CMPL;
- — Π²ΡΠ±ΠΎΡ ΡΠΎΠ±ΡΡΠΈΡ «CNT==ARR» Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° «ΠΠ°ΠΏΡΠΎΡ Π½Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅» ΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 (Π±ΠΈΡ 1 ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° TIMER1->IE);
- — ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ IRQ 14 Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ NVIC (Π±ΠΈΡ 14 ΡΠ΅Π³ΠΈΡΡΡΠ° ISER[0]);
- — ΠΏΡΡΠΊ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 (Π±ΠΈΡ 0 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TIMER 1->CNTRL).
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Timer MRQHandler ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ (ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ) Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- — ΠΎΡΡΠ°Π½ΠΎΠ² ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 (Π±ΠΈΡ 0 Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° TIMER 1->CNTRL);
- — ΡΠ±ΡΠΎΡ ΡΠ»Π°Π³Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ CNT_ARRJEVENT Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° TIMER1->STATUS;
- — ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±ΠΈΡΠ° VD0;
- — ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° CNT;
Π²ΡΠ±ΠΎΡ ΡΠΎΠ±ΡΡΠΈΡ «CNT—ARR» Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° «ΠΠ°ΠΏΡΠΎΡ Π½Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅» ΠΎΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 (Π±ΠΈΡ 1 ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° TIMERI-XE);
— ΠΏΡΡΠΊ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π‘Π’1 (Π±ΠΈΡΠΠ² ΡΠ΅Π³ΠΈΡΡΡΠ΅ TIMER 1->CNTRL).
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² Π³Π»Π°Π²Π΅ 3 Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Ρ 1-ΠΉ ΠΏΠΎ 13-Ρ). ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Cortex-ΠΠ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ-ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° ΡΠΈΡΠΌΡ «Π ΠΠ ΠΠΈΠ»Π°Π½Π΄Ρ». ΠΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΠΎΡΡΡ ΡΡΠ΅Π±Π½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ, ΠΈ ΠΈΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ. Π’Π°ΠΊ, ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΈ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ². Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π·ΠΎΠ½Π΅ Π±Π°ΡΠ°ΡΠ΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ°-ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π’ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ Π³Π»Π°Π² Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ².
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ ΡΠ°ΠΊΡΠ°, ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±Π½ΠΎΠΉ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²ΡΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (SPL) ΠΈΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° CMSIS. ΠΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ Π² ΠΏΡΡΠΌΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½ΡΠΆΠ½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°: ΠΎΠ±ΡΠΈΠΉ ΡΠ°ΠΉΠ»Π° MDR32Fx. h Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Cortex-ΠΠ ΠΈ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ MDR32F9Qx_conf ig. h Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π·Π° ΡΠ°ΠΌΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΎΡΡΠ°Π»ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ ΠΊΡΡΠ³ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Cortex-ΠΠ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ-ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° ΡΠΈΡΠΌΡ «Π ΠΠ ΠΠΈΠ»Π°Π½Π΄Ρ». Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² (USART, I2C/SPI. CAN, USB) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΠ‘Π Π). ΠΡΠ° ΠΎΠ±ΡΠΈΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ. Π£ΠΏΠΎΠΌΡΠ½Π΅ΠΌ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅ΠΌΡΠ΅ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ STM ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (Π£ΠΠ). ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. USB-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ USB-ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ST ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ USB-ΡΡΡΡΠΎΠΉΡΡΠ². ΠΡΠΎΡ Π½Π°Π±ΠΎΡ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ STM. Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π½Π°Π±ΠΎΡΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ USB-ΡΡΡΡΠΎΠΉΡΡΠ² Π²Ρ ΠΎΠ΄ΡΡ USB-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² HID, Mass Storage, Audio ΠΈ Device Field Upgrade.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Cortex-M3 ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠΌΠΈ ΠΏΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΠ‘Π Π. Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΌΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΈ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ Π΅Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ‘Π Π Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π±ΠΎΠ»Π΅Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ‘Π Π ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΠ‘Π Π, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠ΅Π΄ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ FreeRTOS. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ ΡΠ°ΠΉ Π³Π° http://www.freertos.org. ΠΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ FreeRTOS Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ SafeRTOS. ΠΠ½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ IEC 61 508 ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΡΠ΅.