Π‘ΠΈ для avr – AVR. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠšΡƒΡ€Ρ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘ΠΈ. Π§Π°ΡΡ‚ΡŒ 1

AVR ПишСм ΠΊΠΎΠ΄ Π½Π° БИ. Π—Π°ΠΆΠΈΠ³Π°Π΅ΠΌ свСтодиод

&nbsp

&nbsp

&nbsp

Π£Ρ€ΠΎΠΊ 3

Β 

Β 

БСгодня ΠΌΡ‹ научимся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° C Π² срСдС Atmel Studio, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ занятии.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ нСпосрСдствСнно Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ написаниСм ΠΊΠΎΠ΄Π°, ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Ρ‚Π΅ строки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΡƒΠΆΠ΅ сгСнСрировала студия Π² нашСм Ρ„Π°ΠΉΠ»Π΅ Test01.c.

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ строку Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

#include <avr/io.h>

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #include просит прСпроцСссор (компилятор) Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ послС Π½Π΅Π΅ Π² исходный ΠΊΠΎΠ΄. Имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ скобки <> Π»ΠΈΠ±ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ””. Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ скобки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² случаС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· самой срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

#include <имя Ρ„Π°ΠΉΠ»Π°>

Π’ нашСм случаС Π² тСкст ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» io.h. Если ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² зависимости ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ условий Π² наш ΠΊΠΎΠ΄ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΅Ρ‰Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’ нашСм частном случаС условиСм являСтся использованиС Π½Π°ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Atmega8a, Ρ‚ΠΎ соотвСтствСнно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»:

#elif defined (__AVR_ATmega8A__)
# include <avr/iom8a.h>

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ находятся макросы для Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… шин. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ макросы ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. ДвиТСмся дальшС ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ io.h ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΅Ρ‰Ρ‘ 3 Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»:

#include <avr/portpins.h>

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ находятся Ρ‚Π°ΠΊΠΆΠ΅ макроподстановки для Π½Π°ΡˆΠΈΡ… Π»Π°ΠΏΠΎΠΊ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ наш ΠΊΠΎΠ΄. ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π² Π½Ρ‘ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ строки

/* Port Data Register (generic) */
#define PORT7 Β 7
#define PORT6 Β 6
#define PORT5 Β 5
#define PORT4 Β 4
#define PORT3 Β 3
#define PORT2 Β 2
#define PORT1 Β 1
#define PORT0 Β 0

Π”Π°Π½Π½Ρ‹Π΅ строки Π½Π°ΠΌ говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΏΡ€ΠΈ компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° прСпроцСссор (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄) встрСтит Π² ΠΊΠΎΠ΄Π΅ слово PORT4, Ρ‚ΠΎ ΠΎΠ½ Π΅Π³ΠΎ сразу Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Π½Π° Ρ†ΠΈΡ„Ρ€Ρƒ 4.

Π’Π΅ΠΌ самым ΠΌΡ‹ постСпСнно с Π²Π°ΠΌΠΈ подошли ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define

ΠŸΡ€ΠΎΡΠΈΡ‚ прСпроцСссор (компилятор) Π² случаС появлСния Π² тСкстС ΠΊΠΎΠ΄Π° буквосочСтания 1 Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° буквосочСтаниС 2.

Данная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удобства чтСния ΠΊΠΎΠ΄Π°.

#define <буквосочСтаниС 1> <

буквосочСтаниС 2>

ВСрнёмся Π² наш ΠΊΠΎΠ΄. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅

int main(void)
{

…

}

Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ с Π²Π°ΠΌΠΈ наблюдаСм Π² языкС C ΠΈ C++ называСтся функция. Ѐункциями ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ постоянно. Ѐункция β€” это такая ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая вызываСтся ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ участка ΠΊΠΎΠ΄Π°. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это Π΅Ρ‘ имя (Π² нашСм случаС main). По ΠΈΠΌΠ΅Π½ΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅Π»ΠΎ. Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ находятся сразу послС ΠΈΠΌΠ΅Π½ΠΈ Π² скобках ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π° Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми. Π’ нашСм случаС стоит ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Β«voidΒ», ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Ρƒ нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли ΠΌΡ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ участкС ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΠΌΡ‹ Π² скобках Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ставим. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄ΠΈΠ½. Если Π½Π°ΠΌ потрСбуСтся большС Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠΈ Π½Π°ΡˆΠΈΡ… ΡƒΡ€ΠΎΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ это ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ нСпосрСдствСнно Π² ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΏΠΎ языкам программирования. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° указываСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ нашСм случаС β€” это int (цСлочислСнная знаковая пСрСмСнная). Π’Π°ΠΊΠΆΠ΅ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сущСствуСт Ρ‚Π΅Π»ΠΎ β€” это участок ΠΊΠΎΠ΄Π°, находящийся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками. Π’ΠΎΡ‚ этот участок ΠΊΠΎΠ΄Π° ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² случаС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ main ΠΌΡ‹ явно Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ. Π­Ρ‚ΠΎ главная функция нашСго прилоТСния, Π½Π΅Π΄Π°Ρ€ΠΎΠΌ ΠΎΠ½Π° ΠΈ называСтся main, Ρ‡Ρ‚ΠΎ ΠΏΠΎ английски Π·Π½Π°Ρ‡ΠΈΡ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ. ВстрСтив Π΄Π°Π½Π½ΠΎΠ΅ имя, компилятор ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π΄Π°Π½Π½ΠΎΠ³ΠΎ мСста. Π’ΠΎ Π΅ΡΡ‚ΡŒ это своСго Ρ€ΠΎΠ΄Π° входная Ρ‚ΠΎΡ‡ΠΊΠ° нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΡ‚ΡΡŽΠ΄Π° всё ΠΈ начинаСтся. Бюда ΠΌΡ‹ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ сюда ΠΈ напишСм. ΠœΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° строки, ΡƒΠΆΠ΅ содСрТащиСся Π² Ρ‚Π΅Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π£ программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ ПК, Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ занятия принято с Π²Ρ‹Π²ΠΎΠ΄Π° строки Β«Hello World!Β», Π° Ρƒ Ρ‚Π΅Ρ… программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ ΠΏΠΎΠ΄ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Ρ‡ΠΈΠΏΡ‹, принято Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ управлСния свСчСниСм свСтодиодами. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΈ ΡƒΡ‡Π°Ρ‚ ΠΈΡ… ΠΌΠΈΠ³Π°Ρ‚ΡŒ просто, ΠΌΠΈΠ³Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π° ΡƒΠΆΠ΅ послС этого ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ свСтодиод ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½ΠΎΠΆΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊ Π½ΠΎΠΆΠΊΠ΅ 0 ΠΏΠΎΡ€Ρ‚Π° D

