티스토리 툴바


2009/06/25 19:36 수업자료/ATmega


▶선택 부분 핀 사용

▶Function Explanation
· RED DATA : 신호가 한 클럭 될때 Red data 신호 입력
· GREEN DATA : 신호가 한 클럭 될때 Green data 신호 입력
· CLOCK : 데이터 입력을 위한 신호
· SELECT : 데이터 Display를 위한 신호 
               High일 때 입력 데이터로 표시 
             Low일 때 기억된 데이터로 표시
· BRIGHT : 신호 표시를 ON or OFF
             High일 때 Display OFF
             Low일 때 Display ON
             펄스 신호에 의해 라인 제어
· RESET : LED신호의 초기화
            High일 때 Display 초기화
            Low일 때 정상 모드
            Held data in memory will not be cleared
             -메모리에 데이터가 지워지지 않음








'수업자료 > ATmega' 카테고리의 다른 글

[16*16 Dot Matrix] SLM1606M V1.3  (0) 2009/06/25
posted by 롯데우승
2009/06/05 16:36 수업자료/ARM





x ☞주변장치 번호

posted by 롯데우승
2009/06/05 09:26 수업자료/Embedded
  • 마이크로프로세서는 보통 적은 수의 인터럽트만을 처리할 수 있으므로, 보드에 인터럽트를 필요로 하는 많은 장치가 연결된 경우에는 이를 다 처리할 수 없게 된다. 이를 위해 인터럽트 컨트롤러가 사용되는데, 인터럽트 컨트롤러는 여러 개의 인터럽트를 하나의 인터럽트 라인으로 다중화(multiplexing)하여 프로세서의 인터럽트 처리 능력을 높여준다.

 

  • PIC는 인터럽트의 하드웨어적 우선순위를 제공한다. 이것은 프로세서가 자체적으로 하드웨어 인터럽트 우선순위를 지원하지 않는 경우에는 유용하게 사용된다. 프로세서가 높은 우선순위의 인터럽트를 처리하고 있는 동안 PIC는 프로세서에게 낮은 우선순위의 인터럽트를 보내지 않는다. 또한 두 개의 장치가 동시에 인터럽트를 발생시킨 경우 PIC는 우선 순위 레지스터를 살펴보고 어느 인터럽트가 더 높은 우선순위를 갖는지 판단하여 높은 우선순위의 인터럽트를 먼저 CPU에 전달한다.

 

  • 트리거(trigger) 방식을 변환한다.
    1. 에지-트리거 인터럽트
      • 신호가 어떤 상태에서 다른 상태로(보통은 하이(high)에서 로우(low)로) 넘어가는 순간 발생
      • 인터럽트 공유 못함
      • ISA 버스 구조에서 사용되는 오래된 방식
    2. 레벨-트리거 인터럽트
      • 프로세서가 처리할 때까지 인터럽트 라인을 하이(high)로 유지
      • 인터럽트 공유 가능하지만 부적절한 설계된 경우 무한 인터럽트 루프에 빠질 수 있음

'수업자료 > Embedded' 카테고리의 다른 글

[인터럽트]level triggered 와 edge triggered  (0) 2009/06/05
posted by 롯데우승
2009/06/05 01:11 수업자료/ARM




AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_SYS, 우선순위, src_type(01), PIT_ISR)
    ☞ SRCTYPE: Interrup Source Type
          ▶00 = 내부 인터럽트의 경우 high level sensitive,  외부 인터럽트의 경우 low level sensitive.
          ▶01 = 내부 인터럽트의 경우 positive edge trigger, 외부 인터럽트의 경우 negative edge trigger.
          ▶10 = 내부 인터럽트의 경우 high level sensitive,  외부 인터럽트의 경우 high level sensitive.
          ▶11 = 내부 인터럽트의 경우 positive edge trigger,  외부 인터럽트의 경우 positive edge trigger.





posted by 롯데우승
2009/06/05 01:08 수업자료/ARM

posted by 롯데우승
2009/06/04 13:37 수업자료/ARM
 [CG ROM에 저장되어 있는 기본 문자 폰트]
