Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 46

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

β€’ ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ прСрывания (МК);

β€’ Π‘брос сигнала запроса обслуТиваСмого прСрывания (программист ΠΈΠ»ΠΈ МК, Π² зависимости ΠΎΡ‚ источника прСрывания);

β€’ Π’осстановлСниС рСгистров Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора ΠΈΠ· стСка (программист ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ RTI);

β€’ Π‘брос маски I (МК);

β€’ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ исполнСнию основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (МК).

2. ΠšΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ МК сСмСйства 68HC12/HCS12 опрСдСляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ обслуТиваСмого запроса Π½Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅?

ΠžΡ‚Π²Π΅Ρ‚: ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ располоТСния источников запросов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² прСрывания опрСдСляСт ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

3. Π§Π°ΡΡ‚ΠΎ Π² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая содСрТит ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрывания, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° SEI. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ?

ΠžΡ‚Π²Π΅Ρ‚: ΠŸΡ€ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‚Π° маскируСмых ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ SEI Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” своСобразный Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ‚ΠΎΠ½Β» ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ прСрывания Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ МК, Ρ‚.Π΅. ΠΊΠΎΠ³Π΄Π° МК находится Π² процСссС создания своСй Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Когда инициализация Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, программист Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ прСрывания ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ CLI.

4. Π—Π°Ρ‡Π΅ΠΌ МК сСмСйства 68HC12/HCS12 ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈ прСрываниях?

ΠžΡ‚Π²Π΅Ρ‚: ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ прСрывания инструкции, ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Π² рСгистрах ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Ρ‹ для исполнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡ… ΠΊΠΎΠ΄Ρ‹ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ, ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрывания.

4.12. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрывания Π½Π° Π‘ΠΈ

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ ΠΌΡ‹ рассмотрим основныС особСнности формирования исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с прСрываниями Π½Π° Π‘ΠΈ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡ€ΠΈ рассмотрСнии ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… устройств управлСния. На протяТСнии всСх этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис компилятора ImageCraft ICC12. ΠŸΡ€ΠΈ использовании Π΄Ρ€ΡƒΠ³ΠΈΡ… компиляторов Π’Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ особСнностями программирования. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… рСализация Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ записи (синтаксиса) исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘ΠΈ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы записи исходного тСкста:

1. ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания Π½Π° Π‘ΠΈ, имя ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ объявлСно с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора. Π’ компиляторС ImageCraft ICC12 для этой Ρ†Π΅Π»ΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #pragma:

#pragma interrupt_handler <name>

Π’ ΠΏΠΎΠ»Π΅ <name> слСдуСт Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ имя ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрывания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄Π°Π»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² тСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ запись ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ компилятор ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция с Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ являСтся ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ прСрывания.

2. Π”Π°Π»Π΅Π΅ ΠΏΠΎ тСксту ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСрывания оформляСтся ΠΊΠ°ΠΊ обычная функция. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π² процСссС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° исходного тСкста этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π‘ΠΈ Π² инструкции ассСмблСра автоматичСски подставит Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· прСрывания RTI, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ эта функция Π±Ρ‹Π»Π° объявлСна ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ прСрывания (Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #pragma Π½Π° этапС 1).

3. Π”ля ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ функционирования МК Π² процСссС прСрывания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка. Π•Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ адрСсу области ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти МК, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠΌΡƒ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ памяти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΊΠ°ΠΊ постоянной, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ) ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ установками Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ компилятора, Ρ‚ΠΎ функция ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ указатСля стСка выполняСтся компилятором автоматичСски. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ программист Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ тСкст Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ указатСля стСка. Π—Π°Ρ‚ΠΎ слСдуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ памяти Π² установках компилятора, которая ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмой.

4. ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° прСрывания Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ссли для Π½Π΅Π΅ сформирована Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² прСрывания. ΠœΡ‹ ΡƒΠΆΠ΅ обсуТдали, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² прСрывания Π² МК B32 находится Π² области Flash-памяти, которая Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° ΠΎΡ‚ пСрСзаписи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² сброса ΠΈ прСрывания, Π² эту Π½Π΅ΡΡ‚ΠΈΡ€Π°Π΅ΠΌΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти записаны фиксированныС Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ извСстным адрСсам Π² области пСрСзаписываСмой EEPROM памяти (см. рис. 4.19). По этим адрСсам программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° JMP с адрСсом ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания.

5. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ маскируСмый источник запроса Π½Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ установкой ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π° Π² рСгистрС управлСния ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ модуля. ΠœΡ‹ рассмотрим, ΠΊΠ°ΠΊ это Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π‘ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