Β 

Π£ ΠΏΠΎΡ€Ρ‚Π° D, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ распиновки, сущСствуСт ΠΊΠ°ΠΊ Ρ€Π°Π· 8 Π½ΠΎΠΆΠ΅ΠΊ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π±Π°ΠΉΡ‚Ρƒ (8 Π±ΠΈΡ‚). Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Ρ‹, Π½ΠΎΠΆΠΊΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ 0.

НапишСм ΠΌΡ‹ сначала ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку

int main(void)
{

DDRD = 0xFF;

Π’ΠΏΡ€Π΅Π΄ΡŒ я Π±ΡƒΠ΄Ρƒ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ добавляСм Π² ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ измСняСм Π² ΠΊΠΎΠ΄Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ я ΠΊΡ€ΠΎΠΌΠ΅ этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π² написании Π±Π»ΠΎΠ³ΠΎΠ² Π΅Ρ‰Ρ‘ кусок ΠΊΠΎΠ΄Π°, находящийся ΠΈΠ»ΠΈ Π΄ΠΎ ΠΈΠ»ΠΈ послС написанного ΠΊΠΎΠ΄Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ Π±Ρ‹Π»ΠΎ понятно, ΠΊΡƒΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ‹ пишСм ΠΊΠΎΠ΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ, это ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅.

DDRD β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая устанавливаСт состояниС Π»Π°ΠΏΠΎΠΊ ΠΏΠΎΡ€Ρ‚Π° D. БостояниС Π»Π°ΠΏΠΊΠΈ ΠΏΠΎΡ€Ρ‚Π° β€” это Ρ‚ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ данная Π»Π°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ β€” Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄, Ρ‡Ρ‚ΠΎ соотвСтствуСт установкС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° Π² 0 ΠΈΠ»ΠΈ Π² 1. Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΆΠΈΠ³Π°Ρ‚ΡŒ свСтодиод, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅ ΠΏΠΎΡ€Ρ‚Π° Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ высокий логичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (Π² нашСм случаС 5 Π²ΠΎΠ»ΡŒΡ‚). А Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ уровнями Π½ΠΎΠΆΠΊΠΈ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π° Π²Ρ‹Π²ΠΎΠ΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ состояниСм Π»Π°ΠΏΠΊΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π° Π½Π΅ ΠΈΠ· внСшнСго источника уровня. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас Π»Π°ΠΏΠΊΠ° нулСвая, Ρ‚ΠΎ ΠΈ Π±ΠΈΡ‚ ΠΌΡ‹ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ноль Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ‚ нашСго Π±Π°ΠΉΡ‚Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ D. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ сСгодня ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π»Π°ΠΏΠΊΠ°ΠΌΠΈ ΠΏΠΎΡ€Ρ‚Π°, Ρ‚ΠΎ Π½Π°ΠΌ ΠΈΡ… состояниС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈ ΠΌΡ‹ выставляСм всС Π»Π°ΠΏΠΊΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π° Π²Ρ‹Π²ΠΎΠ΄. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ присваиваСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

DDRD Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0xFF. Π”Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ написали Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½ для программистов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚. FF β€” это Π² дСсятичной систСмС 255, Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ β€” 11111111, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС Π±ΠΈΡ‚Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ числС выставлСны Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наша строка заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой (;). Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€” это Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ нСсколько, Ссли ΠΎΠ½ΠΈ нСбольшиС. Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«=Β» (Π·Π½Π°ΠΊ равСнства). Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ заставляСт наш прСпроцСссор ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, находящССся справа Π²ΠΎΠ·Π»Π΅ Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, находящСйся слСва.

Ну, Π²ΠΎΠΎΠ±Ρ‰Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΌΡ‹ вСсь наш ΠΏΠΎΡ€Ρ‚ Π² состояниС Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° Π»Π°ΠΏΠΊΠ΅

PD0 высокий логичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

DDRD = 0xFF;

PORTD = 0b00000001;

Β 

Β 

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ пСрСмСнная PORTD управляСт записью ΠΈΠ»ΠΈ считываниСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΡ€Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ· ΠΏΠΎΡ€Ρ‚Π° Π² зависимости ΠΎΡ‚ состояния. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Π»Π°ΠΏΠΊΡƒ Π² высокоС логичСскоС состояниС (Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ). Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ написаниС значСния Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ значСния Π² Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ прСфикс 0b. Π”Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΡƒΠ΄ΠΎΠ±Π΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ выглядит наш Π±Π°ΠΉΡ‚ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ. Π›Π°ΠΏΠΊΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π² Π±Π°ΠΉΡ‚Π΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π±ΠΈΡ‚Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ справа Π½Π°Π»Π΅Π²ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ‹ выставили Π² высокоС состояниС Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Π»Π°ΠΏΠΊΡƒ ΠΏΠΎΡ€Ρ‚Π° D, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΡ‹ выставили Π² Π½ΠΈΠ·ΠΊΠΎΠ΅. Π’ΠΎΠΎΠ±Ρ‰Π΅ΠΌ, арифмСтичСско-логичСскоС устройство ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° сначала Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ всС Π½ΠΎΠΆΠΊΠΈ ΠΏΠΎΡ€Ρ‚Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ установит Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅ высокоС логичСскоС состояниС, ΠΈ послС этого Ρƒ нас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΆΠ΅Ρ‡ΡŒΡΡ свСтодиод, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠΊΠΎΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор ΠΌΡ‹ Π΅Π³ΠΎ Π°Π½ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅, Π° ΠΊΠ°Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρƒ. Π’Π΅ΠΌ самым Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ… свСтодиода появится Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠ², которая заставит Π΅Π³ΠΎ ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ. ΠšΡ€ΠΎΠΌΠ΅ написанных Π½Π°ΠΌΠΈ Π΄Π²ΡƒΡ… строк Π΄Π°Π»Π΅Π΅ Π² ΠΊΠΎΠ΄Π΅ присутствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π°

while. Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ условного Ρ†ΠΈΠΊΠ»Π°.

PORTD = 0b00000001;
while(1)
{

}

Π’ скобочках указываСтся условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ, Ρ‚ΠΎ Ρƒ условия Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. И код, находящийся Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно, ΠΏΠΎΠΊΠ° условиС, находящССся Π² скобках Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ истинным. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условиС пСрСстанСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π° провСряСтся это Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ выполнится Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° (Π΄ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки), Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡƒΠΆΠ΅ дальшС Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится ΡƒΠΆΠ΅ Π½Π΅ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°, Π° послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки. А истина Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ β€” это TRUE ΠΈΠ»ΠΈ 1. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ бСсконСчным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ стоит Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° всСгда Ρ€Π°Π²Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. БСсконСчный Ρ†ΠΈΠΊΠ» ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄, написанный для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, выполнялся постоянно, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ наш ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ постоянно Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ Π½Π΅ останавливался. Π’ нашСм случаС Ρ‚Π΅Π»ΠΎ пустоС, ΠΈ наш ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Π²Π΅Ρ€Π½Π΅Π΅ Π΅Π³ΠΎ АЛУ, Π±ΡƒΠ΄Π΅Ρ‚ всё врСмя Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π½Π°ΠΌ Π΅Π³ΠΎ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ Π² Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΠ΅, Π»ΠΈΠ±ΠΎ, Π½Π΅ Π΄Π°ΠΉ Π‘ΠΎΠ³, сгорит ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Π’ΠΎ Π΅ΡΡ‚ΡŒ свСтодиод наш Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ постоянно.

БСгодня ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ симуляции, Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² самой студии, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ занятии ΠΌΡ‹ Π² качСствС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ симулятор. Π”Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π»ΠΈΠ±ΠΎ клавишСй F9 ΠΌΡ‹ установим Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Β PORTD = 0b00000001; ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запустим ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Π΄Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Π² этом мСстС ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ ΠΌΡ‹ смоТСм ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΈ Π³Π΄Π΅ Ρƒ нас ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΠΌΡ‹ Π½Π°ΠΆΠΌΡ‘ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Π²ΠΈΠ΄Π΅ Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ доТдёмся, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ остановится Π½Π° нашСй красной Ρ‚ΠΎΡ‡ΠΊΠ΅

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ наблюдаСм, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Ρƒ нас ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π°ΡΡŒ ΠΊΠ°Ρ€Ρ‚Π° нашСй памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°ΠΌ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ понятно. Если Π±Ρ‹ ΠΌΡ‹ писали Π½Π° ассСмблСрС Π»ΠΈΠ±ΠΎ Π½Π° машинном ΠΊΠΎΠ΄Π΅, Ρ‚ΠΎ Π½Π°ΠΌ Π±Ρ‹ это Π±Ρ‹Π»ΠΎ понятнСС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нас интСрСсуСт другая. ΠšΠ°Ρ€Ρ‚Π°. Для этого ΠΌΡ‹ Π½Π°ΠΆΠΌΡ‘ΠΌ Π²ΠΎΡ‚ эту ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΡƒ

Данная ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΠ° (I/O View) ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π½Π°ΠΌ ΠΎΠΊΠ½ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π°ΡˆΠΈΡ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ

Β 

НаТмСм Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π½Π° строку PORTD ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎ вСсь наш рСгистр DDRD, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠΆΠ΅ΠΊ ΠΏΠΎΡ€Ρ‚Π° выставился вСсь Π² Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄

А дальшС ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ сработаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π½Π°ΠΌ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Π½ΠΎΠΆΠΊΡƒ, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π°, Π° Ρƒ нас Π΅Ρ‘ Π½Π΅Ρ‚, Ρƒ нас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ бСсконСчный Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° β€” Π½Π΅ строка. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΠΎΠΊΠ° остановим ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ

И ΠΌΡ‹ напишСм ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Ρ‘ строку, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΉ свСтодиод Ρƒ нас погас, Π° заТСгся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присоСдинСн ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π°ΠΏΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эффСкт Π±Π΅Π³ΡƒΡ‰Π΅Π³ΠΎ огня

PORTD = 0b00000001;

PORTD = 0b00000010;

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ всё это Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρƒ нас Π½Π΅ сработаСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ успССм Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ свСчСниС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ свСтодиода. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄ΡƒΠΌΠΊΠ° Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° практичСски, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Ρ‰Ρ‘ с Π²Π°ΠΌΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π° это Ρ‚Π΅ΠΌΠ° ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… занятий. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΡ‹ Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ Π±Ρ‹Π»ΠΎ Π³Π΄Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ запустим Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Π’ΠΎΡ‡ΠΊΠ° останова Ρƒ нас Ρ‚Π°ΠΊΠΆΠ΅ находится ΠΏΠΎΠΊΠ° Π½Π° Ρ‚ΠΎΠΉ строкС, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈ Π±Ρ‹Π»Π° Π΄ΠΎ этого. Запустим ΠΎΠΏΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π‘ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ сам Π΅Π³ΠΎ пСрСсобСрСт. ДоТидаСмся остановкС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ΅. Π’ окошкС с Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΎΠΏΡΡ‚ΡŒ Π½Π°ΠΆΠΌΡ‘ΠΌ Π½Π° строкС с нашим ΠΏΠΎΡ€Ρ‚ΠΎΠΌ. Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΡˆΠ°Π³Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Для этого Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F10, ΠΎ Ρ‡Π΅ΠΌ Π½Π°ΠΌ подсказываСт студия, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ подносим ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ остановится Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡƒΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ самый Π»Π΅Π²Ρ‹ΠΉ Π±ΠΈΡ‚, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅ ΠΏΠΎΡ€Ρ‚Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ Π² высокоС логичСскоС состояниС, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΌΡ‹ это Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² рСгистрС PORTD, Π½ΠΎ ΠΈ Π² рСгистрС PIND, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° считываниС состояния Π½ΠΎΠΆΠ΅ΠΊ ΠΏΠΎΡ€Ρ‚Π° D ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Π²Π²ΠΎΠ΄. Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ Π²ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌ наши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ наш ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΡƒΠ±Π΅Ρ€Ρ‘ΠΌ всС Π±Ρ€Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹, Π°, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π»Π°ΠΏΠΊΡƒ.

ПослС этого тСкст ΠΊΠΎΠ΄Π° Ρƒ нас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ

Β 

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊΒ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ МК AVRΒ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ

Β 

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Β 

Β 

ΠšΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ здСсь (ΠΏΡ€ΠΎΠ΄Π°Π²Π΅Ρ† Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ) USBASP USBISP 3.3

Β 

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π’Π˜Π”Π•ΠžΠ£Π ΠžΠš

Β 

Β 

Post Views: 19Β 562

narodstream.ru

Книга ΠΏΠΎ БИ для AVR. / AVR / БообщСство EasyElectronics.ru

Нарыл Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΊΠ»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΈΠΆΠ΅Π½Ρ†ΠΈΡŽ Π°Π²Ρ‚ΠΎΡ€Π° Π ΠΎΠΌΠ°Π½Π° ΠΠ±Ρ€Π°ΡˆΠ°. НазываСтся Книга ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с WinAVR ΠΈ AVR Studio. Книга Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ дописана. Но Ρ…ΠΎΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΈ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠ½Π΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ.

Π’ΠΎΡ‚ Ρ†ΠΈΡ‚Π°Ρ‚Π° ΠΈΠ· Π΅Π³ΠΎ ΠΊΠ½ΠΈΠ³ΠΈ:

Как извСстно, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° языках программирования, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… наибольшСй ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π‘ΠΈ. Благодаря основам, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² этот язык, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΌΠ°Π»ΠΎ отличаСтся ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ смогут Ρ‚Π΅, ΠΊΡ‚ΠΎ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. А всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ, посвящСнныС ΠΊΠ°ΠΊ самому языку Π‘ΠΈ, Ρ‚Π°ΠΊ ΠΈ процСссу Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π° этот счСт достаточно, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΠ± Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ строСнии ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². А Π²ΠΎΡ‚ ΠΊΠ½ΠΈΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎ рассматривали Π±Ρ‹ аспСкты «сопряТСния» языка программирования ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, явно нСдостаточно. Π’ΠΎΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этот ΠΏΡ€ΠΎΠ±Π΅Π» Ρ…ΠΎΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΅ – Π²ΠΎΡ‚ главная Ρ†Π΅Π»ΡŒ ΠΈ Π·Π°Π΄Π°Ρ‡Π° этой ΠΊΠ½ΠΈΠ³ΠΈ.

Π’ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π³Π»Π°Π²Ρ‹ Π΅Π³ΠΎ ΠΊΠ½ΠΈΠ³ΠΈ.

А Π²ΠΎΡ‚ ссылка Π½Π° спСц ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠΎ БИ.
Π—Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹.

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ написано просто ΠΈ понятно ΠΊΠ°ΠΊ для 3Ρ… Π»Π΅Ρ‚Π½ΠΈΡ… Π΄Π΅Ρ‚Π΅ΠΉ. Π’ΠΎΠΎΠ±Ρ‰Π΅ Π΄ΡƒΠΌΠ°ΡŽ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅ эти ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π³Ρ€Ρ‹Π·Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΈΡ…ΠΎΠ½ΡŒΠΊΡƒ. Если Π²Π°ΠΌ Π²Π»ΠΎΠΌ ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ всС ΠΈΠ· сСти, Ρ‚ΠΎ Π²ΠΎΡ‚ ссылка Π½Π° всС вмСстС.

P.S
Π’ΠΎΡ‚ Π΅Ρ‰Π΅ Π½Π°Ρ€Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ справочник ΠΏΠΎ БИ. Π§Ρ‚ΠΎΠ± справочник Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» main.htm

А Π²ΠΎΡ‚ ΠΎΠ½ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ½Π»Π°ΠΉΠ½ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

А Π²ΠΎΡ‚ ΠΊΠ½ΠΈΠ³Π° Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ATMEL Π½Π° языкС Π‘ β€” ΠŸΡ€ΠΎΠΊΠΎΠΏΠ΅Π½ΠΊΠΎ Π’Π°Π΄ΠΈΠΌΒ».

we.easyelectronics.ru

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Π‘ (Π‘ΠΈ) для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны основныС свСдСниС ΠΎ языкС Π‘, структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘, Π΄Π°Π½ΠΎ понятиС ΠΎ функциях, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ коммСнтариях Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка программирования.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ создания языка C (Π‘ΠΈ)

Π―Π·Ρ‹ΠΊ программирования C (Π‘ΠΈ) появился «стихийно» – Π½ΠΈ ΠΎΠ΄Π½Π° компания Π½Π΅ Π·Π°ΠΊΠ°Π·Ρ‹Π²Π°Π»Π° создания ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ языка. Π•Π³ΠΎ пСрвая вСрсия появилась Π½Π° свСт Π² 1972 Π³. Π² Ρ„ΠΈΡ€ΠΌΠ΅ Bell Laboratories, написал Π΅Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ всСмирно извСстный программист ДСннис Π ΠΈΡ‚Ρ‡ΠΈ (Dennis MacAlistair Ritchie).

Π ΠΈΡ‚Ρ‡ΠΈ рассчитывал, Ρ‡Ρ‚ΠΎ созданный ΠΈΠΌ язык программирования Π±ΡƒΠ΄Π΅Ρ‚ вострСбован Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX, которая Ρ‚ΠΎΠ³Π΄Π° Π±Ρ‹Π»Π° Π΅Ρ‰Π΅ Π½ΠΎΠ²ΠΈΠ½ΠΊΠΎΠΉ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык Π ΠΈΡ‚Ρ‡ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ программисты, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ внСс наибольший Π²ΠΊΠ»Π°Π΄ Π² становлСниС этого языка. К Π½ΠΎΠ²ΠΎΠΌΡƒ языку ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π΅ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Π»ΠΎΡΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π½Π΅ ΡΡ‚Π°Π²ΠΈΠ»ΠΎΡΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, фактичСски ΠΎΠ½ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ друТСского сорСвнования ΠΌΠ΅ΠΆΠ΄Ρƒ нСбольшим ΠΊΡ€ΡƒΠ³ΠΎΠΌ программистов.

НазваниС C (Π‘ΠΈ) появилось Ρ‚Π°ΠΊ ΠΆΠ΅ стихийно, ΠΊΠ°ΠΊ ΠΈ сам язык. ЀактичСски, ΠΎΠ½ стал ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ Ρ€Π°Π½Π΅Π΅ созданного языка Π’ (Π‘ΠΈ), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX КСном Вомпсоном. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, язык Π‘ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π±Ρ‹Π» ΠΏΠΎΡ…ΠΎΠΆ Π½Π° языкС BCPL, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² ΠšΠ΅ΠΌΠ±Ρ€ΠΈΠ΄ΠΆΡΠΊΠΎΠΌ унивСрситСтС. А язык BCPL основывался Π½Π° идСях «старого ΠΊΠ°ΠΊ ΠΌΠΈΡ€Β» Алгола-60.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ стандартом языка Π‘ΠΈ стало ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π² 1978 Π³. ΠΊΠ½ΠΈΠ³ΠΈ Π‘Ρ€Π°ΠΉΠ°Π½Π° ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½Π° ΠΈ ДСнниса Π ΠΈΡ‚Ρ‡ΠΈ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«The β€˜C’ Programming LanguageΒ». ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° ΠΈΠ·Π΄Π°Π½Π° Π² БША, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠ·Π΄Π°Π²Π°Π»Π°ΡΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… странах ΠΌΠΈΡ€Π°. Π’ 1989 Π³. язык Π‘ΠΈ Π±Ρ‹Π» стандартизован ANSI (American National Standards Institute – амСриканский Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ институт стандартов) ΠΈ ISO (International Standard Organization β€” мСТдународная организация ΠΏΠΎ стандартизации).

Но врСмя шло ΠΈ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ языка Π‘ΠΈ появилась ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π²ΡˆΠΈΡ…ΡΡ языком. Учитывая всС это, Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп Π² Π½Π°Ρ‡Π°Π»Π΅ 80-Ρ… (Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠΉ всС Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Bell Laboratories) принял Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ возмоТностСй языка Π‘ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π°Π·Π²Π°Π»ΠΈ ΠΊΠ°ΠΊ Β«Π‘ΠΈ с классами». Но Π² дальнСйшСм Π·Π° Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ языка Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ»ΠΎΡΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€” Π‘ΠΈ++. Π­Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Π·Π° Π½ΠΈΠΌ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ настоящСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ языкС C (Π‘ΠΈ)

Π’ настоящиС Π΄Π½ΠΈ C (Π‘ΠΈ) являСтся ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ языком программирования высокого уровня, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Ρ‚Π°ΠΊΠΈΠΌ языкам ΠΊΠ°ΠΊ Pascal ΠΈΠ»ΠΈ Python, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½ΠΈΡ… ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ языку ассСмблСра. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ практичСски для любого извСстного микропроцСссора. НС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ стали ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ – сСйчас ΠΏΠΎ популярности использования (особСнно для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…) язык Π‘ΠΈ ΠΎΠ±ΠΎΠ³Π½Π°Π» Π² Π½ΠΈΡ… Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ Π΄ΠΎ этого язык ассСмблСра. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ самая популярная Π² настоящСС врСмя программная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Atmel Studio (!!!!!!) для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства AVR.

БСйчас ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ язык Π‘ стал своСобразным Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ строится всС соврСмСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – Ρ‡Π΅Π³ΠΎ стоят хотя Π±Ρ‹ Β«Visual CΒ» ΠΈ Β«C SharpΒ». ΠžΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π½Π΅ΠΌ языки программирования сСйчас Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΈΡ€Π΅ программирования. А всС Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ структуры языка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π² 1972 Π³. ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ.

Π€Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .C, Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

#include <avr/io.h> /* Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ */

int main(void) /* главная функция: Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ */

{ /* ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ */

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;
…
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

} /* Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ */

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΎΠ½ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания Π΅Π΅ сути.

НазначСниС основных элСмСнтов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C (Π‘ΠΈ)

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ

Π’ прСдставлСнной Π½Π° рисункС структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ строка #include <avr/io.h> являСтся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ содСрТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для компилятора ΠΎΠ± ΠΎΠ±Ρ‰ΠΈΡ… условиях выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π΅ΠΉ рСсурсах. Π’ рассмотрСнном случаС ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ компилятору Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ ΡƒΡ‡Π΅Π» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ io.h – забСгая Π²ΠΏΠ΅Ρ€Π΅Π΄ скаТСм Ρ‡Ρ‚ΠΎ этот Ρ„Π°ΠΉΠ» содСрТит инструкции для ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Π‘ΠΈΠΌΠ²ΠΎΠ» # ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ прСдставлСнная инструкция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° прСпроцСссором, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ компиляции ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

КакиС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ (ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Ρ‚.Π΄.) слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ опрСдСляСтся потрСбностями ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ скомпилируСтся – компилятор выдаст сообщСниС ΠΎΠ± ошибкС. К слову ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, эти ошибки Π»Π΅Π³ΠΊΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ – вСдь компилятор сам подсказываСт ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

По сути ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° языкС Π‘ прСдставляСт собой Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ для выполнСния Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ…, называСмая Β«mainΒ» («главная»). Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ начинаСтся всСгда с Π½Π΅Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«mainΒ», Π½ΠΎ названия для всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языкС Π‘ Π»Π΅Π³ΠΊΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ – ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌ скобкам послС ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π² скобках содСрТится Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΎ внСшнюю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (которая Π΅Π΅ Π²Ρ‹Π·Π²Π°Π»Π°). Если скобки пустыС, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² прСдставлСнном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ main(), Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…, Π½ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π˜Π΄ΡƒΡ‰Π°Ρ слСдом Π·Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ фигурная скобка { ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ фигурная скобка } ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². На этой скобкС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языкС Π‘ΠΈ прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стоит Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ;. МоТно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° своСй строкС ΠΈΠ»ΠΈ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС – компилятору это Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой (этот символ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°). Но для восприятия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ располагался Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС. ДопускаСтся использованиС ΠΈ пустых строк Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ структурныС элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ записаны. Но структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ – ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ условий Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ пропуски выполнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (условия) ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (Ρ†ΠΈΠΊΠ»Ρ‹).

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” это примСчания, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ языкС Π‘ΠΈ тСкст ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² записываСтся ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ /* */. Π’ΠΎ, Ρ‡Ρ‚ΠΎ написано ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ, компилятору ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π²Π°ΠΆΠ½ΠΎ – ΠΎΠ½ всС это ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½ΠΈΠΆΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ строки с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ). ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько строк ΠΈ для Π½ΠΈΡ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой.

НаличиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм программирования ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ смысл ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€Ρƒ (особСнно ΠΏΠΎ ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π½Π°Π΄ Π½Π΅ΠΉ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»), Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² дальнСйшСм Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ запись Π²Π½ΡƒΡ‚Ρ€ΠΈ коммСнтария:

/* ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ /* управлСния элСктродвигатСлСм */ */

ΠΈΠ»ΠΈ

/* ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ управлСния */ элСктродвигатСлСм */

Π―Π·Ρ‹ΠΊ Π‘ΠΈ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ записи ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² β€” строка, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с символов //. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ

// Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² ΠΎΠ΄Π½Ρƒ строку

Π’ качСствС ΠΈΡ‚ΠΎΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для написания Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ цСлСсообразно ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»:

  • Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° строкС;
  • примСняйтС пустыС строки для «отдСлСния» ΠΎΠ΄Π½ΠΎΠΉ логичСской части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ;
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

microkontroller.ru

Π¦ΠΈΠΊΠ»Ρ‹ Π² языкС C ΠΈ структуры, синтаксис, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π‘Ρ€Π°Π·Ρƒ Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:
— Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Π±ΡƒΠΊΠ²Π°Ρ€ΡŒ ΠΏΠΎ синтаксису языка Π‘ΠΈ

— ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ синтаксису языка Π‘ΠΈ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