▶ 사용자가 화면에 표시하고자 하는 문자 코드를 DD RAM에 써주기만 하면 이것에 해당하는 
              폰트가 자동으로 CG ROM에서 찾아져서 화면에 디스플레이 된다.
            ▶상위비트 하위비트 H=1 L=0
   ex)A = LHLL LLLH 》0100 0001 》65(A의 ASCII값과 일치)

☞기본 문자 이외의 문자(한글)를 화면에 표시 하려면 사용자 정의 문자를 만들어 사용
 CG RAM을 사용하며 5*7 도트를 사용하는 경우 최대 8문자까지 정의
 5*10 도트를 사용하는 경우 최대 4문자까지 정의

▶사용자 정의 문자 지정방법◀
x x x 0 1 0 0 0                 8bit 중 5bit만 사용
x x x 0 1 1 0 0                 x는 don't care
x x x 0 1 1 1 0                 
x x x 0 1 1 1 1 
x x x 0 1 1 1 0                 '▶' 이렇게 나옴
x x x 0 1 1 0 0
x x x 0 1 0 0 0
x x x 0 0 0 0 0
16진수로 0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08, 0x00으로 배열로 찍어줌



▶사용자 정의 문자를 사용한 예제◀

/* -------------------------------------------*/
/*         By CHAE Minyong, 2009.06.04.       */
/* -------------------------------------------*/
#include "project.h"

#define  D_BUS  0x000000ff
#define RS    0x00000800
#define RW    0x00001000
#define EN    0x00002000
#define BL    0x00004000

void LCD_Init();
void LCD_Instruction(unsigned char ucSData);
void LCD_Data(unsigned char ucSData);
void Set_font();

int main()
{
  volatile unsigned int iCount = 0;
  *PIO_PER = D_BUS | RS | RW | EN | BL;
  *PIO_OER = D_BUS | RS | RW | EN | BL;


  LCD_Init();
  LCD_Instruction(0x06);//Entry mode set
  LCD_Instruction(0x80);//DDRAM Address
  
  Set_font();
  while(1)
  {
      LCD_Instruction(0x85); //문자의 시작 위치
      LCD_Data(0x06);//'♥'
      LCD_Data(0x00);//'ㅊ'
      LCD_Data(0x01);//'ㅐ'
      LCD_Data(0x02);//'미'
      LCD_Data(0x03);//'요'
      LCD_Data(0x06);//'♥'
  
      LCD_Instruction(0xC8); //2라인의 시작위치
      LCD_Data(0x04);//'ㄴ'
      LCD_Data(0x05);//'ㅇ'
  }
  return 0;
}

void LCD_Init()
{
  LCD_Instruction(0x01);//Clear Display
  LCD_Instruction(0x3c);//Function set
  LCD_Instruction(0x0c);//Display ON/OFF Control
  LCD_Instruction(0x01);//Clear Display
}

void Set_font()
{
  unsigned int i;
  unsigned int font[] = {
    0x040x040x1f, 0x020x040x0a, 0x110x00,  //'ㅊ' 0x00
    0x0a, 0x0a, 0x0a, 0x0e, 0x0a, 0x0a, 0x0a, 0x00,  //'ㅐ' 0x01
    0x000x1d, 0x150x150x150x1d, 0x000x00//'미' 0x02
    0x040x0a, 0x0a, 0x040x0a, 0x0a, 0x1f, 0x00,  //'요' 0x03
    0x080x080x080x0e, 0x000x000x000x00,  //'ㄴ' 0x04
    0x060x090x090x060x000x000x000x00//'ㅇ' 0x05   
    0x000x0a, 0x1f, 0x1f, 0x0e, 0x040x000x00};//하트  0x06

  LCD_Instruction(0x40);
  for(i=0; i<56; ++i) //문자가 7개 이므로 8*7만큼 저장 시킴
    LCD_Data(font[i]);
}

