ืื™ืš ื•ืœืžื” ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืื ืžื™ืงืจื•-ื‘ืงืจื™ื ื”ื ื”ืชื—ื‘ื™ื‘ ืฉืœืš

ืื™ืš ื•ืœืžื” ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืื ืžื™ืงืจื•-ื‘ืงืจื™ื ื”ื ื”ืชื—ื‘ื™ื‘ ืฉืœืš

ืžื™ืงืจื•ืืœืงื˜ืจื•ื ื™ืงื” ื”ื™ื ืชื—ื‘ื™ื‘ ืื•ืคื ืชื™ ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช ื”ื•ื“ื•ืช ืœืืจื“ื•ืื™ื ื• ื”ืงืกื•ื. ืื‘ืœ ื”ื ื” ื”ื‘ืขื™ื”: ืขื ืžืกืคื™ืง ืขื ื™ื™ืŸ, ืืชื” ื™ื›ื•ืœ ืœืฆืžื•ื— ื‘ืžื”ื™ืจื•ืช DigitalWrite(), ืื‘ืœ ืžื” ืœืขืฉื•ืช ื”ืœืื” ืœื ืœื’ืžืจื™ ื‘ืจื•ืจ. ืžืคืชื—ื™ Arduino ื”ืฉืงื™ืขื• ืžืืžืฆื™ื ืจื‘ื™ื ื‘ื”ื•ืจื“ืช ืžื—ืกื•ื ื”ื›ื ื™ืกื” ืœืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœื”ื, ืืš ืžื—ื•ืฆื” ืœื• ืขื“ื™ื™ืŸ ื™ืฉื ื• ื™ืขืจ ืืคืœ ืฉืœ ืžืขื’ืœื™ื ืงืฉื™ื ืฉืื™ื ื ื ื’ื™ืฉื™ื ืœื—ื•ื‘ื‘ื™ื.

ืœืžืฉืœ, ื’ื™ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื. ื–ื” ื ืจืื” ื›ืื™ืœื• ื™ืฉ ืœื”ื ื”ื›ืœ, ืงื— ืืช ื–ื” ื•ื”ืฉืชืžืฉ ื‘ื•. ืื‘ืœ ื”ืžื—ื‘ืจื™ื ืฉืœื”ื ื‘ื‘ื™ืจื•ืจ ืื™ื ื ืžืฆื™ื‘ื™ื ืœืขืฆืžื ืืช ื”ืžืฉื™ืžื” ืœืคื•ืคื•ืœืจื™ื•ืช ืฉืœ ืžื™ืงืจื•-ื‘ืงืจื™ื; ืœึดืคึฐืขึธืžึดื™ื ื ื“ืžื”ืฉื”ื ืžืฉืชืžืฉื™ื ืœืจืขื” ื‘ื›ื•ื•ื ื” ื‘ืžื•ื ื—ื™ื ื•ื‘ืงื™ืฆื•ืจื™ื ืœื ืžื•ื‘ื ื™ื ื›ืฉื”ื ืžืชืืจื™ื ื“ื‘ืจื™ื ืคืฉื•ื˜ื™ื ืขืœ ืžื ืช ืœื‘ืœื‘ืœ ืืช ื—ืกืจื™ ื”ื™ื“ืข ื›ืžื” ืฉืืคืฉืจ. ืื‘ืœ ืœื ื”ื›ืœ ื›ืœ ื›ืš ื’ืจื•ืข; ืื ืจื•ืฆื™ื, ื”ืืจื•ืŸ ื ืคืชื—.

ื‘ืžืืžืจ ื–ื” ืื—ืœื•ืง ืืช ื”ื ื™ืกื™ื•ืŸ ืฉืœ ืžื•ืžื—ื” ืœืžื“ืขื™ ื”ืจื•ื— ื‘ืชืงืฉื•ืจืช ืขื ื“ืคื™ ื ืชื•ื ื™ื ืœืžื˜ืจื•ืช ืชื—ื‘ื™ื‘ื™ื. ื”ื˜ืงืกื˜ ืžื™ื•ืขื“ ืœื—ื•ื‘ื‘ื™ื ืฉื’ื“ืœื• ืžืžื›ื ืกื™ ืืจื“ื•ืื™ื ื•; ื”ื•ื ืžื ื™ื— ื”ื‘ื ื” ืžืกื•ื™ืžืช ืฉืœ ืขืงืจื•ื ื•ืช ื”ืคืขื•ืœื” ืฉืœ ืžื™ืงืจื•-ื‘ืงืจื™ื.

ืื ื™ ืืชื—ื™ืœ ืขื ื”ืžืกื•ืจืชื™

ืžื”ื‘ื”ื‘ืช ื ื•ืจื™ืช LED ื‘- Arduino

ื•ืžื™ื“ ื”ืงื•ื“:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"ืžื” ื–ื”? โ€“ ื™ืฉืืœ ืงื•ืจื ืžืชื•ื—ื›ื. - ืœืžื” ืืชื” ื›ื•ืชื‘ ืžืฉื”ื• ืœืื•ื’ืจ ื”ืงืœื˜ ืฉืœ PINB? ื–ื” ืœืงืจื™ืื” ื‘ืœื‘ื“!" ื‘ึผึถืึฑืžึถืช, ืชื™ืขื•ื“ ืืจื“ื•ืื™ื ื•, ื›ืžื• ืจื•ื‘ ื”ืžืืžืจื™ื ื”ื—ื™ื ื•ื›ื™ื™ื ื‘ืื™ื ื˜ืจื ื˜, ืžืฆื™ื™ืŸ ืฉื”ืคื ืงืก ื”ื–ื” ื”ื•ื ืœืงืจื™ืื” ื‘ืœื‘ื“. ื—ืฉื‘ืชื™ ื›ืš ื‘ืขืฆืžื™ ืขื“ ืฉืงืจืืชื™ ืืช ื–ื” ืฉื•ื‘ ื˜ื•ืคืก ืžื™ื“ืข ืœ-Atmega328p, ืžื›ื™ืŸ ืžืืžืจ ื–ื”. ื•ื™ืฉ:

ืื™ืš ื•ืœืžื” ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืื ืžื™ืงืจื•-ื‘ืงืจื™ื ื”ื ื”ืชื—ื‘ื™ื‘ ืฉืœืš

ื–ื•ื”ื™ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื—ื“ืฉื” ื™ื—ืกื™ืช, ื”ื™ื ืœื ื”ื™ื™ืชื” ื‘-Atmega8, ืœื ื›ื•ืœื ื™ื•ื“ืขื™ื ืขืœื™ื” ืื• ืœื ืžื•ื–ื›ืจืช ืžืกื™ื‘ื•ืช ืฉืœ ืชืื™ืžื•ืช ืœืื—ื•ืจ. ืื‘ืœ ื–ื” ื“ื™ ืžืชืื™ื ืœื”ื“ื’ืžืช ื”ืจืขื™ื•ืŸ ืฉื“ืคื™ ื ืชื•ื ื™ื ืฉื•ื•ื™ื ืงืจื™ืื” ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื”ื™ื›ื•ืœื•ืช ืฉืœ ื”ืฉื‘ื‘, ื›ื•ืœืœ ืืœื• ืฉืœื ื™ื“ื•ืขื•ืช. ื•ื–ื• ืœื ื”ืกื™ื‘ื” ื”ื™ื—ื™ื“ื”.

ืœืžื” ืขื•ื“ ืœืงืจื•ื ื“ืคื™ ื ืชื•ื ื™ื?

