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

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

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

R 00 00 00 00

T 00 00 00 8F Π‘6 FF 7Π’ 00 02 10 EF 20 FE 3F 30 Π‘6

R 00 00 00 00

T 00 1Π’ 80 7Π’ 00 8F F6 00 00 87 Π‘3 00 01 7Π’ 00 00

R 00 00 00 00 00 07 00 02 00 0E 00 02

T 00 29 F6 00 00 C1 7А 26 ОБ F6 00 00 87 41 51 7B

R 00 00 00 00 00 03 00 02

Π’ 00 37 00 00 79 00 00 0B

R 00 00 00 00 00 05 00 02

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ прСдставлСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, содСрТатся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ инструкций ассСмблСра МК сСмСйства 68HC12.

На Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стадии прСдставлСнный Π²Ρ‹ΡˆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ обрабатываСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°: interrupt.lst, interrupt.map ΠΈ interrupt.s19.

Π€Π°ΠΉΠ» листинга ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ interrupt.lst прСдставляСт собой тСкстовый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ассСмблСра, ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ этих ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ адрСса Π² памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… эти ΠΊΠΎΠ΄Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Ρ„Π°ΠΉΠ» листинга прСдставлСн Π½ΠΈΠΆΠ΅:

            .module interrupt.c

            .area memory(abs)

            .org 0Ρ…b1Π΅

0B1Π• _      _Timer_Overflow_interrupt_vector: :

0B1Π• 8044   .word _TOIISR

            .area data

0800        _second::

0800        .blkb 1

            .area idata

--- 0000 00 .byte 0

            .area data

            .area text

802А _main: :

;#include <383HC12-ver1.h>

;void TOIISR(void) ;

;#pragma interrupt_handler TOIISR()

;

;#pragma abs_address:0x0B1E

;void(*Timer_Overflow_interrupt_vector[]) ()={TOIISR};

;#pragma end_abs_address

;

;unsigned char second=0x00;

;

;void main(void)

;{

;TSCR=0x80;

802А C680   ldab #128

802Π‘ 7Π’0086 stab 0Ρ…86

;TMSK2=0x80;

802F C680   ldab #128

8031 7B008D stab 0x8d

;TFLG2=0x80;

8034 C680   ldab #128

8036 7B008F stab 0x8f

;DDRA=0xFF;

8039 C6FF   ldab #255

803Π’ 7Π’0002 stab 0x2

;CLI();

803Π• 10EF   cli

8040        L3:

8040        L4:

8040 20FE bra L3

8042        X0:

;while (1) {};

;EXIT();

8042 3F     swi

; }

8043        L2:

8043        .dbline 0; func end

8043 3D     rts

8044        _TOIISR: :

;

; void TOIISR(void) {

;TFLG2=0x80;

8044 C680    ldab #128

8046 7B008F  stab 0x8f

;second += 1;

8049 f60800  ldab _second

804C 87      clra

804D C30001  addd #1

8050 7B0800  stab _second

;if(second == 122)

8053 F60800  ldab _second

8056 C17A    cmΡ€b #122

8058 260C    bnΠ΅ L7

;{

;PORTA = ~PORTA;

; vol

805A F60000  ldab 0

805D 87      clra

805E 41      comΠ°

805F 51      comb

8060 7B0000  stab 0

;second = 0x00;

8063 790800  clr _second

;}

8066         L7:

;}

8066         L6:

8066         .dbline 0; func end

8066 0B      rti