6. ΠŸΠΎΡΠ»Π΅ установки всСх ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ прСрывания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ маску прСрывания I. На ассСмблСрС для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ CLI. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘ΠΈ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, посрСдством ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… макросов:

#define CLI() asm("cli\n"); //Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ маскируСмыС прСрывания

#define SEI() asm("sei\n"); //Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ маскируСмыС прСрывания

Π”Π°Π»Π΅Π΅ ΠΏΠΎ тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ прСрывания, Ρ‚ΠΎ слСдуСт ввСсти CLI().

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ подсистСмы прСрывания. ΠŸΠΎΠ»Π½ΡƒΡŽ запись исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с прСрываниями ΠΌΡ‹ рассмотрим послС обсуТдСния модуля Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.


//объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅

void toggle_isr(void);


//Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #pragma для указания, Ρ‡Ρ‚ΠΎ функция являСтся ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ

//обслуТивания прСрывания

#pragma interrupt_handler toggle_isr


//инициализация ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

#pragma abs_address: 0xF7EA


//Π’32 RAМ based vector address

void (*Timer_Channel_2_interrupt_vector[])()={toggle_isr};

#pragma end_abs_address

4.13. БистСма тактирования

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ сСмСйства 68HC12/HCS12 ΠΈΠΌΠ΅ΡŽΡ‚ Π² своСм составС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° CGM (Clock Generation Module), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для тактирования Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора, ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… магистралСй, ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² составС МК, Π° Ρ‚Π°ΠΊΠΆΠ΅ внСшниС ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ схСмы. Бтруктурная схСма модуля CGM прСдставлСна Π½Π° рис. 4.23.

Рис. 4.23. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° модуля тактирования CGM


ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ сСмСйства 68HC12/HCS12 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сигнала тактирования: TCLK, ECLK ΠΈ PCLK. Π­Ρ‚ΠΈ сигналы ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ дСлСния эталонной ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° с внСшним ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΌ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Π‘ΠΈΠ³Π½Π°Π» TCLK ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для тактирования Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора, ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ECLK ΠΈ PCLK ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для тактирования ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… магистралСй ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (рис. 4.23). ΠœΠΎΠ΄ΡƒΠ»ΡŒ тактирования CGM ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° B32 оснащСн Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт сущСствСнно ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ частоту ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ тактирования. Низкая частота тактирования Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… примСнСниях позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

4.13.1.БистСма тактирования ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ MC68HC912B32EVB

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π² составС ΠΏΠ»Π°Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ MC68HC912B32EVB тактируСтся ΠΎΡ‚ внСшнСго ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€Π° с частотой 16 ΠœΠ“Ρ†. Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° CGM эта частота дСлится Π½Π° 2, образуя ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для тактирования Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора ΠΈ ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… магистралСй ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° с частотой 8 ΠœΠ“Ρ†. Π­Ρ‚Π° ΠΆΠ΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для тактирования всСх ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°: Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°, АЦП. МногиС ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ собствСнным Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ частоты. Π­Ρ‚ΠΎΡ‚ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ частоту тактирования модуля, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с частотами Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

ΠšΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄Π° МК посрСдством ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ MC68HC912B32EVB. ВмСсто ΠΊΠ²Π°Ρ€Ρ†Π΅Π²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€Π° для тактирования МК ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован внСшний Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ кСрамичСский Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€. ПослСдний ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ мСньшСй, Ρ‡Π΅ΠΌ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ частоты, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ являСтся Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² схСмотСхнику ΠΏΠ»Π°Ρ‚Ρ‹ MC68HC912B32EVB. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π»Π΅Π΅ Π½Π° протяТСнии всСй ΠΊΠ½ΠΈΠ³ΠΈ частота Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΡˆΠΈΠ½Ρ‹ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора МК Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 8 ΠœΠ“Ρ†. Частота Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΡˆΠΈΠ½Ρ‹ МК ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ модуля CGM (рис. 4.23). Π•Π³ΠΎ коэффициСнт дСлСния назначаСтся ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 1, 2, 4, …, 128. Для Π²Ρ‹Π±ΠΎΡ€Π° ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ коэффициСнта дСлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ рис. 4.24 ΠΊΠΎΠ΄ Π² разряды SLDV2…SLDV0 рСгистра управлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ SLOW. Π€ΠΎΡ€ΠΌΠ°Ρ‚ этого рСгистра ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рис. 4.24.