ื‘ื“ืจืš ื›ืœืœ, ืžื”ื ื“ืกื™ Arduino, ืœืื—ืจ ืฉืฉื™ื—ืงื• ืžืกืคื™ืง ืขื ื ื•ืจื™ื•ืช ื•- AnalogWrites, ืžืชื—ื™ืœื™ื ืœื—ื‘ืจ ื›ืœ ืžื™ื ื™ ืžื•ื“ื•ืœื™ื ื•ืฉื‘ื‘ื™ื ืœืœื•ื—, ืฉืขื‘ื•ืจื ื›ื‘ืจ ื™ืฉ ืกืคืจื™ื•ืช ื›ืชื•ื‘ื•ืช. ื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ, ืžื•ืคื™ืขื” ืกืคืจื™ื™ื” ืฉืื™ื ื” ืคื•ืขืœืช ื›ืžื• ืฉืฆืจื™ืš. ื•ืื– ื”ื—ื•ื‘ื‘ ืžืชื—ื™ืœ ืœื”ืจื™ื ืืช ื–ื” ื›ื“ื™ ืœืชืงืŸ ืืช ื–ื”, ื•ืื–...

ื•ืžืฉื”ื• ืœื’ืžืจื™ ืœื ืžื•ื‘ืŸ ืงื•ืจื” ืฉื, ืื– ืืชื” ืฆืจื™ืš ืœืœื›ืช ืœื’ื•ื’ืœ, ืœืงืจื•ื ืžื“ืจื™ื›ื™ื ืจื‘ื™ื, ืœืฉืœื•ืฃ ื—ืœืงื™ื ืžื”ืงื•ื“ ื”ืžืชืื™ื ืฉืœ ืžื™ืฉื”ื• ื•ืœื‘ืกื•ืฃ ืœื”ืฉื™ื’ ืืช ื”ืžื˜ืจื” ืฉืœืš. ื–ื” ื ื•ืชืŸ ืชื—ื•ืฉื” ื—ื–ืงื” ืฉืœ ื”ื™ืฉื’, ืื‘ืœ ื‘ืžืฆื™ืื•ืช ื”ืชื”ืœื™ืš ื”ื•ื ื›ืžื• ื”ืžืฆืื” ืžื—ื“ืฉ ืฉืœ ื”ื’ืœื’ืœ ืขืœ โ€‹โ€‹ื™ื“ื™ ื”ื ื“ืกื” ืœืื—ื•ืจ ืฉืœ ืื•ืคื ื•ืข. ื™ืชืจื” ืžื›ืš, ื”ื”ื‘ื ื” ื›ื™ืฆื“ ื”ืื•ืคื ื™ื™ื ื”ืœืœื• ืคื•ืขืœื™ื ืื™ื ื” ืขื•ืœื”. ืื ื™ ื™ื•ื“ืข, ื›ื™ ืขืฉื™ืชื™ ืืช ื–ื” ื‘ืขืฆืžื™ ื“ื™ ื”ืจื‘ื” ื–ืžืŸ.

ืื ื‘ืžืงื•ื ื”ืคืขื™ืœื•ืช ื”ืžืจื’ืฉืช ื”ื–ื• ื”ื™ื™ืชื™ ืžื‘ืœื” ื›ืžื” ื™ืžื™ื ื‘ืœื™ืžื•ื“ ื”ืชื™ืขื•ื“ ืฉืœ Atmega328, ื”ื™ื™ืชื™ ื—ื•ืกืš ื›ืžื•ืช ืขืฆื•ืžื” ืฉืœ ื–ืžืŸ. ืื—ืจื™ ื”ื›ืœ, ืžื“ื•ื‘ืจ ื‘ืžื™ืงืจื•-ื‘ืงืจ ื“ื™ ืคืฉื•ื˜.

ืœืคื™ื›ืš, ืขืœื™ืš ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืœืคื—ื•ืช ื›ื“ื™ ืœื“ืžื™ื™ืŸ ื›ื™ืฆื“ ื”ืžื™ืงืจื•-ื‘ืงืจ ืขื•ื‘ื“ ื‘ื“ืจืš ื›ืœืœ ื•ืžื” ื”ื•ื ื™ื›ื•ืœ ืœืขืฉื•ืช. ื•ื‘ื”ืžืฉืš:

  • ื›ื“ื™ ืœื‘ื“ื•ืง ื•ืœื™ื™ืขืœ ืกืคืจื™ื•ืช ืฉืœ ืื ืฉื™ื ืื—ืจื™ื. ื”ื ื ื›ืชื‘ื™ื ืœืจื•ื‘ ืขืœ ื™ื“ื™ ืื•ืชื ื—ื•ื‘ื‘ื™ื ืฉืžืžืฆื™ืื™ื ืžื—ื“ืฉ ืืช ื”ื’ืœื’ืœ; ืื• ืœื”ื™ืคืš, ื”ืžื—ื‘ืจื™ื ื”ื•ืคื›ื™ื ืื•ืชื ื‘ื›ื•ื•ื ื” ืœื—ืกื™ื ื™ื ื™ืชืจ ืขืœ ื”ืžื™ื“ื”. ืชืŸ ืœื–ื” ืœื”ื™ื•ืช ื’ื“ื•ืœ ืคื™ ืฉืœื•ืฉื” ื•ืื™ื˜ื™ ื™ื•ืชืจ, ืื‘ืœ ื–ื” ื‘ื”ื—ืœื˜ ื™ืขื‘ื•ื“;

  • ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื”ืฉืชืžืฉ ื‘ืฉื‘ื‘ื™ื ื‘ืคืจื•ื™ืงื˜ ืฉืื™ืฉ ืœื ื›ืชื‘ ืœื• ืกืคืจื™ื™ื”;

  • ื›ื“ื™ ืœื”ืงืœ ืขืœ ืขืฆืžืš ืืช ื”ืžืขื‘ืจ ืžืงื• ื—"ื› ืื—ื“ ืœืžืฉื ื”ื•;

  • ื›ื“ื™ ืœื™ื™ืขืœ ืกื•ืฃ ืกื•ืฃ ืืช ื”ืงื•ื“ ื”ื™ืฉืŸ ืฉืœืš, ืฉืœื ื”ืชืื™ื ืœืืจื“ื•ืื™ื ื•;

  • ืœืœืžื•ื“ ื›ื™ืฆื“ ืœืฉืœื•ื˜ ื‘ื›ืœ ืฉื‘ื‘ ื™ืฉื™ืจื•ืช ื“ืจืš ื”ืื•ื’ืจื™ื ืฉืœื•, ืžื‘ืœื™ ืœื”ืชืขืกืง ื‘ืœื™ืžื•ื“ ืžื‘ื ื” ื”ืกืคืจื™ื•ืช ืฉืœื•, ืื ื‘ื›ืœืœ.

ืœืžื” ืœื›ืชื•ื‘ ืœืจื•ืฉืžื™ื ื™ืฉื™ืจื•ืช ื›ืฉื™ืฉ HAL ื•-LL?

ืžื™ืœื•ืŸ
HAL, ืฉื›ื‘ืช ื”ืคืฉื˜ื” ื’ื‘ื•ื”ื” โ€“ ืกืคืจื™ื” ืœืฉืœื™ื˜ื” ื‘ืžื™ืงืจื•-ื‘ืงืจ ื‘ืจืžืช ื”ืคืฉื˜ื” ื’ื‘ื•ื”ื”. ืื ืืชื” ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ืžืžืฉืง SPI1, ืืชื” ืคืฉื•ื˜ ืžื’ื“ื™ืจ ื•ืžืคืขื™ืœ ืืช SPI1 ืžื‘ืœื™ ืœื—ืฉื•ื‘ ืื™ืœื• ืจื’ื™ืกื˜ืจื™ื ืื—ืจืื™ื ืœืžื”.
LL, API ื‘ืจืžื” ื ืžื•ื›ื” - ืกืคืจื™ื™ื” ื”ืžื›ื™ืœื” ืคืงื•ื“ื•ืช ืžืืงืจื• ืื• ืžื‘ื ื™ื ืขื ื›ืชื•ื‘ื•ืช ืจื™ืฉื•ื, ื”ืžืืคืฉืจืช ืœืš ืœื’ืฉืช ืืœื™ื”ื ืœืคื™ ืฉื. DDRx, PORTx, PINx ื‘-Atmega ื”ื LL.