Ни ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈΠ»ΠΈ для любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ устройства ΠΈΠ»ΠΈ прилоТСния Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй структурС Ρ†ΠΈΠΊΠ».

Π¦ΠΈΠΊΠ» примСняСтся для осущСствлСния ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ»ΠΈ ΠΆΠ΅ Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий ΠΏΠΎΠΊΠ° сущСствуСт пСрСмСнная, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΠΏΠΎΠΊΠ° пСрСмСнная Π½Π΅ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π¦ΠΈΠΊΠ» For.
Π’ языкС C ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PHP Ρ†ΠΈΠΊΠ»Ρ‹ дСлятся Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

Π‘Π°ΠΌΡ‹ΠΉ простой Ρ†ΠΈΠΊΠ» for:

  1. for(i=A; i<B; i++)

  2. {

  3. ...

  4. дСйствиС ΠΏΡ€ΠΈ участии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "i"

  5. ...

  6. }

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
A — Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ(присвоСно) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ «i»,
B — ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ «i».
Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» ΠΎΡ‚ мСньшСго значСния ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ «i» с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ шагом, ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  1. for(i=A; i<B; i--)

  2. {

  3. ...

  4. дСйствиС ΠΏΡ€ΠΈ участии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "i"

  5. ...

  6. }


И Ρ‚Π°ΠΊ ΠΈΡ‚ΠΎΠ³:
1. Π¦ΠΈΠΊΠ» for ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚Ρ€ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² скобках ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°.
2. ВсС Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² скобках ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.
3. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия, Ссли условиС выполняСтся, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» продвигаСтся Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΠ΅Ρ€Π΅Π΄, Ссли условиС Π½Π΅ выполняСтся Ρ†ΠΈΠΊΠ» останавливаСтся.
4. ИзмСнСниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½ Π² скобках ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.
5. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ значСния принимаСтся ΠΊΠ°ΠΊ истинноС.

