рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореБрдЦреНрдп рднрд╛рд╖рд╛ рд╕реА рд╣реИред рдЗрд╕ рдкрд░ рдХрдИ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬреАрд╡рди рдЕрднреА рднреА рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрднреА рднреА рджреБрд░реНрд▓рдн рд╣реИред рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛редрдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рд╕реАред рдлрд░реНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдереАрдВ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЖрджрдд рдмрди рдЧрдИред рдЙрд╕реА рд╕рдордп, рдЬрдм рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдкрд╣рд▓реЗ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ C #редрд▓рдВрдмреЗ рд╕рдордп рд╕реЗ C рдпрд╛ C ++ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рд╕реА ++ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХреЗрдЗрд▓ рдХреЗ рдПрдордбреАрдХреЗ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬ рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдХреЗрдЗрд▓ рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рд╡рд╣рд╛рдВ рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, C ++ рдХреЛ рдмреНрд▓рд┐рдВрдХреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред CMSIS рдФрд░ LPCOpen рднреА C. рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдпрджрд┐ "рд╣рд░ рдХреЛрдИ" C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдХрд╛рд░рдг рд╣реИрдВредрд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ .рдиреЗрдЯ рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░реЗрдорд╡рд░реНрдХред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ .Net рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ Visual Studio рдореЗрдВ C # рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЙрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВрдпреЗ рд▓реЗрдЦредрддреЛ, .Net рдорд╛рдЗрдХреНрд░реЛ рдлреНрд░реЗрдорд╡рд░реНрдХ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдХрд░, рдореИрдВрдиреЗ C ++ рдореЗрдВ рдПрдХ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореБрдЭреЗ C ++ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реНрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд┐рдВрджреБ рд╣реИрдВредC рдФрд░ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
C рдФрд░ C ++ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ рдПрдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рднрд╛рд╖рд╛ рд╣реИред рдпрд╣рд╛рдБ рдкрд░ рдкреНрд░рд╕рд┐рджреНрдз рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди, рдмрд╣реБрд░реВрдкрддрд╛ рдФрд░ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдЖрдо рд╣реИрдВред рд╕реА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рд╣реИред рдХреЗрд╡рд▓ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдХреЛрдб рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣рди рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (.hc .c рдХреА рдПрдХ рдЬреЛрдбрд╝реА)ред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрдЖрдЗрдП MCB1000 ( Keil_v5 \ ARM \ Boards \ Keil \ MCB1000 \ MCB11C14 \ CAN_Demo ) рдХреЗ рд▓рд┐рдП Keil рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдПрд▓ рдИ рдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджреЗрдЦреЗрдВ :LED.h:#ifndef __LED_H
#define __LED_H
#define LED_NUM 8
extern void LED_init(void);
extern void LED_on (uint8_t led);
extern void LED_off (uint8_t led);
extern void LED_out (uint8_t led);
#endif
LED.c:#include "LPC11xx.h"
#include "LED.h"
const unsigned long led_mask[] = {1UL << 0, 1UL << 1, 1UL << 2, 1UL << 3,
1UL << 4, 1UL << 5, 1UL << 6, 1UL << 7 };
void LED_init (void) {
LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 6);
LPC_GPIO2->DIR |= (led_mask[0] | led_mask[1] | led_mask[2] | led_mask[3] |
led_mask[4] | led_mask[5] | led_mask[6] | led_mask[7] );
LPC_GPIO2->DATA &= ~(led_mask[0] | led_mask[1] | led_mask[2] | led_mask[3] |
led_mask[4] | led_mask[5] | led_mask[6] | led_mask[7] );
}
void LED_on (uint8_t num) {
LPC_GPIO2->DATA |= led_mask[num];
}
void LED_off (uint8_t num) {
LPC_GPIO2->DATA &= ~led_mask[num];
}
void LED_out(uint8_t value) {
int i;
for (i = 0; i < LED_NUM; i++) {
if (value & (1<<i)) {
LED_on (i);
} else {
LED_off(i);
}
}
}
рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдУрдУрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдПрд▓рдИрдбреА рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ, рдирд┐рд░реНрдорд╛рддрд╛, 3 рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рдФрд░ рдПрдХ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рд╣реИ:class LED
{
private:
const unsigned long led_mask[] = {1UL << 0, 1UL << 1, 1UL << 2, 1UL << 3,
1UL << 4, 1UL << 5, 1UL << 6, 1UL << 7 };
public:
unsigned char LED_NUM=8;
public:
LED();
void on (uint8_t led);
void off (uint8_t led);
void out (uint8_t led);
}
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреЛрдб рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред .C рдлрд╝рд╛рдЗрд▓ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ .h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдВрддреНрд░ рдХреЗ рднреАрддрд░ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреЛрдИ рд╡рд┐рд░рд╛рд╕рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрд╣реБрд░реВрдкрддрд╛ рднреА рд╣реИредрдореИрдВ рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдорд┐рд▓рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдЙрд╕реА рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдУрдУрдкреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ рдЬреЛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ? рдЗрд╕реА рд╕рдордп, C ++ рджреНрд╡рд╛рд░рд╛, рдФрд░ рдмрдбрд╝реЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░, рдХреЗрд╡рд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╣реАрдВредрдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ I2C рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╢реЛрдзрди рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдФрд░ рд╡рд╣реА рд╕реЗрдВрд╕рд░ рдЕрдм рдПрд╕рдкреАрдЖрдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдХреНрдпрд╛ рдХрд░реЗрдВ? рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рджреЛрдиреЛрдВ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред C рдореЗрдВ, рдЖрдк рджреЛ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП #define рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП#ifdef REV1
#include тАЬi2c.hтАЭ
#endif
#ifdef REV2
#include тАЬspi.hтАЭ
#endif
void TEMPERATURE_init()
{
#ifdef REV1
I2C_int()
#endif
#ifdef REV2
SPI_int()
#endif
}
рдФрд░ рдЗрд╕реА рддрд░рд╣редC ++ рдореЗрдВ, рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдУclass ITemperature
{
public:
virtual unsigned char GetValue() = 0;
}
рдФрд░ 2 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░реЗрдВclass Temperature_I2C: public ITemperature
{
public:
virtual unsigned char GetValue();
}
class Temperature_SPI: public ITemperature
{
public:
virtual unsigned char GetValue();
}
рдФрд░ рдлрд┐рд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рдпрд╛ рдЙрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:class TemperatureGetter
{
private:
ITemperature* _temperature;
pubic:
Init(ITemperature* temperature)
{
_temperature = temperature;
}
private:
void GetTemperature()
{
_temperature->GetValue();
}
#ifdef REV1
Temperature_I2C temperature;
#endif
#ifdef REV2
Temperature_SPI temperature;
#endif
TemperatureGetter tGetter;
void main()
{
tGetter.Init(&temperature);
}
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ C рдФрд░ C ++ рдХреЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╡рд┐рдХрд▓реНрдк рдФрд░ рднреА рдЕрдзрд┐рдХ рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рджреЛ рдореБрдЦреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:- рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ #define рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЛ "рдорд┐рдЯрд╛" рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХрдИ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЬрдм рдРрд╕реА рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдП рд░рдЦрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- 2 , C++. тАЬтАЭ , . , #ifdef. , , . , . , , .
рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдПрдХ рдУрд░, рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкрд░рдорд╛рдгреБ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдХреЛрдб рдХреЛ рд▓реЗрдЯ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИредрд╕рдВрд╢реЛрдзрди рдкрд░ рдХреЛрдб рдХреА "рд╢рд╛рдЦрд╛" рдЕрднреА рднреА рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд░рддреЛрдВ рдХреЗ рдмреАрдЪ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рдЬрдЧрд╣ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдПрдЖрдИрдПрдлрдбреАрдПрдл рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИредрдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИредрдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдирдпрд╛ рд╕рдВрд╢реЛрдзрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджреЛрдиреЛрдВ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВредрдиреНрдпреВрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдХреЛрдб рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЕрдкрдиреЗ SPI рдФрд░ I2C рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╕ Init (& рддрд╛рдкрдорд╛рди) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗредрдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореИрдВрдиреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднреМрддрд┐рдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╣реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛редрд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рд╕рд╛рде, C рдФрд░ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред OOP рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд C ++ рдХреЗ рдлрд╛рдпрджреЗ рдЗрддрдиреЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ "рд╢реМрдХрд┐рдпрд╛" рдХреА рд╢реНрд░реЗрдгреА рд╕реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╕реА ++ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрд╛рдлреА рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВредC ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЦрддрд░рд╛ рдХреНрдпрд╛ рд╣реИ?
C рдФрд░ C ++ рдХреЗ рдмреАрдЪ рджреВрд╕рд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реИред рд╕реА рднрд╛рд╖рд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕реНрдерд┐рд░ рд╣реИред рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрддреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдФрд░ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред C ++ рдПрдХ рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╡рдВрдЯрди рдФрд░ рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдХрд╛ рдЕрд░реНрде рд╣реИред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ C ++ рдЦрддрд░рдирд╛рдХ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдХрдо рд╕рдВрд╕рд╛рдзрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрди рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд░реИрдо рдХрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЙрдкрдпреЛрдЧ рд╡рд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд╛рдо рдореЗрдВ рдРрд╕реЗ "рдЪрдорддреНрдХрд╛рд░" рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рднрд░рд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдХреЛ рднреА рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ред рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИредрдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдирд╣реАрдВ рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрднреА рднреА рдЧрддрд┐рд╢реАрд▓ рдирд╣реАрдВ рдмрдирддреЗ рд╣реИрдВредрдбрд╛рдпрдирд╛рдорд┐рдХ рдореЗрдореЛрд░реА (рдФрд░ рдирдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдореЙрд▓реЛрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдвреЗрд░ рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ) рдФрд░ рд╕реНрдореГрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ, рддреЛ рдЖрдк рд╡рд┐рдЦрдВрдбрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП 20 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:
рд╣рд░ рдмрд╛рд░ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреВрд░реА рд╕реНрдореГрддрд┐ рд╕реНрдХреИрди рдХреА рдЬрд╛рддреА рд╣реИ (рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдпрд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ - рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ) рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкрд╛рд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЬрдм рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд░рд╣ рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдЕрдкрдиреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯ рдЖрддреА рд╣реИ:
рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдкрд░реНрдпрд╛рдкреНрдд рдореБрдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрддрд╛ рджреЗрдВ рдХрд┐ 2 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╕реЗ 10 рдЬрд╝реЛрди рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
рдлрд┐рд░ 2,4,6,8,10 рдЬрд╝реЛрди рдореБрдХреНрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:
рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдкреВрд░реЗ рдвреЗрд░ (10 рдмрд╛рдЗрдЯреНрд╕) рдХрд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдореБрдХреНрдд рд░рд╣рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, 3 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 3 рдореБрдХреНрдд рд╕реЗрд▓ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕реЗ рд╕реНрдореГрддрд┐ рд╡рд┐рдЦрдВрдбрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрдФрд░ рдореЗрдореЛрд░реА рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЦрд╛рд╕рдХрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВредрдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ LPC11C24 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ Keil mVision рдореЗрдВ рдРрд╕рд╛ рдХрд┐рдпрд╛ред256 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдвреЗрд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рд╡рд░реНрдЧ рд╣реИрдВ:#include <stdint.h>
class foo
{
private:
int32_t _pr1;
int32_t _pr2;
int32_t _pr3;
int32_t _pr4;
int32_t _pb1;
int32_t _pb2;
int32_t _pb3;
int32_t _pb4;
int32_t _pc1;
int32_t _pc2;
int32_t _pc3;
int32_t _pc4;
public:
foo()
{
_pr1 = 100;
_pr2 = 200;
_pr3 = 300;
_pr4 = 400;
_pb1 = 100;
_pb2 = 200;
_pb3 = 300;
_pb4 = 400;
_pc1 = 100;
_pc2 = 200;
_pc3 = 300;
_pc4 = 400;
}
~foo(){};
int32_t F1(int32_t a)
{
return _pr1*a;
};
int32_t F2(int32_t a)
{
return _pr1/a;
};
int32_t F3(int32_t a)
{
return _pr1+a;
};
int32_t F4(int32_t a)
{
return _pr1-a;
};
};
class bar
{
private:
int32_t _pr1;
int8_t _pr2;
public:
bar()
{
_pr1 = 100;
_pr2 = 10;
}
~bar() {};
int32_t F1(int32_t a)
{
return _pr2/a;
}
int16_t F2(int32_t a)
{
return _pr2*a;
}
};
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рд░ рд╡рд░реНрдЧ рдлреВ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд▓реЗрдЧрд╛редрдмрд╛рд░ рд╡рд░реНрдЧ рдХреЗ 14 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдвреЗрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлреВ рд╡рд░реНрдЧ рдХреА рдЖрд╡реГрддреНрддрд┐ рдЕрдм рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ:int main(void)
{
foo *f;
bar *b[14];
b[0] = new bar();
b[1] = new bar();
b[2] = new bar();
b[3] = new bar();
b[4] = new bar();
b[5] = new bar();
b[6] = new bar();
b[7] = new bar();
b[8] = new bar();
b[9] = new bar();
b[10] = new bar();
b[11] = new bar();
b[12] = new bar();
b[13] = new bar();
f = new foo();
}
рдпрджрд┐ рдЖрдк рдмрд╛рд░ рдХреЗ рдХреЗрд╡рд▓ 7 рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдлреВ рднреА рдЖрдо рддреМрд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:int main(void)
{
foo *f;
bar *b[14];
b[1] = new bar();
b[3] = new bar();
b[5] = new bar();
b[7] = new bar();
b[9] = new bar();
b[11] = new bar();
b[13] = new bar();
f = new foo();
}
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдмрд╛рд░ рдХреЗ 14 рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ 0,2,4,6,8,10 рдФрд░ 12 рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рддреЛ рдлреВрдк рдвреЗрд░ рдХреЗ рд╡рд┐рдЦрдВрдбрди рдХреЗ рдХрд╛рд░рдг рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛:int main(void)
{
foo *f;
bar *b[14];
b[0] = new bar();
b[1] = new bar();
b[2] = new bar();
b[3] = new bar();
b[4] = new bar();
b[5] = new bar();
b[6] = new bar();
b[7] = new bar();
b[8] = new bar();
b[9] = new bar();
b[10] = new bar();
b[11] = new bar();
b[12] = new bar();
b[13] = new bar();
delete b[0];
delete b[2];
delete b[4];
delete b[6];
delete b[8];
delete b[10];
delete b[12];
f = new foo();
}
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЛрдг рд╣реИред рд╕реНрдерд╛рдкрддреНрдп рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ, C ++, рдпрджреНрдпрдкрд┐ C рд╕реЗ рд╢реНрд░реЗрд╖реНрда рд╣реИ, рдорд╣рддреНрд╡рд╣реАрди рд╣реИред рдирддреАрдЬрддрди, рд╕реА ++ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдирд╣реАрдВ рд▓рд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рдмрдбрд╝рд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдВрджреБ рднреА рдирд╣реАрдВ рд╣реИрдВ)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг, рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╕рдВрдж рдмрдирд╛ рд░рд╣реЗрдЧрд╛редрд▓реЗрдХрд┐рди рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдВрджреБ рдорд┐рд▓рд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╣реА C ++ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредC ++ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╡рд┐рд╖рдп рд╣рдореЗрд╢рд╛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд░рд╣рд╛ рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХреЛрдб рдХреЛ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реНрдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╣рдореЗрд╢рд╛ рднрд╛рд░реА рд▓рд╛рдЧрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реНрдЯреИрдВрдб рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдлрд░реНрдорд╡реЗрдпрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдПрдХ рд╡рд┐рддрд░рд┐рдд IoT рдкреНрд░рдгрд╛рд▓реА рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВредрдЬрдм рдореИрдВрдиреЗ C ++ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рддреБрд░рдВрдд рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХреЛрдб рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХреЗрд╡рд▓ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Keil mVision рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, Keil mVision рдореЗрдВ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдХреАрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдпрд╣ рд╕рдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рддреАрд╕рд░рд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рдереА рдХрд┐ рдореИрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдХрдо рд╕реЗ рдХрдо рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдФрд░ рдЪреМрдерд╛, рдпрд╣ Resharper C ++ рдХрд╛ рдЙрджреНрднрд╡ рд╣реИ - C ++ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреА рд╢реИрд▓реА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛редрд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗ рд╕рд╛рд░ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд╛рд░реНрд╕рд░) рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдФрд░ рдЪрд╛рд╣рд┐рдП рдерд╛! рдореЗрд░реА рдкрд░рд┐рдзреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдореИрдВ рдХреЗрдЗрд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, LPC11C24 рдХреЗ рд▓рд┐рдП рдпрд╣ LPC11xx.h рд╣реИред рдпреЗ рдлрд╛рдЗрд▓реЗрдВ CMSIS рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд╕реАрдзреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ #define рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:#define LPC_I2C_BASE (LPC_APB0_BASE + 0x00000)
#define LPC_I2C ((LPC_I2C_TypeDef *) LPC_I2C_BASE )
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕реНрдЯрдмреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╕реНрдЯрдбрд┐рдпреЛ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ, рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдкрддреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдореБрд▓реЗрдЯрд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:#include <LPC11xx.h>
class LPC11C24Emulator
{
public:
static class Registers
{
public:
static LPC_ADC_TypeDef ADC;
public:
static void Init()
{
memset(&ADC, 0x00, sizeof(LPC_ADC_TypeDef));
}
};
}
#undef LPC_ADC
#define LPC_ADC ((LPC_ADC_TypeDef *) &LPC11C24Emulator::Registers::ADC)
рдФрд░ рдлрд┐рд░ рдРрд╕рд╛ рдХрд░реЗрдВ:#if defined ( _M_IX86 )
#include "..\Emulator\LPC11C24Emulator.h"
#else
#include <LPC11xx.h>
#endif
рдЗрд╕ рддрд░рд╣, рдЖрдк VisualStudio рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредC ++ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ 300 рд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд╣рд▓реБрдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗ рд╕рд╛рд░ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдЧрднрдЧ 20 рдмрд▓реНрдХрд┐ рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдИ рдЧрдИ рдереАрдВ, рдЬреЛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг, рд╕реНрд╡рдд: рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛редрдирд┐рд╖реНрдХрд░реНрд╖
рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп C ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рди рдХрд░рдирд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрди рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдПрдХ рддрд░рдл, рдкреВрд░реНрдг-рдУрдУрдкреА рдХреЗ рд╡рд╛рд╕реНрддреБ рд▓рд╛рдн рдЗрддрдиреЗ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрди рдкрд╣рд▓реБрдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реА рдФрд░ рд╕реА ++ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рдбреЗрд╡рд▓рдкрд░ рдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреЗ рдмреАрдЪ рдЪрдпрди рдХреЛ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╡реАрдЬрд╝рд╛ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕реА ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдВрджреБ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдпрд╣ рдЖрдкрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдХрд╛рд░реНрдп, рдкреВрд░реНрдг рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ (рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╕рд╣рд┐рдд) рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдХрд╛рд╕ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛редрдЕрджреНрдпрддрди : рдЗрд╕ рд▓реЗрдЦрдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:- рдмреИрдардХ рд╕реА ++ 2015 рдмрд┐рдЬрд▓реА рд╡рд╛рд░реНрддрд╛: рдУрдбрд┐рди рд╣реЛрдореНрд╕ - рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рд░реЛрд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рдЕрдореВрд░реНрдд www.youtube.com/watch?v=AKAYc9ZFBhk
- рдореАрдЯрд┐рдВрдЧ рд╕реА ++ 2015: рдЬреЙрди рд╣рд┐рдВрдХреЗ - рдбреАрдк рдПрдВрдмреЗрдбреЗрдб рд╕реА ++ www.youtube.com/watch?v=TYqbgvHfxjM
- рдореАрдЯрд┐рдВрдЧ рд╕реА ++ 2014: рд╡рд╛рдЙрдЪрд░ рд╡реИрди рдУрдЗрдЬреЗрди - рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕? рдХреЛрдИ рдзрдиреНрдпрд╡рд╛рдж рдирд╣реАрдВред www.youtube.com/watch?v=k8sRQMx2qUw