๋ฐ์ํ
๐ก Keil uVision์ผ๋ก ABOV A31G123ML ์ฒซ LED ๊น๋นก์ด๊ธฐ
์ด๋ฒ ์๋ฆฌ์ฆ์์๋ ABOV์ฌ์ A31G123ML MCU๋ฅผ ์ฌ์ฉํด Keil uVision5 ํ๊ฒฝ์์ ์ง์ ํ์จ์ด๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๋ค๋ฃน๋๋ค.
1ํธ์์๋ LED ๊น๋นก์ด๊ธฐ๋ฅผ ํตํด ๊ธฐ๋ณธ GPIO ๋ ์ง์คํฐ ์ ์ด์ ํ๋ก์ ํธ ์ธํ ์ ์ตํ๋ด ๋๋ค.
๐งฐ ์ค๋น๋ฌผ
- ABOV A31G123ML ๋ณด๋
- USB to UART ๋๋ JTAG ๋๋ฒ๊ฑฐ
- Keil uVision5
- ABOV Device Pack (Keil Pack Installer์์ ์ค์น)
๐งฑ ํ๋ก์ ํธ ์์ฑ
- Keil โ New Project โ Device ์ ํ: A31G123
- Startup ์ฝ๋ ์๋ ์์ฑ ๋๋ ABOV SDK ์ฐธ๊ณ
- main.c ํ์ผ ์ถ๊ฐ
๐ป main.c ์ฝ๋ ์์
P00 ํฌํธ์ ์ฐ๊ฒฐ๋ LED๋ฅผ 0.5์ด ๊ฐ๊ฒฉ์ผ๋ก ๊น๋นก์ด๊ฒ ๋ง๋๋ ์ฝ๋:
#include "A31G123.h"
void delay_ms(int ms) {
for (int i = 0; i < ms * 1000; i++) {
__NOP(); // ์์ฃผ ๊ฐ๋จํ ์ํํธ์จ์ด ๋๋ ์ด
}
}
int main(void) {
// P0.0์ ์ถ๋ ฅ ๋ชจ๋๋ก ์ค์
PORT0->MODE |= (1 << 0); // Output Mode
PORT0->OUTEN |= (1 << 0); // Push-pull
PORT0->OUT &= ~(1 << 0); // ์ด๊ธฐ ์ํ Low
while (1) {
PORT0->OUT ^= (1 << 0); // Toggle LED
delay_ms(500);
}
}
โ ๋น๋ & ์ ๋ก๋
- Build ํ, JTAG ๋๋ฒ๊ฑฐ ๋๋ ISP๋ฅผ ํตํด ์ ๋ก๋
- ๋ณด๋์ P00์ ์ฐ๊ฒฐ๋ LED๊ฐ ๊น๋นก์ด๋ฉด ์ฑ๊ณต ๐
๐ก ํ
- ๋ ์ง์คํฐ ์ด๋ฆ์ ABOV ํค๋ํ์ผ(
A31G123.h) ๊ธฐ์ค - ๋๋ ์ด ์ ํ๋๊ฐ ์ค์ํ ๊ฒฝ์ฐ ํ์ด๋จธ๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ์ข์ (๋ค์ ํธ์์ ๋ค๋ฃฐ ์์ )
๐ ๋ง๋ฌด๋ฆฌ
์ด๋ฒ ํธ์์๋ Keil ํ๋ก์ ํธ ์์ฑ๋ถํฐ, A31G123์ GPIO ๋ ์ง์คํฐ๋ฅผ ์ง์ ์ ์ดํ์ฌ LED๋ฅผ ๊น๋นก์ด๊ฒ ๋ง๋ค์์ต๋๋ค.
๋ค์ ํธ์์๋ ํ์ด๋จธ๋ฅผ ์ฌ์ฉํ ์ ๋ฐํ ๋๋ ์ด ์ ์ด๋, ๋ฒํผ ์ธํฐ๋ฝํธ๋ฅผ ํตํด ์ง์ง ๋ง์ด์ปด ์ ์ด์ ๋ค๊ฐ๊ฐ๋ณผ๊ฒ์ ๐ช
๋ฐ์ํ