Π¦ΠΈΠΊΠ» While.
Π¦ΠΈΠΊΠ» while выполняСтся ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² сущСствуСт ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ достигаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ арифмСтичСского сравнСния ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

  1. #include <io.h>//Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

  2. Β 

  3. int A=1, B=5;//ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ присваиваСм ΠΈΠΌ значСния

  4. Β 

  5. int main(void)//основная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

  6. {

  7. while (A!=B)//логичСскоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ (ΠΏΠΎΠ΄Ρ€. см. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹)

  8. {

  9. ...

  10. дСйствиС

  11. ...

  12. }

  13. }

Π¦ΠΈΠΊΠ» Do While.
Π’ самом Π½Π°Π·Π²Π°Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° понятно, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ события.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»Π° do while:

  1. do

  2. {

  3. PORTD = 0xFF;//Π’Ρ‹Π΄Π°Π΅ΠΌ Π½Π° ΠΏΠΎΡ€Ρ‚ D Π»ΠΎΠ³. 1-Ρ†Ρƒ.

  4. Β 

  5. i=i+1;//ΠŸΡ€ΠΈΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "1" Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ

  6. }

  7. while (i<5)//Π¦ΠΈΠΊΠ» ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ достиТСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "1" значСния "5"

ΠŸΠ°ΠΌΡΡ‚ΠΊΠ°:
1. Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 Ρ€Π°Π·.
2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполнСния условия выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, послС выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.
3. Если условиС Π½Π΅ выполняСтся Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎΠ΅, Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° большС Π½Π΅ выполняСтся.
4. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ послСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ выполнятся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° являСтся число «5».

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ If Else
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° выглядит:

  1. if(условиС)

  2. Β 

  3. ВыполняСм дСйствиС 1

  4. Β 

  5. else

  6. Β 

  7. ВыполняСм дСйствиС 2