Π€Π°ΠΉΠ» листинга ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² процСссС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ выявлСнии нСсоотвСтствий ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ программистом дСйствиями ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² процСссС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ располоТСны Π² ячСйках с фиксированными адрСсами. ПослСднюю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти *.map (ΠΈΠ½ΠΎΠ³Π΄Π° этот Ρ„Π°ΠΉΠ» Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sample.c ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Area

(Attributes) Addr Size Decimal Bytes

------------ ---- ---- ------- --------

text 8000    006Π’ = 107. bytes (rel,con)

 Addr Global Symbol

 ---- --------------

 8000 __start

 8028 _exit

 802А _main

 8044 _TOIISR

 8067 __HC12Setup

 806B __text_end

Area

(Attributes) Addr Size Decimal Bytes

------------ ---- ---- ------- -----

idata 806B   0001 = 1. bytes (rel,con)

 Addr Global Symbol

 ---- --------------

 806B __idata_start

 806C __idata_end

Area

(Attributes) Addr Size Decimal Bytes

------------ ---- ---- ------- -----

data 0800 0001 = 1. bytes (rel,con)

 Addr Global Symbol

 ---- --------------

 0800 _second

 0800 __data_start

 0801 __data_end

Area

(Attributes) Addr Size Decimal Bytes

------------ ---- ---- ------- -----

memory 0000  0B20 = 2848. bytes (abs,ovr)

 Addr Global Symbol

 ---- --------------

 0B1E  _Timer_Overflow_interrupt_vector

Files Linked [ module(s)]

C:\icc\lib\crt12.o [crt12.s] interrupt.o [ interrup ]

<library> [psetup.c]

User Global Definitions

init_sp = 0хс00

User BΠ°sΠ΅ Address Definitions

text = 0Ρ…8000 data =0Ρ…8000

Π’ Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти прСдоставляСт программисту ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΉ области памяти Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ„Π°ΠΉΠ» исполняСмых ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΊΠΎΠ΄ΠΎΠ² interrupt.s19 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

S10E8000CF0C0016806787CE08018EAD

S110800B080127056A000820F6CE806BCD21

S111801808008E806C2706180A307020F516BA

S1078026802A20FE8A

S1050B1E80440D

S104806B0010

S110802AC6807B0086C6807B008DC6807BEF

S1118037008FC6FF7B000210EF20FE3F3DC607

S1118045807B008FF6080087C300017B0800D3

S1118053F60800C17A260CF600008741517B26

S109806100007908000B89

S10780677900163D45

S90380007C

КаТдая строка Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ S19 содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ прСдставлСнных Π² Π½Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ адрСс Π΄Π°Π½Π½Ρ‹Ρ… с строкС, сами Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму для этой строки. Полная Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° S19 Π΄Π°Π½Π° Π² руководствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ M68EVB912B32.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ рассмотрСли ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прСобразования исходного Ρ„Π°ΠΉΠ»Π° Π½Π° Π‘ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ исполняСмого ΠΊΠΎΠ΄Π° для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. На языкС структурных Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ этот процСсс прСдставлСн Π½Π° рис. 3.4.

3.15. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π³Π»Π°Π²Π΅ 3

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассмотрСли Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ программирования встраиваСмых систСм Π½Π° Π‘ΠΈ. ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘ΠΈ для ΠΏΠ»Π°Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ MC68HC912B32EVB. БСзусловно, ΡΡ‚ΠΎΠ»ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ языка Π‘ΠΈ нСдостаточно для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ собствСнных Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… встраиваСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π½Π°Π½ΠΈΠΉ Π² области программирования Π½Π° Π‘ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π’Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.16.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли процСсс прСобразования исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ΠΈ Π² Ρ„Π°ΠΉΠ» исполняСмых ΠΊΠΎΠ΄ΠΎΠ² для МК Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π’Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ всСх ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ этого процСсса. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… особСнностях МК сСмСйства 68HC12/HCS12 для Ρ†Π΅Π»Π΅ΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, рассмотрСли возмоТности использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств ΠΏΠ»Π°Ρ‚Ρ‹ MC68HC912B32EVB для тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

3.16. Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ?

1. Kernighan, Π’. W., and D. М. Ritchie. The Π‘ Programming Language, 2nd ed. Upper Saddle River, NJ: Prentice Наll, 1988.

2. Schildt, Н. Б: The Complete Reference. Osborne McGraw Нill.

3. Harbison, Samuel Р. III, and Guy Steele Jr. Б А Reference Manual, 5th ed. Upper Saddle River, NJ: Prentice Наll, 2002.

4. ImageCraft Б Compiler and Development Environment for Motorola HC12, ImageCraft Creations Inc., Раlo Alto, БА, 2002.

3.17. Вопросы ΠΈ задания

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅

1. ΠšΠ°ΠΊΠΎΠ²ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа Β«;Β» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ?

2. Π‘колько Π±Π°ΠΉΡ‚ отводится для хранСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ integer?

3. ΠšΠ°ΠΊΠΎΠ΅ количСство Π±Π°ΠΉΡ‚ отводится для хранСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ указатСля?

4. Π’ ΠΊΠ°ΠΊΠΎΠΉ области памяти МК сСмСйства 68HC12 Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ со статичСским классом хранСния?

5. Π Π°ΡΡΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎ Π΄Π²ΡƒΡ… назначСниях символа * Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ.

6. ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ процСсс прСобразования Ρ„Π°ΠΉΠ»Π° с исходным тСкстом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ΠΈ Π² Ρ„Π°ΠΉΠ» исполняСмых ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΎΠ»Π΅Π΅ слоТныС

1. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ свойством доступности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ³Π΄Π° всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, вСдь Ρ‚Π°ΠΊ программисту ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅?

2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ структуру для хранСния записСй Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². КаТдая запись Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ имя Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°, Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΡƒΠ»ΠΈΡ†Ρƒ ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΌΠ° проТивания, Π³ΠΎΡ€ΠΎΠ΄, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс.

3. Π’ тСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ΠΈ присутствуСт запись:

static int array[10];

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия компилятора ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ соотносятся с этим Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ?

4. ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ макроопрСдСлСния. ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘ΠΈ.

5. Π’ Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ макроопрСдСлСния ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅

1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π‘ΠΈ, которая ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ состояниС свСтодиодов ΠΈΠ· Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 Ρ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свСтодиодов (Π² составС сСмисСгмСнтного ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°) ΠΊ МК сСмСйства 68HC12 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° рис. 3.12.