ืžื—ืœื•ืงื•ืช ื‘ื ื•ืฉื "HAL, LL ืื• ืจื™ืฉื•ื" ืžืชืจื—ืฉื•ืช ื‘ืื•ืคืŸ ืงื‘ื•ืข ื‘ืชื’ื•ื‘ื•ืช ืขืœ Habrรฉ. ืžื‘ืœื™ ืœื˜ืขื•ืŸ ืœื’ื™ืฉื” ืœื™ื“ืข ืืกื˜ืจืœื™, ืื ื™ ืคืฉื•ื˜ ืืฉืชืฃ ื‘ื—ื•ื•ื™ื” ื•ื‘ืžื—ืฉื‘ื•ืช ื”ื—ื•ื‘ื‘ื ื•ืช ืฉืœื™.

ืœืื—ืจ ืฉื”ื‘ื ืชื™ ืคื—ื•ืช ืื• ื™ื•ืชืจ ืืช Atmega ื•ืื—ืจื™ ืฉืงืจืืชื™ ืžืืžืจื™ื ืขืœ ื”ืžื•ืคืœืื•ืช ืฉืœ STM32, ืงื ื™ืชื™ ื—ืฆื™ ืชืจื™ืกืจ ืœื•ื—ื•ืช ืฉื•ื ื™ื - ื“ื™ืกืงื‘ืจื™, ื•-Blue Pills, ื•ืืคื™ืœื• ืกืชื ืฆ'ื™ืคืก ืœืžื•ืฆืจื™ื ื”ื‘ื™ืชื™ื™ื ืฉืœื™. ื›ื•ืœื ืืกืคื• ืื‘ืง ื‘ืงื•ืคืกื” ื‘ืžืฉืš ืฉื ืชื™ื™ื. ืœืคืขืžื™ื ืืžืจืชื™ ืœืขืฆืžื™: "ื–ื”ื•, ื”ื—ืœ ืžืกื•ืฃ ื”ืฉื‘ื•ืข ื”ื–ื” ืื ื™ ืฉื•ืœื˜ ื‘-STM", ื”ืฉื™ืง ืืช CubeMX, ื™ืฆืจืชื™ ื”ื’ื“ืจื” ืœ-SPI, ื”ืกืชื›ืœืชื™ ืขืœ ืงื™ืจ ื”ื˜ืงืกื˜ ืฉื ื•ืฆืจ, ื‘ื˜ืขื ื ื“ื™ื‘ ื‘ื–ื›ื•ื™ื•ืช ื™ื•ืฆืจื™ื ืฉืœ STM, ื•ื”ื—ืœื˜ืชื™ ืฉื–ื” ื’ื ืื™ื›ืฉื”ื• ื”ึทืจื‘ึผึตื”.

ืื™ืš ื•ืœืžื” ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืื ืžื™ืงืจื•-ื‘ืงืจื™ื ื”ื ื”ืชื—ื‘ื™ื‘ ืฉืœืš

ื›ืžื•ื‘ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ื‘ื™ืŸ ืžื” CubeMX ื›ืชื‘ ื›ืืŸ. ืื‘ืœ ื™ื—ื“ ืขื ื–ืืช ื‘ืจื•ืจ ืฉืœื–ื›ื•ืจ ืืช ื›ืœ ื”ื ื™ืกื•ื—ื™ื ื•ืœืื—ืจ ืžื›ืŸ ืœื›ืชื•ื‘ ืื•ืชื ื‘ื™ื“ ื–ื” ืœื ืจื™ืืœื™. ื•ื›ื“ื™ ืœื ืคื•ืช ืืช ื–ื”, ืื ื‘ื˜ืขื•ืช ืืฉื›ื— ืœืกืžืŸ ืชื™ื‘ื” ื‘ืงื•ื‘ื™ื™ื”, ื–ื” ื‘ืกื“ืจ ื’ืžื•ืจ.

ืขื‘ืจื• ืฉื ืชื™ื™ื, ืื ื™ ืขื“ื™ื™ืŸ ืžืœืงืง ืืช ื”ืฉืคืชื™ื™ื ST MCU Finder ืœื›ืœ ืžื™ื ื™ ื˜ืขื™ืžื™ื, ืื‘ืœ ืžืขื‘ืจ ืœื”ื‘ื ืชื™, ืฆ'ื™ืคืก, ื•ื‘ื˜ืขื•ืช ื ืชืงืœ ืžืืžืจ ื ืคืœื, ืื ื›ื™ ืœื’ื‘ื™ STM8. ื• ืคึผึดืชึฐืื•ึนื ื”ื‘ื ืชื™ ืฉื›ืœ ื”ื–ืžืŸ ื”ื–ื” ื“ืคืงืชื™ ืขืœ ื“ืœืช ืคืชื•ื—ื”: ื”ืจื’ื™ืกื˜ืจื™ื ืฉืœ ื”-STM ืžืกื•ื“ืจื™ื ื›ืžื• ืฉืœ ื›ืœ ื—ื‘ืจ ื›ื ืกืช ืื—ืจ, ื•ืื™ืŸ ืฆื•ืจืš ื‘ืงื•ื‘ื™ื™ื” ืœืขื‘ื•ื“ ืื™ืชื. ื”ืื ื–ื” ื‘ื›ืœืœ ื”ื™ื” ืืคืฉืจื™?..

HAL ื•ื‘ืžื™ื•ื—ื“ STM32CubeMX ื”ื•ื ื›ืœื™ ืœืžื”ื ื“ืกื™ื ืžืงืฆื•ืขื™ื™ื ืฉืขื•ื‘ื“ื™ื ื‘ืฆืžื•ื“ ืขื ืฉื‘ื‘ื™ STM32. ื”ืชื›ื•ื ื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืจืžืช ื”ืคืฉื˜ื” ื’ื‘ื•ื”ื”, ื”ื™ื›ื•ืœืช ืœืขื‘ื•ืจ ื‘ืžื”ื™ืจื•ืช ืž-MCU ืื—ื“ ืœืื—ืจ ื•ืืคื™ืœื• ืžืœื™ื‘ื” ืื—ืช ืœืื—ืจืช, ืชื•ืš ื”ื™ืฉืืจื•ืช ื‘ืชื•ืš ืงื• STM32. ืชื—ื‘ื™ื‘ื™ื ื›ืžืขื˜ ื•ืœื ื ืชืงืœื™ื ื‘ื‘ืขื™ื•ืช ื›ืืœื” - ื”ื‘ื—ื™ืจื” ืฉืœื ื• ื‘ืžื™ืงืจื•-ื‘ืงืจื™ื, ื›ื›ืœืœ, ืžื•ื’ื‘ืœืช ืœืžื‘ื—ืจ AliExpress, ื•ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืื ื• ื ื•ื“ื“ื™ื ื‘ื™ืŸ ืฉื‘ื‘ื™ื ืฉื•ื ื™ื ื‘ืชื›ืœื™ืช - ืื ื• ืขื•ื‘ืจื™ื ืž-Atmega ืœ-STM, ืž-STM ืœ-ESP, ืื• ื›ืœ ื“ื‘ืจ ื—ื“ืฉ, ื”ื—ื‘ืจื™ื ื”ืกื™ื ื™ื ืฉืœื ื•. ืœื–ืจื•ืง ืขืœื™ื ื•. HAL ืœื ื™ืขื–ื•ืจ ื›ืืŸ, ื•ืœื™ืžื•ื“ ื–ื” ื™ืื›ืœ ื”ืจื‘ื” ื–ืžืŸ.

