ARM

A31G123ML + Keil uVision : ์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ธฐ — EXINT ์„ค์ •๊ณผ ํ† ๊ธ€ ์ œ์–ด

๊ฒŒ์ž„๊ต์ˆ˜ 2025. 4. 18. 07:50
๋ฐ˜์‘ํ˜•

๐Ÿ”˜ A31G123ML + Keil uVision โ€” ์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ธฐ

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๊ทธ์— ๋”ฐ๋ผ LED๊ฐ€ ํ† ๊ธ€๋˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋Š” CPU๊ฐ€ ๋Œ€๊ธฐ ์—†์ด ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฐ ์ค€๋น„๋ฌผ

  • ABOV A31G123ML ๋ณด๋“œ
  • ํ‘ธ์‹œ๋ฒ„ํŠผ 1๊ฐœ
  • LED 1๊ฐœ
  • ํ’€๋‹ค์šด ์ €ํ•ญ (10kฮฉ)

๐Ÿงฑ ํšŒ๋กœ ์—ฐ๊ฒฐ

  • ๋ฒ„ํŠผ: P1.0 (์ž…๋ ฅ ํ•€) โ†’ 5V / GND โ†’ ํ’€๋‹ค์šด
  • LED: P0.0 (์ถœ๋ ฅ ํ•€)

๐Ÿ’ป ์ฝ”๋“œ ์˜ˆ์‹œ: ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด LED ํ† ๊ธ€

#include "A31G123.h"

volatile uint8_t led_state = 0;

void EXINT0_IRQHandler(void)
{
    if (EXINT->PEND & (1 << 0)) {
        EXINT->PEND = (1 << 0); // ์ธํ„ฐ๋ŸฝํŠธ ํ”Œ๋ž˜๊ทธ ํด๋ฆฌ์–ด
        led_state ^= 1;
        if (led_state)
            PORT0->OUT |= (1 << 0);
        else
            PORT0->OUT &= ~(1 << 0);
    }
}

void exint0_init(void)
{
    PORT1->MODE &= ~(1 << 0);     // P1.0 ์ž…๋ ฅ
    PORT1->PULLUP |= (1 << 0);    // ๋‚ด๋ถ€ ํ’€์—… ์‚ฌ์šฉ ๊ฐ€๋Šฅ (๋˜๋Š” ์™ธ๋ถ€ ํ’€๋‹ค์šด)
    EXINT->CFG &= ~(0x03 << 0);   // Falling edge
    EXINT->MASK |= (1 << 0);      // Mask ํ•ด์ œ
    EXINT->PEND = (1 << 0);       // Pending clear
    NVIC_EnableIRQ(EXINT0_IRQn);  // NVIC ํ™œ์„ฑํ™”
}

int main(void)
{
    PORT0->MODE |= (1 << 0);   // P0.0 ์ถœ๋ ฅ
    PORT0->OUTEN |= (1 << 0);  // Push-pull
    PORT0->OUT &= ~(1 << 0);   // ์ดˆ๊ธฐ๊ฐ’ OFF

    exint0_init();

    while (1) {
        // ๋ฉ”์ธ ๋ฃจํ”„๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Œ (์ธํ„ฐ๋ŸฝํŠธ๋งŒ ์‚ฌ์šฉ)
    }
}

โœ… ํ™•์ธ ํฌ์ธํŠธ

  • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค LED๊ฐ€ ํ† ๊ธ€๋จ
  • main ๋ฃจํ”„๋Š” ๋Œ€๊ธฐ ์—†์ด ์ธํ„ฐ๋ŸฝํŠธ๋งŒ์œผ๋กœ ๋™์ž‘
  • EXINT ์„ค์ •์— ๋”ฐ๋ผ rising/falling edge ์ „ํ™˜ ๊ฐ€๋Šฅ

๐Ÿ“š ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ํŽธ์—์„œ๋Š” ์™ธ๋ถ€ ์ž…๋ ฅ ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ์‹ค์Šตํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ํŽธ์—์„œ๋Š” UART ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ PC์™€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ’ป๐Ÿ“ก

๋ฐ˜์‘ํ˜•