소수를 구하는 프로그램

main.c
#include <stdio.h>

int main()
{
    int i, j;

    printf("2\n");
    for(i = 3 ; i <= 100 ; i += 2)
    {
        for(j = 3 ; j <= i ; j += 2)
        {
            if(i % j == 0)
            {
                break;
            }
        }
        if(j == i)
        {
            printf("%d\n", i);
        }
    }
    
    return 0;
}


// 1부터 100까지 사이에 소수를 구하는 프로그램이다.
// 일단 2의 배수들은 2를 제외하고 소수가 될 수 없으므로 일단 제외하고, 나머지 수들을 각각 3부터 시작해서 2씩 증가시킨 값들로 자기 자신과 같은 값을 만날 때까지 나눠서 그 전에 나머지가 0인 값이 있으면 소수가 아니므로 제외하고, 자기 자신까지 도달하면 소수이므로 출력 시키는 방법으로 동작한다.

 

DK128간 통신으로 LED 켜기

main.c
#include "port.h"

int main(void)
{
    unsigned char led;
    
    DDRE = 0x00;
    PORTE = 0x00;

    DDRF = 0xFF;
    PORTF = 0xFF;

    DDRC = 0x00;
    PORTC = 0x00;

    while(1)
    {
        led = PINC;
        led = 0xFF - led;

        switch(led)
        {
            case 0x01 :
                DDRF = 0x01;
                break;
            case 0x02 :
                DDRF = 0x03;
                break;
            case 0x04 :
                DDRF = 0x07;
                break;
            case 0x08 :
                DDRF = 0x0F;
                break;
            case 0x10 :
                DDRF = 0x1F;
                break;
            case 0x20 :
                DDRF = 0x3F;

                break;
            case 0x40 :
                DDRF = 0x7F;
                break;
            case 0x80 :
                DDRF = 0xFF;
                break;
            default :
                DDRF = 0x00;
        }
        if(PINE & 0x01)
        {
                DDRF = 0xFF;
        }
        else
        {
                DDRF = 0x00;
        }

    }
    return 0;
}

// DK128보드 2개를 이용해서 스위치를 누를 때마다 각각 LED ON 개수를 늘려가는 코드이다. 예전 실습 시간에 작성 했던 코드에서 조금만 수정해서 작성 할 수 있었다. 일단 한쪽에선 스위치가 눌려 졌다는 신호를 받아서 LED 8개 모두를 ON 시키고, 다른 한쪽에서는 키가 눌려 졌을 때 눌러 졌다는 신호를 다른쪽 DK128한테 보내기만 하면 구현이 가능했다.
// 이 코드는 신호를 받아서 LED 모두를 ON 시키는 코드이다.

+ Recent posts