LL ื ืฉืืจ - ืื‘ืœ ืžืžื ื• ืœืจื’ื™ืกื˜ืจื™ื ื™ืฉ ื—ืฆื™ ืžื“ืจื’ื”. ื‘ืื•ืคืŸ ืื™ืฉื™, ืื ื™ ืžื•ืฆื ืฉื™ืžื•ืฉื™ ื‘ื›ืชื™ื‘ืช ืคืงื•ื“ื•ืช ื”ืžืืงืจื• ืฉืœื™ ืขื ื›ืชื•ื‘ื•ืช ืจื™ืฉื•ื: ืื ื™ ืœื•ืžื“ ืืช ื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ื‘ื–ื”ื™ืจื•ืช ืจื‘ื” ื™ื•ืชืจ, ืื ื™ ื—ื•ืฉื‘ ืžื” ืืฆื˜ืจืš ื‘ืขืชื™ื“ ื•ืžื” ื‘ื”ื—ืœื˜ ืœื, ืื ื™ ื‘ื•ื ื” ืืช ื”ืชื•ื›ื ื™ื•ืช ืฉืœื™ ื˜ื•ื‘ ื™ื•ืชืจ, ื•ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืชื’ื‘ืจื•ืช ืขื•ื–ืจืช ืœืฉื ืŸ .

ื‘ื ื•ืกืฃ, ื™ืฉ ื ื™ื•ืื ืก ืขื STM32F103 ื”ืคื•ืคื•ืœืจื™ - ื™ืฉ ืฉืชื™ ื’ืจืกืื•ืช LL ืœื ืชื•ืืžื•ืช ืขื‘ื•ืจื•, ืื—ืช ืจืฉืžื™ืช ืž-STM, ื”ืฉื ื™ื™ื” ืž-Leaf Labs, ื‘ืฉื™ืžื•ืฉ ื‘ืคืจื•ื™ืงื˜ STM32duino. ืื ืืชื” ื›ื•ืชื‘ ืกืคืจื™ื™ืช ืงื•ื“ ืคืชื•ื— (ื•ื”ื™ื” ืœื™ ื‘ื“ื™ื•ืง ืžืฉื™ืžื” ื›ื–ื•), ืขืœื™ืš ืœื™ืฆื•ืจ ืฉืชื™ ื’ืจืกืื•ืช, ืื• ืœื’ืฉืช ื™ืฉื™ืจื•ืช ืœืจื™ืฉื•ืžื™ื.

ืœื‘ืกื•ืฃ, ื‘ื™ื˜ื•ืœ LL, ืœื“ืขืชื™, ืžืคืฉื˜ ืืช ื”ื”ื’ื™ืจื”, ื‘ืžื™ื•ื—ื“ ืื ืืชื” ืžืชื›ื ืŸ ืืช ื–ื” ื›ื‘ืจ ืžืชื—ื™ืœืช ื”ืคืจื•ื™ืงื˜. ื“ื•ื’ืžื” ืžื•ื’ื–ืžืช: ื‘ื•ื ื ื›ืชื•ื‘ Arduino blink ื‘-Atmel Studio ืœืœื LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

ื›ื“ื™ ืฉืงื•ื“ ื–ื” ื™ื”ื‘ื”ื‘ ืขื ื”-LED ื‘ืœื•ื— ืกื™ื ื™ ืขื STM8 (ืž-ST Visual Desktop), ืžืกืคื™ืง ืœืฉื ื•ืช ื‘ื• ืฉืชื™ ื›ืชื•ื‘ื•ืช:

#define DDR_B 0x5007
#define OUT_B 0x5005

ื›ืŸ, ืื ื™ ืžืฉืชืžืฉ ื‘ืชื›ื•ื ื” ืฉืœ ื—ื™ื‘ื•ืจ ื”-LED ื‘ืœื•ื— ืกืคืฆื™ืคื™, ื”ื•ื ื™ื”ื‘ื”ื‘ ืœืื˜ ืžืื•ื“, ืื‘ืœ ื–ื” ื™ืงืจื”!

ืื™ืœื• ืกื•ื’ื™ ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืงื™ื™ืžื™ื?

ื‘ืžืืžืจื™ื ื•ื‘ืคื•ืจื•ืžื™ื, ื”ืŸ ื‘ืจื•ืกื™ืช ื•ื”ืŸ ื‘ืื ื’ืœื™ืช, "ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื" ืžืชื›ื•ื•ื ื™ื ืœื›ืœ ืชื™ืขื•ื“ ื˜ื›ื ื™ ืขื‘ื•ืจ ืฉื‘ื‘ื™ื, ื•ืื ื™ ืขื•ืฉื” ืืช ืื•ืชื• ื”ื“ื‘ืจ ื‘ื˜ืงืกื˜ ื”ื–ื”. ืจืฉืžื™ืช, ื”ื ืจืง ืกื•ื’ ืื—ื“ ืฉืœ ืชื™ืขื•ื“ ื›ื–ื”:

ื’ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื โ€“ ืžืืคื™ื™ื ื™ ื‘ื™ืฆื•ืข, ืžืืคื™ื™ื ื™ื ื˜ืงื˜ื™ื™ื ื•ื˜ื›ื ื™ื™ื. ื—ื•ื‘ื” ืœื›ืœ ืจื›ื™ื‘ ืืœืงื˜ืจื•ื ื™. ืžื™ื“ืข ืจืงืข ืžื•ืขื™ืœ ืœืฉืžื•ืจ ื‘ื”ื™ืฉื’ ื™ื“, ืื‘ืœ ืื™ืŸ ื”ืจื‘ื” ืžื” ืœืงืจื•ื ื‘ื• ืžืชื•ืš ืžื—ืฉื‘ื”. ืขื ื–ืืช, ืฉื‘ื‘ื™ื ืคืฉื•ื˜ื™ื ื™ื•ืชืจ ืžื•ื’ื‘ืœื™ื ืœืจื•ื‘ ืœื’ื™ืœื™ื•ืŸ ื ืชื•ื ื™ื ื›ื“ื™ ืœื ืœื™ื™ืฆืจ ืžืกืžื›ื™ื ืžื™ื•ืชืจื™ื; ื‘ืžืงืจื” ื”ื–ื” ืžื“ืจื™ืš ืขื–ืจ ื ื›ืœืœ ื›ืืŸ.

ืžื“ืจื™ืš ืขื–ืจ โ€“ ื”ื”ื•ืจืื•ืช ืขืฆืžืŸ, ืกืคืจ ื‘ืจื™ื ืฉืœ 1000+ ืขืžื•ื“ื™ื. ื”ืขื‘ื•ื“ื” ืฉืœ ื›ืœ ืžื” ืฉื ื“ื—ืก ืœืฉื‘ื‘ ืžืชื•ืืจืช ื‘ืคื™ืจื•ื˜. ื”ืžืกืžืš ื”ืจืืฉื™ ืœืฉืœื™ื˜ื” ื‘ืžื™ืงืจื•-ื‘ืงืจ. ื‘ื ื™ื’ื•ื“ ื˜ื•ืคืก ืžื™ื“ืข, ื”ื•ืจืื•ืช ื ื›ืชื‘ื•ืช ืขื‘ื•ืจ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื—ื‘ืจื™ ื›ื ืกืช; ื”ืŸ ืžื›ื™ืœื•ืช ืžื™ื“ืข ืจื‘ ืขืœ ืฆื™ื•ื“ ื”ื™ืงืคื™ ืฉืื™ื ื• ื–ืžื™ืŸ ื‘ื“ื’ื ื”ืกืคืฆื™ืคื™ ืฉืœืš.

