ΠΠ°ΡΠ° ΠΠ ΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ. Π ΠΏΠ°ΡΠ΅ ΠΠ ΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ (ΠΠ) ΠΈΠ·Π»ΡΡΠ΅Π½ΠΈΡ. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅ΡΠΎΠΈΠ·Π»ΡΡΠ°ΡΡΠΈΠΉ Π΄ΠΈΠΎΠ΄ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠΎΠΉ, Π° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ β ΡΠΎΡΠΎΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ, ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊ ΠΠ-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΠΈΠ·Π»ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠΈΡ. 7.4. ΠΠ»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠ Π΄ΠΈΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΏΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ°Π½Π΅Π΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°ΠΌ. Π€ΠΎΡΠΎΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²Π΅ΡΠΎΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π±Π°Π·Π°-Π±Π°Π·Π°-ΡΠΌΠΈΡΡΠ΅Ρ. ΠΠΎΠ³Π΄Π° ΡΠ²Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ Π²ΠΎΠ»Π½Ρ ΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, Π² Π½Π΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΎΠΊ. Π ΡΠ΅ΠΏΡ ΡΠΌΠΈΡΡΠ΅ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅Π·ΠΈΡΡΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ. Π§Π°ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 10-ΠΎΠ±ΠΎΡΠΎΡΠ½ΡΠΉ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠΎΠΌΠ΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. ΠΡΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ Π΄ΠΎ ΡΡΠ΅Π½ΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ. ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°Π½Π°Π» ΠΠ¦Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° 68HC12.
Π ΠΈΡ. 7.4. ΠΠ°ΡΠ° ΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ β ΠΠ-Π»ΠΎΠΊΠ°ΡΠΎΡ
Π Π΅Π·ΠΈΡΡΠΎΡ (Re) ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠΊ ΠΠ ΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π½ΠΎΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Ie). Π’ΠΎΠΊ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π½Π° ΡΠ΅Π·ΠΈΡΡΠΎΡΠ΅ Rd Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° (Vout)
ΠΠ°ΡΡΠΈΠΊΠΈ Π₯ΠΎΠ»Π»Π°, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΠ΅ΠΊΡ Π₯ΠΎΠ»Π»Π°, ΡΡΠΎΠ±Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. ΠΠ° ΡΡΠ½ΠΊΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ Π΄Π°ΡΡΠΈΠΊΠΈ Π₯ΠΎΠ»Π»Π° Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ²: (1) ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΈ (2) Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ. ΠΠ°ΡΡΠΈΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΈΠΏΠ°, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ² ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ, ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π²ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈΡΡΠ΅Π·Π°Π΅Ρ.
ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΠΌΠΎΠΌΡ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ±ΠΎΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Β«ΠΌΠΈΠ½Β».
Π ΠΈΡ. 7.5. ΠΠ°ΡΡΠΈΠΊ Π₯ΠΎΠ»Π»Π° HAL114 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Micronas
ΠΠ°ΡΡΠΈΠΊΠΈ Π₯ΠΎΠ»Π»Π° ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ·Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠΌΠΈ. ΠΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π°ΡΡΠΈΠΊ Ρ ΡΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ HAL114 ΡΠΈΡΠΌΡ Micronas, ΡΡ Π΅ΠΌΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° R, RL ΠΈ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ C, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 7.5. ΠΠ°ΠΊ ΠΈ ΡΠ°Π½Π΅Π΅, Π³ΡΠ°ΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ Π΄ΠΎ ΡΡΠ΅Π½ΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ. ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» Ρ Π΄Π°ΡΡΠΈΠΊΠ° ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°Π½Π°Π» ΠΠ¦Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° 68HC12. ΠΠΎΠ»Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ²ΡΠ·ΠΈ ΠΠ 68HC12 Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠΎΠ±ΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 7.6. ΠΠ°ΠΊΠΎΠ½ΡΠΈΠ² Π½Π° ΡΡΠΎΠΌ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠ±Π·ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠ°.
Π ΠΈΡ. 7.6. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠΎΠ±ΠΎΡΠ° ΠΈ 68HC12
7.1.4. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
Π Π°Π±ΠΎΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π’ΠΎΠΌΠΎΠΌ Π¨Π΅ΠΈ, Π±ΡΠ²ΡΠΈΠΌ ΡΡΡΠ΄Π΅Π½ΡΠΎΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° ΡΡΠ°ΡΠ° ΠΠ°ΠΉΠΎΠΌΠΈΠ½Π³, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ImageCraft ICC12. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠΈΡ. 7.7. ΠΡ ΠΏΡΠΎΡΠΈΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Ρ, ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ (ΡΠΌ. Π·Π°Π΄Π°Π½ΠΈΠ΅ 12).
Π°) Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π±) ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° UML
Π ΠΈΡ. 7.7. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠΌ, Π΄Π²ΠΈΠΆΡΡΠΈΠΌΡΡ Π²Π΄ΠΎΠ»Ρ ΡΡΠ΅Π½ΠΎΠΊ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
7.1.5. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄
/********************************************************************/
/*ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°: robot.c */
/* Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠΌ, Π΄Π²ΠΈΠΆΡΡΠΈΠΌΡΡ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅: ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° */
/* ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅*/
/* ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π½ΠΎΠΊ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°. */
/* ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΡΡΠ΅Π½ΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ*/
/* ΠΎΡ ΡΠΎΠ±ΠΎΡΠ°.ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΠΎΡ ΠΏΡΡΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ²,*/
/* ΡΠΎΠ±ΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ */
/* ΠΈΠ·Π±ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°. */
/* ΠΠ°ΡΡΠΈΠΊ Π₯ΠΎΠ»Π»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΌΠ°Π³Π½ΠΈΡΡ ΠΈΠ»ΠΈ "ΡΠΊΡΡΡΡΠ΅ ΠΌΠΈΠ½Ρ",*/
/* ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠΌ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°. Π ΠΎΠ±ΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΠ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
/* Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄*/
/* ΠΏΠΎΠ»ΠΈΠ½Π³Π° Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΠ¦Π.Π‘ΠΈΠ³Π½Π°Π» ΠΌΠΎΠ΄ΡΠ»Ρ Π¨ΠΠ */
/* ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠ»Π΅Ρ ΡΠΎΠ±ΠΎΡΠ°. */
/*ΠΠ²ΡΠΎΡ: Π’ΠΎΠΌΠ°Ρ Π¨Π΅ΠΈ. ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ: 18 ΠΎΠΊΡΡΠ±ΡΡ 2002 */
/*ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ: 4 Π΄Π΅ΠΊΠ°Π±ΡΡ 2002 */
/********************************************************************/
/* ΠΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ*/
#include <912b32.h>
#include <stdio.h>
/*ΠΠΎΡΠΎΠ³ΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ² Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ*/
#define opto_threshold 0x50 /* ΠΏΠΎΡΠΎΠ³ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° */
#define hes_threshold 0x80 /* ΠΏΠΎΡΠΎΠ³ Π΄Π°ΡΡΠΈΠΊΠ° Π₯ΠΎΠ»Π»Π° */
#define forward 0
#define half_left 1
#define half_right 2
#define left_turn 3
#define right_turn 4
#define back_up 5
/*Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅*/
unsigned int i=0,j=0; /*ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ */
unsigned char sens[6]={0, 0, 0, 0, 0, 0};/*ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΠ¦Π */
/*ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ*/
void init_adc(void); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ¦Π */
void read_adc(void); /*ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΠ¦Π */
void decision(void); /*ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° */
/*Π΄Π°Π½Π½ΡΡ ΠΠ¦Π* /
void init_pwm(void); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π¨ΠΠ */
void pwm_motors(const char a); */Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π¨ΠΠ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ */
void lcd_init(void); /* ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ */
int putchar(char c); /*Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
int putcommand(char Ρ); /*Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
void delay_25(void); /*ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° 2,5 Ρ */
void lcd_print(char *string); /*Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΠ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
void main() {
asm(".area vectors(abs)\n" /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ° ΡΠ±ΡΠΎΡΠ° ΠΠ */
" org 0xFFF8\n"
" .word 0x8000, 0x8000, 0x8000, 0x8000\n"
".text");
lcd_init(); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ Π΄ΠΈΡΠΏΠ»Π΅Ρ */
lcd_print("LCD initialized");
void delay_25(void); /* Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° 2,5 Ρ */
init_adc(); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ¦Π */
lcd_print("ADC initialized");
void delay_25(void); /* Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° 2,5 Ρ */
init_pwm(); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π¨ΠΠ */
lcd_print("PWM initialized");
void delay_25(void); /* Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° 2,5 Ρ */
while(1) / *Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΡΠΈΠΊΠ» */
{
read_adc(); /* ΡΡΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΠ¦Π */
decision(); /* ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ */
}
} /*ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ main*/
********************************************************************/
/*initialize_adc: ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ¦Π ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° 68HC12 */
/*******************************************************************/
void init_adc() {
ATDCTL2 = 0x80; /*Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡ ADPU Π΄Π»Ρ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΠ¦Π */
ATDCTL3 = 0x00;
ATDCTL4 = 0x7F; /* ΡΠ°ΡΡΠΎΡΡ P_CLK ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° 125 ΠΊΠΡ */
/* Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ: 32 ATD CLK, */
/*1 ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 256 ΠΌΠΊΡ /*
for(i=0; i<67; i++) /*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° 100 ΠΌΠΊΡ ΠΏΡΠΈ 8 ΠΠΡ E_CLK */
{
;
}
}
/********************************************************************/
/********************************************************************/
/*read_adc: ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ· ΠΠ¦Π */
/********************************************************************/
void read_adc() {
ATDCTL5 = 0x50; /*Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΠ¦Π Π½Π° ΡΠ΅ΠΆΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ,*/
/* ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ 8 ΠΊΠ°Π½Π°Π»ΠΎΠ² */
while((ATDSTAT & 0x8000) == 0)/* ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΠΈΡΠ° SCF Π΄Π»Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ */
/*ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ */
{
;
}
/* ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ */
sens[0] = ADR7H; /*Π΄Π°Π»ΡΠ½ΠΈΠΉ Π»Π΅Π²ΡΠΉ Π΄Π°ΡΡΠΈΠΊ */
sens[l] = ADR6H; /*ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠ°Π²ΡΠΉ Π΄Π°ΡΡΠΈΠΊ */
sens[2] = ADR5H; /*ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ */
sens[3] = ADR4H; /* ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠ°Π²ΡΠΉ Π΄Π°ΡΡΠΈΠΊ */
sens[4] = ADR3H; /* Π΄Π°Π»ΡΠ½ΠΈΠΉ ΠΏΡΠ°Π²ΡΠΉ Π΄Π°ΡΡΠΈΠΊ */
sens[5] = ADR2H; /*Π΄Π°ΡΡΠΈΠΊ Π₯ΠΎΠ»Π»Π°*/
}
/********************************************************************/
/*decision(): ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡ*/
/* ΠΏΡΡΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ². ΠΠΎΡΠΎΠ³ Π΄Π°ΡΡΠΈΠΊΠ° Π₯ΠΎΠ»Π»Π° (hes_threshold) ΠΈ ΠΏΠΎΡΠΎΠ³ */
/* ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° (opto_threshold) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ.*/