'studio'에 해당되는 글 2건

  1. 2019.01.21 AtmelStudio7 (AVRStudio7) 프로그램 다운로딩
  2. 2013.05.30 OUTPUT 실험, WAT-AVR128


AtmelStudio7 (AVRStudio7) 프로그램 다운로딩

앞에서 AtmelStudio7을 이용하여 컴파일 하는 방법을 포스팅 하였습니다. 이제 AVR 보드에 프로그램을 다운로딩하는 방법을 알아보겠습니다.
(요즘은 보드에 프로그램 넣는 것을 ‘업로딩’이라고도 합니다.)

 

프로그래밍 설정

[Tools] => [Device Programming]를 실행합니다.

[WAT-ISP29] AVR ISP 가 연결된 포트를 선택합니다.

 

Device 를 선택합니다.

 

[Apply]를 클릭하면 더 자세한 설정창이 표시됩니다.

 

설정은 보드 환경에 맞게 해주시고, 잘 모르면 Close로 닫아도 됩니다.

 

[Start Without Debugging]으로 다운로드 후 실행을 합니다.

 

PORTB에 연결된 LED 가 약 1초 간격으로 ON/OFF 를 반복합니다.

 

아래와 같이 ‘ISP on STK500’ 상태에서 프로그래밍 다운로딩이 가능합니다.
만약 ‘Simulator’ 상태라면 클릭하여 변경할 수 있습니다.

 

이 예제는 아래의 코드를 사용하였습니다.

 

AVR ISP 자료들

AVR Studio4
AVR Studio7

 

 

AVR ISP 프로그램 케이블 제품구매

WAT-AVR ISP (10핀 플랫케이블) 는 http://kit128.com/goods/view?no=10 에서
WAT-AVR ISP (6핀 케이블) 는 http://kit128.com/goods/view?no=4 에서

WAT-ISP79 AVR ISP(표준10핀) 케이스 포함은 http://kit128.com/goods/view?no=79 에서
WAT-ISP79 AVR ISP(표준10핀) (케이스 미포함)은 http://kit128.com/goods/view?no=113 에서

[WAT-ISP29] USB AVR ISP 프로그램 케이블 (표준10핀)는 http://kit128.com/goods/view?no=29 에서 구매하실수 있습니다.

 


Posted by WhiteAT
,

 

준비

 

- 프로그램 설치: http://whiteat.com/260

(WinAVR, AVRStudio 가 설치되어 있어야 ATMEGA128에 프로그램을 할 수 있습니다.)

 

- 프로그램 라이팅 방법: 다운로드

(직접 작성한 프로그램을 ATMEGA128 에 라이팅 하는 방법입니다.)

 

- ATMEGA128 초급 키트 (http://kit128.com/goods/view.php?seq=57 )

 

 

 

 

 

 

LED 회전 ON/OFF

 

PORTE에 연결된 8개의 LED 가 ON/OFF 하면서 시계방향으로 회전하는 예제입니다.

이 예제는 EX_01_01과 동일합니다. (http://whiteat.com/57204 참조)

 

/*

EX_01_01.c

 

PORTE에연결된LED 순차적으로ON 하기

 

AVRStudio 4.18

2012-01-08

 

홈페이지: http://whiteat.com

MCU자료실: http://avr128.com

쇼핑몰: http://kit128.com

 

*/

 

#include <avr/io.h>

 

// 일정시간딜레이(약1초)

void Delay()

{

    register unsigned long i;

    for(i = 0; i < 300000; i++)

    {

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");    

    }

}

 

int main()

{

    DDRE = 0xFF; // ALL OUTPUT

    PORTE = 0xFE;    // PORTE.0 LED ON

 

    while(1)

    {

        Delay();

 

        if(PORTE == 0x7F)    // 마지막LED 가ON 되었다면.

        {

            // 처음LED ON 되게

            PORTE = 0xFE;    // PORTE.0 LED ON

        }

        else                // 그렇지않다면

        {

            PORTE <<= 1;    // 한칸이동(PORTE = PORTE<<1; 와동일)

            PORTE |= 1;     // 마지막LED 는OFF (PORTE = PORTE | 0x01; 와동일)

        }

    }

}

 

 

 

 


 

 

 

 

 

 

 

 

 

LED 반복 ON/OFF

 

PORTA에 연결된 8개의 LED 를 교대로 ON/OFF 하는 예제입니다.

 

#include <avr/io.h>

 

// 일정시간딜레이(약초)

void Delay()

{

    register unsigned long i;

    for(i = 0; i < 300000; i++)

    {

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

     asm volatile(" POP R0 ");    

    }

}

 

int main()

{

    DDRA = 0xFF;

    PORTA = 0x55; // 0, 2, 4, 6 bit LED OFF

 

 

    while(1)

    {

        PORTA = 0x55; // 0, 2, 4, 6 bit LED OFF

         Delay();

 

        PORTA = 0xAA; // 1, 3, 5, 7 bit LED OFF

        Delay();

 

    }

}

 

 

 

 

 

 




 

ATMEGA128 로 LED 를 ON/OFF 하는 예제를 다루어 보았습니다.

 

감사합니다.

 

Posted by WhiteAT
,