ืžื“ืจื™ืš ืชื›ื ื•ืช ืื• ืžื“ืจื™ืš ืขืจื›ืช ื”ื•ืจืื•ืช โ€“ ื”ื•ืจืื•ืช ืœืคืงื•ื“ื•ืช ืžื™ืงืจื•-ื‘ืงืจ ื™ื™ื—ื•ื“ื™ื•ืช. ืžื™ื•ืขื“ ืœืžื™ ืฉืžืชื›ื ืช ื‘ืฉืคืช Assembly. ืžื—ื‘ืจื™ ื”ืžื”ื“ืจื™ื ืžืฉืชืžืฉื™ื ื‘ื• ื‘ืื•ืคืŸ ืคืขื™ืœ ื›ื“ื™ ืœื™ื™ืขืœ ืืช ื”ืงื•ื“, ื›ืš ืฉื‘ืžืงืจื” ื”ื›ืœืœื™ ืœื ื ืฆื˜ืจืš ืื•ืชื•. ืื‘ืœ ื”ื”ืกืชื›ืœื•ืช ื›ืืŸ ืฉื™ืžื•ืฉื™ืช ืœื”ื‘ื ื” ื›ืœืœื™ืช, ืœื›ืžื” ืคืงื•ื“ื•ืช ืกืคืฆื™ืคื™ื•ืช ื›ืžื• ื™ืฆื™ืื” ืžืคืกื™ืงื”, ื›ืžื• ื’ื ืœืฉื™ืžื•ืฉ ืืงื˜ื™ื‘ื™ ื‘ืžืืชืจ ื”ื‘ืื’ื™ื.

ื”ืขืจืช ื™ื™ืฉื•ื - ืขืฆื•ืช ืฉื™ืžื•ืฉื™ื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืกืคืฆื™ืคื™ื•ืช, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขื ื“ื•ื’ืžืื•ืช ืงื•ื“.

ื’ื™ืœื™ื•ืŸ Errata - ืชื™ืื•ืจ ืžืงืจื™ื ืฉืœ ื”ืชื ื”ื’ื•ืช ืœื ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ ืฉื‘ื‘ื™ื ืขื ืืคืฉืจื•ื™ื•ืช ืขื•ืงืฃ, ืื ื™ืฉ ื›ืืœื”.

ืžื” ื›ืชื•ื‘ ื‘ื“ืคื™ ื”ื ืชื•ื ื™ื

ื™ืฉื™ืจื•ืช ืœ ื’ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ื™ื™ืชื›ืŸ ืฉื ืฆื˜ืจืš ืืช ื”ืกืขื™ืคื™ื ื”ื‘ืื™ื:

ืกื™ื›ื•ื ืžื›ืฉื™ืจื™ื โ€“ ื”ืขืžื•ื“ ื”ืจืืฉื•ืŸ ืฉืœ ื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ืžืชืืจ ื‘ืงืฆืจื” ืืช ื”ืžื›ืฉื™ืจ. ืฉื™ืžื•ืฉื™ ืžืื•ื“ ื‘ืžืฆื‘ื™ื ืฉืžืฆืืชื ืฉื‘ื‘ ืื™ืคืฉื”ื• (ืจืื™ืชื ืื•ืชื• ื‘ื—ื ื•ืช, ื”ืœื—ืžืชื, ื ืชืงืœืชื ื‘ืื–ื›ื•ืจ) ื•ืจื•ืฆื™ื ืœื”ื‘ื™ืŸ ืžื” ื–ื”.

ืชื™ืื•ืจ ื›ืœืœื™ โ€“ ืชื™ืื•ืจ ืžืคื•ืจื˜ ื™ื•ืชืจ ืฉืœ ื™ื›ื•ืœื•ืช ื”ืฉื‘ื‘ื™ื ืžื”ืงื•.

ืคื™ืŸ - ื“ื™ืื’ืจืžื•ืช ืคื™ื -ืืื•ื˜ ืขื‘ื•ืจ ื›ืœ ื—ื‘ื™ืœื•ืช ื”ืฉื‘ื‘ื™ื ื”ืืคืฉืจื™ื•ืช (ืื™ื–ื” ืกื™ื›ื” ืขืœ ืื™ื–ื• ืจื’ืœ).

ืชื™ืื•ืจ ืกื™ื›ื” โ€“ ืชื™ืื•ืจ ื”ืžื˜ืจื” ื•ื”ื™ื›ื•ืœื•ืช ืฉืœ ื›ืœ ืกื™ื›ื”.

ืžืคืช ื–ื™ื›ืจื•ืŸ - ืœื ืกื‘ื™ืจ ืฉื ื–ื“ืงืง ืœืžืคืช ื›ืชื•ื‘ื•ืช ื‘ื–ื™ื›ืจื•ืŸ, ืื‘ืœ ืœืคืขืžื™ื ื”ื™ื ื›ื•ืœืœืช ื’ื ื˜ื‘ืœื” ืฉืœ ื›ืชื•ื‘ื•ืช ื‘ืœื•ืง ืจื™ืฉื•ื.

ื”ืจืฉืžื” ืžืคื” - ื˜ื‘ืœืช ื”ื›ืชื•ื‘ื•ืช ืฉืœ ื‘ืœื•ืงื™ ืจื™ืฉื•ื, ื›ื›ืœืœ, ืžืžื•ืงืžืช ื‘ื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื, ื•ื‘ืชื•ืš Ref Manual - ืจืง ืžืฉืžืจื•ืช (ืงื™ื–ื•ื– ื›ืชื•ื‘ืช).

ืžืืคื™ื™ื ื™ื ื—ืฉืžืœื™ื™ื - ื‘ื—ืœืง ื–ื” ืื ื• ืžืชืขื ื™ื™ื ื™ื ื‘ืขื™ืงืจ ื“ื™ืจื•ื’ ืžืจื‘ื™ ืžื•ื—ืœื˜, ืžืคืจื˜ ืืช ื”ืขื•ืžืกื™ื ื”ืžืงืกื™ืžืœื™ื™ื ืœื›ืœ ืฉื‘ื‘. ื‘ื ื™ื’ื•ื“ ืœ-Atmega328p ื”ื‘ืœืชื™ ื ื™ืชืŸ ืœื”ืจื™ืกื”, ืจื•ื‘ ื—ื‘ืจื™ ื”ื›ื ืกืช ืœื ืžืืคืฉืจื™ื ืœื—ื‘ืจ ืขื•ืžืกื™ื ืจืฆื™ื ื™ื™ื ืœืคื™ื ื™ื, ืžื” ืฉื”ื•ืคืš ืœื”ืคืชืขื” ืœื ื ืขื™ืžื” ืขื‘ื•ืจ ื”ืืจื“ื•ืื™ื ื™ื.

ืžื™ื“ืข ืขืœ ื—ื‘ื™ืœื” - ืฉืจื˜ื•ื˜ื™ื ืฉืœ ืžืงืจื™ื ื–ืžื™ื ื™ื, ืฉื™ืžื•ืฉื™ื™ื ื‘ืขืช ืขื™ืฆื•ื‘ ื”ืœื•ื—ื•ืช ืฉืœืš.

ืžื“ืจื™ืš ืขื–ืจ ืžื•ืจื›ื‘ืช ืžื‘ื—ื™ื ื” ืžื‘ื ื™ืช ืžืงื˜ืขื™ื ื”ืžื•ืงื“ืฉื™ื ืœืฆื™ื•ื“ ื”ื™ืงืคื™ ืกืคืฆื™ืคื™ ื”ืžืฆื•ื™ืŸ ื‘ื›ื•ืชืจืชื. ื ื™ืชืŸ ืœื—ืœืง ื›ืœ ืคืจืง ืœืฉืœื•ืฉื” ื—ืœืงื™ื:

ืกืงื™ืจื” ื›ืœืœื™ืช, ืžื‘ื•ื, ืชื›ื•ื ื•ืช - ืกืงื™ืจื” ืฉืœ ื™ื›ื•ืœื•ืช ื”ื™ืงืคื™ื•ืช;

ืชื™ืื•ืจ ืคื•ื ืงืฆื™ื•ื ืœื™, ืžื“ืจื™ืš ืฉื™ืžื•ืฉ ืื• ืคืฉื•ื˜ ื”ื’ื•ืฉ ื”ืจืืฉื™ ืฉืœ ื”ืกืขื™ืฃ - ืชื™ืื•ืจ ื˜ืงืกื˜ ืžืคื•ืจื˜ ืฉืœ ืขืงืจื•ื ื•ืช ื”ืžื›ืฉื™ืจ ื”ื”ื™ืงืคื™ ื•ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื•;

ืจื•ืฉื โ€“ ืชื™ืื•ืจ ืื•ื’ืจื™ ื‘ืงืจื”. ื‘ืžืงืจื™ื ืคืฉื•ื˜ื™ื ื›ืžื• GPIO ืื• SPI, ื–ื” ืขืฉื•ื™ ืœื”ื™ื•ืช ืžืกืคื™ืง ื›ื“ื™ ืœื”ืชื—ื™ืœ ืœื”ืฉืชืžืฉ ื‘ืฆื™ื•ื“ ื”ื”ื™ืงืคื™, ืืš ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœืงืจื•ื ืืช ื”ื—ืœืงื™ื ื”ืงื•ื“ืžื™ื.

ื›ื™ืฆื“ ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื

ื“ืคื™ ืžื™ื“ืข, ืžืชื•ืš ื”ืจื’ืœ, ืžืคื—ื™ื“ื™ื ืื•ืชืš ื‘ื ืคื— ื•ื‘ืฉืคืข ืฉืœ ืžื™ืœื™ื ื‘ืœืชื™ ืžื•ื‘ื ื•ืช. ืœืžืขืฉื”, ื”ื›ืœ ืœื ื›ืœ ื›ืš ืžืคื—ื™ื“ ืื ืืชื” ืžื›ื™ืจ ื›ืžื” ืคืจื™ืฆื•ืช ืœื—ื™ื™ื.

ืœื”ืชืงื™ืŸ ืงื•ืจื PDF ื˜ื•ื‘. ื“ืคื™ ื ืชื•ื ื™ื ื›ืชื•ื‘ื™ื ื‘ืžืกื•ืจืช ื”ืžืคื•ืืจืช ืฉืœ ื”ื•ืจืื•ืช ื ื™ื™ืจ; ื”ื ื ื”ื“ืจื™ื ืœื”ื“ืคืกื”, ืœื”ื•ืกืคื” ืขื ืกื™ืžื ื™ื•ืช ืคืœืกื˜ื™ืง ื•ืœืชืคื•ืจ. ื”ื™ืคืจื˜ืงืกื˜ ื‘ื”ื ื ืฆืคื” ื‘ื›ืžื•ื™ื•ืช ืขืงื‘ื•ืช. ืœืžืจื‘ื” ื”ืžื–ืœ, ืœืคื—ื•ืช ืžื‘ื ื” ื”ืžืกืžืš ืžืขื•ืฆื‘ ืขื ืกื™ืžื ื™ื•ืช, ื•ืœื›ืŸ ื™ืฉ ืฆื•ืจืš ืžืื•ื“ ื‘ืงื•ืจื ืžืชืื™ื ืขื ื ื™ื•ื•ื˜ ืงืœ.

ื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ืื™ื ื• ืกืคืจ ื”ืœื™ืžื•ื“ ืฉืœ Stroustrup; ื”ื•ื ืžื›ื™ืœ ืœื ืฆืจื™ืš ืœืงืจื•ื ื”ื›ืœ. ืื ื”ืฉืชืžืฉืช ื‘ืขืฆื” ื”ืงื•ื“ืžืช, ืคืฉื•ื˜ ืžืฆื ืืช ื”ืงื˜ืข ื”ืจืฆื•ื™ ื‘ืกืจื’ืœ ื”ืกื™ืžื ื™ื•ืช.

ื’ื™ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื, ื‘ืžื™ื•ื—ื“ ืžื“ืจื™ื›ื™ ืขื–ืจ, ื™ื›ื•ืœ ืœืชืืจ ืืช ื”ื™ื›ื•ืœื•ืช ืฉืœ ืœื ืฉื‘ื‘ ืกืคืฆื™ืคื™, ืื‘ืœ ืืช ื›ืœ ื”ืงื•. ื–ื” ืื•ืžืจ ืฉื—ืฆื™, ืื• ืืคื™ืœื• ืฉื ื™ ืฉืœื™ืฉื™ื ืžื”ืžื™ื“ืข ืื™ื ื• ืงืฉื•ืจ ืœืฉื‘ื‘ ืฉืœืš. ืœืคื ื™ ืœื™ืžื•ื“ ืจื™ืฉื•ืžื™ TIM7, ืฆ'ืง-ืื™ืŸ ืชื™ืื•ืจ ื›ืœืœื™, ื™ืฉ ืœืš ืืช ื–ื”?

ืœื“ืขืช ืื ื’ืœื™ืช ืžืกืคื™ืง ืœ ืฉืœื‘ ื‘ืกื™ืกื™. ื’ื™ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืžื•ืจื›ื‘ื™ื ืžื—ืฆื™ ืžืžื•ื ื—ื™ื ืฉืื™ื ื ืžื•ื›ืจื™ื ืœื“ื•ื‘ืจ ื”ืžืžื•ืฆืข ืฉืคืช ืื, ื•ื—ืฆื™ ืžืžื‘ื ื™ ื—ื™ื‘ื•ืจ ืคืฉื•ื˜ื™ื. ื™ืฉื ื ื’ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืกื™ื ื™ื™ื ืžืฆื•ื™ื ื™ื ื‘ืื ื’ืœื™ืช ืกื™ื ื™ืช, ื›ืืฉืจ ืžื—ืฆื™ืชื ื”ื ื’ื ืžื•ื ื—ื™ื, ื•ื”ื—ืฆื™ ื”ืฉื ื™ ื”ื ืงื‘ื•ืฆื” ืืงืจืื™ืช ืฉืœ ืžื™ืœื™ื.

ืื ืชืคื’ืฉื• ืžื™ืœื” ืœื ืžื•ื›ืจืช, ืืœ ืชื ืกื” ืœืชืจื’ื ืื•ืชื• ื‘ืืžืฆืขื•ืช ืžื™ืœื•ืŸ ืื ื’ืœื™-ืจื•ืกื™. ืื ืืชื” ืžื‘ื•ืœื‘ืœ ื”ื™ืกื˜ืจื™ื”, ืื– ื”ืชืจื’ื•ื "ื”ื™ืกื˜ืจื–ื™ืก" ืœื ื™ื—ืžื ืื•ืชืš. ื”ืฉืชืžืฉ ื‘ื’ื•ื’ืœ, Stack Overflow, ื•ื™ืงื™ืคื“ื™ื”, ืคื•ืจื•ืžื™ื, ื”ื™ื›ืŸ ื™ื”ื™ื” ื”ืงื•ื ืกืคื˜ ื”ื ื“ืจืฉ ืžื•ืกื‘ืจ ื‘ืžื™ืœื™ื ืคืฉื•ื˜ื•ืช ืขื ื“ื•ื’ืžืื•ืช.