void LCD_Instruction(unsigned char ucSData)
{
  volatile unsigned int iCount = 0;
 
  for(iCount=0;10000 >= iCount; ++iCount); //초기화를 수행하기 전의 Delay

  *PIO_CODR = EN;//LCD 비활성화
  *PIO_CODR = RS;//명령모드 레지스터 선택  
  *PIO_CODR = RW;//Write 선택

  for(iCount=0;10000 >= iCount; ++iCount); // time delay Tas
    *PIO_SODR = EN;//lcd enable

  for(iCount=0;10000 >= iCount; ++iCount); // time delay Tdsw
    *PIO_CODR = D_BUS;  //dbus clear 
    *PIO_SODR = ucSData; //버스에 8bit 씀 set dbus

  for(iCount=0;10000 >= iCount; ++iCount); // time delay Th 
    *PIO_CODR = EN;//EN을 H에서 L로 lcd disable

  for(iCount=0;10000 >= iCount; ++iCount);  
}

void LCD_Data(unsigned char ucSData)
{
  volatile unsigned int iCount = 0;
 
  for(iCount=0;10000 >= iCount; ++iCount); //초기화를 수행하기 전의 Delay

  *PIO_CODR = EN;//LCD 비활성화
  *PIO_SODR = RS;//명령모드 레지스터 선택  
  *PIO_CODR = RW;//Write 선택

  for(iCount=0;10000 >= iCount; ++iCount);
    *PIO_SODR = EN;//EN

  for(iCount=0;10000 >= iCount; ++iCount);
    *PIO_CODR = D_BUS;
    *PIO_SODR = ucSData; //버스에 8bit 씀

  for(iCount=0;10000 >= iCount; ++iCount);
    *PIO_CODR = EN;//EN을 H에서 L로

  for(iCount=0;10000 >= iCount; ++iCount);
}


▶사용자 정의 문자를 사용한 결과◀


♥ 채민용♥


 

posted by 롯데우승
2009/06/04 09:24 수업자료/Utillity

Cygwin...
ARM 폴더에 가면 설치 순서 있습니다.

'수업자료 > Utillity' 카테고리의 다른 글

Cygwin  (0) 2009/06/04
Source2Html  (0) 2009/06/04
SAM-BA v2.8  (0) 2009/06/04
posted by 롯데우승
2009/06/04 09:22 수업자료/Utillity

메모장에 작성한 소스파일을 Html로 바꾸어줌
색깔도 바뀜.....

'수업자료 > Utillity' 카테고리의 다른 글

Cygwin  (0) 2009/06/04
Source2Html  (0) 2009/06/04
SAM-BA v2.8  (0) 2009/06/04
posted by 롯데우승
2009/06/04 09:15 수업자료/Utillity


ARM에 소스를 올리는 프로그램

'수업자료 > Utillity' 카테고리의 다른 글

Cygwin  (0) 2009/06/04
Source2Html  (0) 2009/06/04
SAM-BA v2.8  (0) 2009/06/04
posted by 롯데우승
2009/05/28 15:22 수업자료/ARM
H-jtag 홈페이지에서 다운로드 합니다.



압축된 파일 2개를 받습니다. 분할 압축이 되어있는거 같은지 2번은 파일을 열 수 없다는 경고 메세지가 나옵니다.


1번 폴더를 열면 EXE파일을 실행 시킵니다.




여기서 부터는 Install 입니다. 그냥 다 next로 다 넘겼습니다.





H-jtag 설치후 실행한 화면 칩을 연결하기 위해 Operations에서 Detect Target으로 사용되는 도구 연결

H-jtag 설치  후, H-jtag Server 프로그램에서 옵션메뉴를 선택하여 위 그림과 같이 설정한다.
위의 UNKNOWN이라고 떳을 때 부터 setting에서 LPT Jtag setting을 하여도 됩니다.
AT91SAM7S256 소자를 인식하여 화면에 나타나는 것입니다.

flsher에서 -> Start H-Flasher메뉴를 선택해서 내가 사용하는 ARm칩을 선택한다.

5번 프로그래밍을 선택하면 위와 같은 화면이 나온다. 

Src File에서 생성한 bin파일을 읽어 온다.
Dst Addr은 0x00000000를 사용함 

마지막으로 오른쪽에 있는 Program을 선택하여 프로램을 칩에 올림....
이렇게 하게 되면 SAMBA로 프로그램을 올릴 때의  메모리 셋을 하게 되는 번거로움을 덜 수 있습니다.
posted by 롯데우승