Π’Π°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура, которая содСрТит Π² сСбС Π΄ΠΎ «n» ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ сравнСния:

  1. if (условиС 1)

  2. Β 

  3. {дСйствиС 1};

  4. Β 

  5. else if (условиС 2)

  6. Β 

  7. {дСйствиС 2};

  8. Β 

  9. else if (условиС 3)

  10. Β 

  11. {дСйствиС 3};

  12. Β 

  13. .....

  14. Β 

  15. else if (условиС n)

  16. Β 

  17. {дСйствиС n};

ΠŸΠ°ΠΌΡΡ‚ΠΊΠ°:
1. Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ If Else слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всСго ΠΎΠ΄Π½ΠΎ дСйствиС.
2. НСобходимо ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скобки с ΠΎΠ±Π΅ΠΈΡ… сторон условия.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€Π° Switch
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€Π° Switch выполняСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ дСйствия ΠΏΡ€ΠΈ условии выполнСния условия, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ условиСм.
Бинтаксис ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

  1. switch (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅)

  2. Β 

  3. {

  4. Β 

  5. случай выполнСния условия 1

  6. Β 

  7. случай выполнСния условия 2

  8. Β 

  9. }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

  1. switch (i/10)

  2. {

  3. Β 

  4. case 0: PORTD = 0x10; // A

  5. Β 

  6. break;

  7. Β 

  8. case 1: PORTD = 0x20; // B

  9. Β 

  10. break;

  11. Β 

  12. case 2: PORTD = 0x30; // C

  13. Β 

  14. break;

  15. Β 

  16. default: PORTD = 0x40; // D

  17. Β 

  18. break;

  19. }