ื”ื“ืจืš ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœื”ื‘ื™ืŸ ืืช ืžื” ืฉืืชื” ืงื•ืจื ื”ื™ื ืฆ'ืง ื‘ืคืขื•ืœื”. ืœื›ืŸ, ืฉืžื•ืจ ื‘ื”ื™ืฉื’ ื™ื“ ืืช ืœื•ื— ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื ืฉืืชื” ืžื›ื™ืจ, ืื• ืขื“ื™ืฃ ืฉื ื™ื™ื, ืœืžืงืจื” ืฉืขื“ื™ื™ืŸ ืœื ื”ื‘ื ืช ืžืฉื”ื• ื•ืจืื™ืช ืขืฉืŸ ืงืกื.

ื–ื” ื”ืจื’ืœ ื˜ื•ื‘ ืœืฉืžื•ืจ ืืช ื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ืฉืœืš ื‘ื”ื™ืฉื’ ื™ื“ ื›ืฉืืชื” ืœืงืจื•ื ืžื“ืจื™ืš ืฉืœ ืžื™ืฉื”ื• ืื• ืœืœืžื•ื“ ืกืคืจื™ื™ื” ืฉืœ ืžื™ืฉื”ื• ืื—ืจ. ื‘ื”ื—ืœื˜ ื™ื™ืชื›ืŸ ืฉืชืžืฆื ื‘ื• ืคืชืจื•ืŸ ืื•ืคื˜ื™ืžืœื™ ื™ื•ืชืจ ืœื‘ืขื™ื™ืชืš. ื•ืœื”ื™ืคืš - ืื ืืชื” ืœื ื™ื›ื•ืœ ืœื”ื‘ื™ืŸ ืžื’ื™ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ืื™ืš ื”ืจื’ื™ืกื˜ืจ ืขื•ื‘ื“ ื‘ืคื•ืขืœ, ื—ืคืฉ ื‘ื’ื•ื’ืœ: ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืžื™ืฉื”ื• ื›ื‘ืจ ืชื™ืืจ ื”ื›ืœ ื‘ืžื™ืœื™ื ืคืฉื•ื˜ื•ืช ืื• ื”ืฉืื™ืจ ืงื•ื“ ื‘ืจื•ืจ ื‘-GitHub.

ืžื™ืœื•ืŸ

ื›ืžื” ืžื™ืœื™ื ื•ืกืžืœื™ื ืฉื™ืžื•ืฉื™ื™ื ืฉื™ืขื–ืจื• ืœืš ืœื”ืชืจื’ืœ ื‘ืžื”ื™ืจื•ืช ืœื’ื™ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื. ืžื” ืฉื–ื›ืจืชื™ ื‘ื™ื•ืžื™ื™ื ื”ืื—ืจื•ื ื™ื, ืชื•ืกืคื•ืช ื•ืชื™ืงื•ื ื™ื ื™ืชืงื‘ืœื• ื‘ื‘ืจื›ื”.

ื—ืฉืžืœ
Vcc, ื ึธื›ื•ึนืŸ โ€“ "ืคืœื•ืก", ืื•ื›ืœ
Vss, Vee โ€“ "ืžื™ื ื•ืก", ื›ื“ื•ืจ ื”ืืจืฅ
ื ื•ึนื›ึฐื—ึดื™ โ€“ ื ื•ื›ื—ื™
ืžืชื— - ืžืชื—
ืœื”ื˜ื‘ื™ืข ื–ืจื - ืขื‘ื•ื“ื” ื›"ืงืจืงืข" ืœืขื•ืžืก ื—ื™ืฆื•ื ื™
ืœืžืงื•ืจ ื–ืจื - ืขื•ืžืก ื—ื™ืฆื•ื ื™ ืžืชื—
ื›ื™ื•ืจ ื’ื‘ื•ื”/ืกื™ื›ืช ืžืงื•ืจ - ืกื™ื›ื” ืขื "ืกื•ื‘ืœื ื•ืช" ืžื•ื’ื‘ืจืช ืœื˜ืขื™ื ื”

IO
H, ื’ื‘ื•ื” - ืขืœ ืกื™ื›ืช ื”-Vcc
L, ื ืžื•ืš - ืขืœ ืกื™ื›ืช Vss
ืขื›ื‘ื” ื’ื‘ื•ื”ื”, ื”ื™ื™-ื–, ืฆืฃ - ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืขืœ ื”ืกื™ื›ื”, "ื”ืชื ื’ื“ื•ืช ื’ื‘ื•ื”ื”", ื”ื•ื ื›ืžืขื˜ ื‘ืœืชื™ ื ืจืื” ืœืขื•ืœื ื”ื—ื™ืฆื•ืŸ.
ืžืฉื™ื›ื” ื—ืœืฉื” ืœืžืขืœื”, ืžืฉื™ื›ื” ื—ืœืฉื” ืœืžื˜ื” โ€“ ื ื’ื“ ืžืฉื•ืš/ืœืžื˜ื” ืžื•ื‘ื ื”, ืฉื•ื•ื” ืขืจืš ืœ-50 ืงื™ืœื• ืื•ื”ื ื‘ืงื™ืจื•ื‘ (ืจืื” ื’ื™ืœื™ื•ืŸ ื ืชื•ื ื™ื). ื”ื•ื ืžืฉืžืฉ, ืœืžืฉืœ, ื›ื“ื™ ืœืžื ื•ืข ืžืคื™ืŸ ื”ืงืœื˜ ืœื”ืฉืชืœืฉืœ ื‘ืื•ื•ื™ืจ, ื•ืœื’ืจื•ื ืœืื–ืขืงื•ืช ืฉื•ื•ื. ื—ืœืฉ - ื›ื™ ืงืœ "ืœื”ืคืจื™ืข" ืœื•.
ืœืžืฉื•ืš ืœื“ื—ื•ืฃ - ืžืฆื‘ ืคืœื˜ ืคื™ื ื™ื, ืฉื‘ื• ื”ื•ื ืขื•ื‘ืจ ื‘ื™ืŸ ื’ึธื‘ื•ึนื”ึท ะธ ื ืžื•ืš - OUTPUT ืจื’ื™ืœ ืž- Arduino.
ื ื™ืงื•ื– ืคืชื•ื— - ื™ื™ืขื•ื“ ืžืฆื‘ ื”ืคืœื˜ ืฉื‘ื• ื”ืคื™ืŸ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืื—ื“ ื ืžื•ืšืื• ืขื›ื‘ื”/ืฆื™ืคื” ื’ื‘ื•ื”ื”. ื™ืชืจ ืขืœ ื›ืŸ, ื›ืžืขื˜ ืชืžื™ื“ ื–ื” ืœื ื ื™ืงื•ื– ืคืชื•ื— "ืืžื™ืชื™"; ื™ืฉ ื“ื™ื•ื“ื•ืช ืžื’ืŸ, ื ื’ื“ื™ื, ื•ืžื” ืœื. ื–ื”ื• ืคืฉื•ื˜ ื™ื™ืขื•ื“ ืœืžืฆื‘ ืงืจืงืข/ืœืœื.
ื ื™ืงื•ื– ืคืชื•ื— ืืžื™ืชื™ - ืื‘ืœ ื–ื” ืžืžืฉ ื ื™ืงื•ื– ืคืชื•ื—: ื”ืกื™ื›ื” ืžื•ื‘ื™ืœื” ื™ืฉื™ืจื•ืช ืœืงืจืงืข ืื ื”ื™ื ืคืชื•ื—ื”, ืื• ื ืฉืืจืช ื‘ืœื™ืžื‘ื• ืื ื”ื™ื ืกื’ื•ืจื”. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื‘ืžื™ื“ืช ื”ืฆื•ืจืš ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ื“ืจื›ื• ืžืชื— ื’ื“ื•ืœ ืž-Vcc, ืืš ื”ืžืงืกื™ืžื•ื ืขื“ื™ื™ืŸ ืžืฆื•ื™ืŸ ื‘ื’ืœื™ื•ืŸ ื”ื ืชื•ื ื™ื ื‘ืกืขื™ืฃ ื“ื™ืจื•ื’ื™ื/ืžืชื— ืžืงืกื™ืžืœื™ื™ื ืžื•ื—ืœื˜ื™ื.

ืžืžืฉืงื™ื
ื‘ืกื“ืจื” - ืžื—ื•ื‘ืจ ื‘ืกื“ืจื”
ืœืฉืจืฉืจืช โ€“ ื”ืจื›ื‘ืช ืฉื‘ื‘ื™ื ืœืฉืจืฉืจืช ื‘ืืžืฆืขื•ืช ื—ื™ื‘ื•ืจ ื˜ื•ืจื™, ื”ื’ื“ืœืช ืžืกืคืจ ื”ื™ืฆื™ืื•ืช.
ืžืฉืžืจืช โ€“ shift, ืžืฆื™ื™ืŸ ื‘ื“ืจืš ื›ืœืœ ืงืฆืช shift. ื‘ื”ืชืืžื”, ืœืขื‘ื•ืจ ืคื ื™ืžื” ะธ ืœืขื‘ื•ืจ ื”ื—ื•ืฆื” - ืงื‘ืœื” ื•ื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ื™ื˜ ืื—ืจ ื‘ื™ื˜.
ื‘ึผึฐืจึดื™ื—ึท - ืชืคืก ื”ืžื›ืกื” ืืช ื”ืžืื’ืจ ื‘ื–ืžืŸ ืฉื”ื‘ื™ื˜ื™ื ืžื•ื–ื–ื™ื ื“ืจื›ื•. ื›ืืฉืจ ื”ื”ืขื‘ืจื” ื”ื•ืฉืœืžื”, ื”ืฉืกืชื•ื ื ืคืชื— ื•ื”ืกื™ื‘ื™ื•ืช ืžืชื—ื™ืœื•ืช ืœืคืขื•ืœ.
ืœืฉืขื•ืŸ - ื‘ืฆืข ื”ืขื‘ืจื” ื‘ื™ื˜ ืื—ืจ ื‘ื™ื˜, ื”ืขื‘ืจ ืืช ื›ืœ ื”ื‘ื™ื˜ื™ื ืœืžืงื•ืžื•ืช ื”ื ื›ื•ื ื™ื.
ื—ื™ืฅ ื›ืคื•ืœ, ืจื™ืฉื•ื ืฆืœืœื™ื, ืจื•ืฉื ื˜ืขื™ื ื” ืžืจืืฉ โ€“ ื™ื™ืขื•ื“ื™ ื”ื™ืกื˜ื•ืจื™ื”, ื›ืืฉืจ ื”ืคื ืงืก ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืงื‘ืœ ื ืชื•ื ื™ื ื—ื“ืฉื™ื, ืืš ืœื”ื—ื–ื™ืง ืื•ืชื ืขื“ ืœืฉืœื‘ ืžืกื•ื™ื. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืฉ-PWM ื™ืคืขืœ ื›ื”ืœื›ื”, ื”ืคืจืžื˜ืจื™ื ืฉืœื• (ืžื—ื–ื•ืจ ืขื‘ื•ื“ื”, ืชื“ื™ืจื•ืช) ืœื ืืžื•ืจื™ื ืœื”ืฉืชื ื•ืช ืขื“ ืฉื”ืžื—ื–ื•ืจ ื”ื ื•ื›ื—ื™ ืžืกืชื™ื™ื, ืื‘ืœ ื›ื‘ืจ ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืคืจืžื˜ืจื™ื ื—ื“ืฉื™ื. ื‘ื”ืชืื ืœื›ืš, ื”ื ื•ื›ื—ื™ื™ื ื ืฉืžืจื™ื ืจื™ืฉื•ื ืฆืœืœื™ื, ื•ื—ื“ืฉื™ื ื ื•ืคืœื™ื ืœืชื•ื›ื ืจื•ืฉื ื˜ืขื™ื ื” ืžืจืืฉ, ื ื›ืชื‘ ืœืื•ื’ืจ ื”ืฉื‘ื‘ื™ื ื”ืžืชืื™ื.

ื›ืœ ืกื•ื’ื™ ื”ื“ื‘ืจื™ื
prescaler โ€“ ืžืงื“ื ืชื“ืจื™ื
ืœื”ื’ื“ื™ืจ ืงืฆืช - ื”ื’ื“ืจ ืืช ื”ื‘ื™ื˜ ืœ-1
ืœื ืงื•ืช/ืœืืคืก ืงืฆืช - ืืคืก ืืช ื”ื‘ื™ื˜ ืœ-0 (ืœืืชื—ืœ - ืชื›ื•ื ืช ื’ืœื™ื•ืŸ ื ืชื•ื ื™ื STM)

ืžื” ื”ืœืื”

ื‘ืื•ืคืŸ ื›ืœืœื™, ืชื•ื›ื ืŸ ื›ืืŸ ื—ืœืง ืžืขืฉื™ ืขื ื”ื“ื’ืžื” ืฉืœ ืฉืœื•ืฉื” ืคืจื•ื™ืงื˜ื™ื ืขืœ STM32 ื•- STM8, ืฉื ืขืฉื• ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžืืžืจ ื–ื” ื‘ืืžืฆืขื•ืช ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื, ืขื ื ื•ืจื•ืช, SPI, ื˜ื™ื™ืžืจื™ื, PWM ื•ืคืกื™ืงื•ืช:

ืื™ืš ื•ืœืžื” ืœืงืจื•ื ื’ืœื™ื•ื ื•ืช ื ืชื•ื ื™ื ืื ืžื™ืงืจื•-ื‘ืงืจื™ื ื”ื ื”ืชื—ื‘ื™ื‘ ืฉืœืš

ืื‘ืœ ื™ืฉ ื”ืจื‘ื” ื˜ืงืกื˜, ืื– ื”ืคืจื•ื™ืงื˜ื™ื ื ืฉืœื—ื™ื ืœื—ืœืง ื”ืฉื ื™.

ื”ืžื™ื•ืžื ื•ืช ืฉืœ ืงืจื™ืืช ื“ืคื™ ืžื™ื“ืข ืชืขื–ื•ืจ ืœืš ื‘ืชื—ื‘ื™ื‘ ืฉืœืš, ืืš ืœื ืกื‘ื™ืจ ืฉืชื—ืœื™ืฃ ืชืงืฉื•ืจืช ื—ื™ื” ืขื ื—ื•ื‘ื‘ื™ื ืื—ืจื™ื ื‘ืคื•ืจื•ืžื™ื ื•ื‘ืฆ'ืื˜ื™ื. ืœืžื˜ืจื” ื–ื•, ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœืฉืคืจ ืืช ื”ืื ื’ืœื™ืช ืฉืœืš ืงื•ื“ื ื›ืœ. ืœื›ืŸ ืžื™ ืฉืกื™ื™ื ืœืงืจื•ื ื™ืงื‘ืœ ืคืจืก ืžื™ื•ื—ื“: ืฉื ื™ ืฉื™ืขื•ืจื™ื ื—ื™ื ื ื‘ืกืงื™ืื ื’ ื‘ืชืฉืœื•ื ืจืืฉื•ืŸ ื‘ืืžืฆืขื•ืช ื”ืงื•ื“ HABR2.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”