회원가입 ID/PW 찾기

마이크로프로세서 HOT외부 메모리 사용

컴맹95062011.08.12 09:4808.12조회 수 2057댓글 0이 게시물을

AA

안녕 하세요.

고수님들 질문 사항이 있어서요.

 

제가 AVR Studio 를 사용 하고 있는데

 

그것을 가지고 외부 메모리에 데이터를 저장 하고 가져 와서

 

시리얼 데이터 통신을 하고 싶은데

 

외부 메모리에 데이터를 저장 하고 읽는 것을 아무리 책을 봐도

 

모르겠네요.

 

고수님들의 소스 좀 부탁 드립니다.

 

 

/*
// ============================= Atmega8 CPU 테스트 프로그램 ===================
// 사용 CPU : ATmega128
// 날    짜 : 2011.07.-
// 버    전 : Ver1.0
// 작 성 자 : 박진오
// 컴파일러 : AVR Studio Build 692 - Version 4.18
// 내    용 : 외부 메모리 값을 읽어서
     시리얼 통신(시리얼 포트1 사용)으로 값을 전송
             
              시리얼 통신(bps:19200, no parity, 1 stop, 8 data)
             
// ----------------------------------------------------------------------------
*/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>

//=============================================================================================================
// 변수 선언부
//=============================================================================================================
#define ext_data1 (*(volatile unsigned char *)0x8000)
#define ext_data2 (*(volatile unsigned int *)0x9000)

//=============================================================================================================
// 함수
//=============================================================================================================
void TX1_char(unsigned char data)
{
     while((UCSR1A & 0x20) == 0x00);
     UDR1 = data;
}

void TX1_string(char *string)
{
     while(*string != '\0')
     {
          TX1_char(*string);
          string++;
     }
}


// -----------------------------------------------------------------------------
// MAIN
// -----------------------------------------------------------------------------
//
int main(void)
{
     unsigned char i;
     unsigned int j;

     char send_buf[50];

 

     UBRR1H = 0;
     UBRR1L = 51;              // 19200 bps
     UCSR1A = 0x00;              // asynchronous normal mode
     UCSR1B = 0x18;              // Rx/Tx enable, 8 data
     UCSR1C = 0x06;              // no parity, 1 stop, 8 data

 

     MCUCR = 0x80;              // enabled external memory and I/O
     XMCRA = 0x44;              // 0x1100~0x7FFF = 1 Wait, 0x8000~0xFFFF = 0 Wait
     XMCRB = 0x80;              // enabled bus keeper, use PC0~PC7 as address

 

     ext_data1 = 'A';
     i = ext_data1;


     ext_data2 = 209;
     j = ext_data2;

 

    while(1)
    {
        TX1_char(0x02);
       sprintf(send_buf," Ext_data1 = %c, Ext_data2 =%d",i,j);
       TX1_string(send_buf);
       TX1_char(0x03);
       _delay_ms(1000);
    }
}

댓글 0

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
3 머신러닝, AI & 알고리즘 HOT오목 게임 알고리즘3 새로운하늘 3468 2010.03.29
2 머신러닝, AI & 알고리즘 HOT지하철 최단거리 알고리즘은?2 지워나 2870 2008.06.20
1 머신러닝, AI & 알고리즘 HOT순차 프로그램에 대한 간단한 알고리즘과 재귀 알고리즘의 속도 테스트 - by 아크마7 아크마 3083 2007.08.08
  • 좋은 전쟁 또는 나쁜 평화는 없다.
    - 프랭클린
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.