ืืืงืจืืืืงืืจืื ืืงื ืืื ืชืืืื ืืืคื ืชื ืืฉื ืื ืืืืจืื ืืช ืืืืืช ืืืจืืืืื ื ืืงืกืื. ืืื ืื ื ืืืขืื: ืขื ืืกืคืืง ืขื ืืื, ืืชื ืืืื ืืฆืืื ืืืืืจืืช DigitalWrite(), ืืื ืื ืืขืฉืืช ืืืื ืื ืืืืจื ืืจืืจ. ืืคืชืื Arduino ืืฉืงืืขื ืืืืฆืื ืจืืื ืืืืจืืช ืืืกืื ืืื ืืกื ืืืขืจืืช ืืืงืืืืืืช ืฉืืื, ืื ืืืืฆื ืื ืขืืืื ืืฉื ื ืืขืจ ืืคื ืฉื ืืขืืืื ืงืฉืื ืฉืืื ื ื ืืืฉืื ืืืืืืื.
ืืืฉื, ืืืืืื ืืช ื ืชืื ืื. ืื ื ืจืื ืืืืื ืืฉ ืืื ืืื, ืงื ืืช ืื ืืืฉืชืืฉ ืื. ืืื ืืืืืจืื ืฉืืื ืืืืจืืจ ืืื ื ืืฆืืืื ืืขืฆืื ืืช ืืืฉืืื ืืคืืคืืืจืืืช ืฉื ืืืงืจื-ืืงืจืื; ืึดืคึฐืขึธืึดืื ื ืืืืฉืื ืืฉืชืืฉืื ืืจืขื ืืืืื ื ืืืื ืืื ืืืงืืฆืืจืื ืื ืืืื ืื ืืฉืื ืืชืืจืื ืืืจืื ืคืฉืืืื ืขื ืื ืช ืืืืื ืืช ืืกืจื ืืืืข ืืื ืฉืืคืฉืจ. ืืื ืื ืืื ืื ืื ืืจืืข; ืื ืจืืฆืื, ืืืจืื ื ืคืชื.
ืืืืืจ ืื ืืืืืง ืืช ืื ืืกืืื ืฉื ืืืืื ืืืืขื ืืจืื ืืชืงืฉืืจืช ืขื ืืคื ื ืชืื ืื ืืืืจืืช ืชืืืืืื. ืืืงืกื ืืืืขื ืืืืืืื ืฉืืืื ืืืื ืกื ืืจืืืืื ื; ืืื ืื ืื ืืื ื ืืกืืืืช ืฉื ืขืงืจืื ืืช ืืคืขืืื ืฉื ืืืงืจื-ืืงืจืื.
ืื ื ืืชืืื ืขื ืืืกืืจืชื
ืืืืืืช ื ืืจืืช LED ื- Arduino
ืืืื ืืงืื:
void setup() {
DDRB |= (1<<5);
}
void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}
"ืื ืื? โ ืืฉืื ืงืืจื ืืชืืืื. - ืืื ืืชื ืืืชื ืืฉืื ืืืืืจ ืืงืื ืฉื PINB? ืื ืืงืจืืื ืืืื!" ืึผึถืึฑืึถืช,
ืืืื ืคืื ืงืฆืืื ืืืืช ืืืฉื ืืืกืืช, ืืื ืื ืืืืชื ื-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 ืืชื ืืื. ืืื ืืื ืขื ืืืช ืืจืืจ ืฉืืืืืจ ืืช ืื ืื ืืกืืืื ืืืืืจ ืืื ืืืชืื ืืืชื ืืื ืื ืื ืจืืืื. ืืืื ืื ืคืืช ืืช ืื, ืื ืืืขืืช ืืฉืื ืืกืื ืชืืื ืืงืืืืื, ืื ืืกืืจ ืืืืจ.
ืขืืจื ืฉื ืชืืื, ืื ื ืขืืืื ืืืงืง ืืช ืืฉืคืชืืื
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