ΠŸΠ°ΠΌΡΡ‚ΠΊΠ°:
1. ΠŸΡ€ΠΈ использовании конструкции Π²Ρ‹Π±ΠΎΡ€Π° switch Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС значСния.
2. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ послС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ.
3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполнСния условия выполняСтся свСрху-Π²Π½ΠΈΠ·. ΠžΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case 1 Π΄ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case n.
4. БущСствуСт условиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ default, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполняСтся Ссли Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… условий Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

avrlab.com

AVR для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….Π£Ρ€ΠΎΠΊΠΈ программирования AVR.

Π£Ρ€ΠΎΠΊ 0.

Π˜Ρ‚Π°ΠΊ, сСгодня ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» ΡƒΡ€ΠΎΠΊΠΎΠ² программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства AVR.

БСгодня Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

  1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€?
  2. Π“Π΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹?

ВступлСниС.

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²Π΅Π·Π΄Π΅.Β Π’ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, ΡΡ‚ΠΈΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, Β«ΡƒΠΌΠ½Ρ‹Ρ… Π΄ΠΎΠΌΠ°Ρ…Β»,станках Π½Π° Π·Π°Π²ΠΎΠ΄Π΅ Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅Ρ‰Ρ‘ Π² бСсчислСнном мноТСствС тСхничСских устройств. Π˜Ρ… повсСмСстноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволяСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слоТныС Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ схСмы, Π±ΠΎΠ»Π΅Π΅ сТатыми Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€?

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (Micro Controller Unit, MCU)Β β€” микросхСма, прСдназначСнная для управлСния элСктронными устройствами.МоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, способного Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с внСшними устройствами.НапримСр, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ транзисторы, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° lcd экраны ΠΈ Ρ‚. Π΄. . К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΈ Π’Π°Ρˆ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π½Π°ΠΌ практичСски Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ возмоТности управлСния ΠΊΠ°ΠΊΠΈΠΌΠΈ Π»ΠΈΠ±ΠΎ устройствами, благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΏΠΎΡ€Ρ‚ΠΎΠ² I/0(ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°(input)/Π²Ρ‹Π²ΠΎΠ΄Π°(output)), Π° Ρ‚Π°ΠΊ ΠΆΠ΅ возмоТности ΠΈΡ… программирования.

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡΒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹?

  1. Бытовая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°(Π‘Ρ‚ΠΈΡ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΌΠΈΠΊΡ€ΠΎΠ²ΠΎΠ»Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ‡ΠΈ ΠΈ.Ρ‚.Π΄.).
  2. Мобильная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°(Π ΠΎΠ±ΠΎΡ‚Ρ‹, робототСхничСскиС систСмы, срСдства связи и Π΄Ρ€.).
  3. ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅(БистСмы управлСния станками).
  4. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°(ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ‹,систСмы управлСния пСрифСрийными устройствами).
  5. Π Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°(ДСтскиС ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ, ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ).
  6. Вранспорт(БистСмы управлСния Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΌ автомобиля, систСмы бСзопасности)

Π­Ρ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список сфСр примСнСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Часто, ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… микросхСм ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, Π²Π²ΠΈΠ΄Ρƒ упрощСния производства, сниТСния энСргопотрСблСния.

Начало знакомства с AVR

AVR β€” сСмСйство ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Ρ„ΠΈΡ€ΠΌΡ‹ Atmel.ΠžΠ±Π»Π°Π΄Π°ΡŽΡ‚ достаточной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… устройств. Π’Π°ΠΊ ΠΆΠ΅ находят ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΠΈ.

Для ΠΈΡ… программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ языки AVR C ΠΈ AVR Assembler.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ними достаточно просто. БущСствуСт нСсколько способов ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ устройств Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² AVR, ΠΎ Π½ΠΈΡ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части.

Бпасибо за вниманиС!

Администрация сайта MKPROG.RU.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ€ΠΎΠΊΠΈ Ρ†ΠΈΠΊΠ»Π°.

mkprog.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *