본문 바로가기
코스웨어/16년 스마트컨트롤러

20160315-이보원 AVR2560 LCD 실험 준비

by 알 수 없는 사용자 2016. 3. 16.
728x90
반응형

AVR2560-LCD 실험-------


>LCD 수업 준비 결선!!

>LCD 결선후 앞면부 !!


>Data Sheet 분석!!

>Data Sheet 해석하기 !!


>지역변수,전역변수 설명----------------------------------------


>지역 변수: 어떤 한정되 지역 에서만 사용할수 있는 변수를 말합니다.

1 함수 또는 어떠한 블록 안에 정의된 변수
2 사용 범위가 함수 내부로 제한 (블록 안에서만 참조 가능)
• 함수가 호출되면 생성되었다가 리턴 하면 소멸된다.
(자동변수, automatic variable)
• 서로 다른 함수에 같은 변수명 사용 가능
3 지역 변수의 초기화
• “함수가 호출될 때마다 초기화되고 리턴 될 때 메모리를 반납한다.”
• 초기값을 갖지 않는 지역 변수는 임의의 값을 가짐


>전역 변수 :함수 밖에 선언 하는것이다
1. 함수 외부에서 선언
2.모든 함수가 함께 사용하는 공유 변수의 특징
• 프로그램 시작 시 생성되고 종료될 때까지 할당된 메모리 유지
• 같은 이름의 전역 변수는 하나 이상 사용할 수 없다.
3. 전역 변수의 초기화
• “프로그램 시작 시 초기화되어 종료 시 까지 유지한다.”
• 초기값을 지정하지 않은 경우 0 으로 초기화된다.



#include"lcd.h"


void lcd_Init(void)
{
 DDRC=(1<<RS)|(1<<RW)|(1<<EN);
 DDRA=0xff
 CTL=(0<<RS)|(0<<RW)|(0<<EN);
 BUS=0x00;
}
void lcd_Inst(unsigned char ucInst)
{
 volatile unsigned uiCnt;
 
 CTL=CTL&~(1<<RS);//L
 CTL=CTL&~(1<<RW);//L
 CTL=CTL&~(1<<EN);//L
 BUS=ucInst;
 for(uiCnt=0;30000>uiCnt;++uiCnt);//Sheet 에 A구간 을 말한다.


#ifndef __MAIN_H__
#define __MAIN_H__

#define DDRA (*((volatile unsigned char*)0x21))
#define PORTA (*((volatile unsigned char*)0x22))
#define PINA (*((volatile unsigned char*)0x20))
#define EICRA (*((volatile unsigned char*)0x69))
#define EICRB (*((volatile unsigned char*)0x6A))
#define EIMSK (*((volatile unsigned char*)0x3D))
#define SREG (*((volatile unsigned char*)0x5F))
#define sei()   __asm__ __volatile__ ("sei" ::)//(7번비트만 1로 만들어줌.어셈블리코드)
#define sleep() __asm__ __volatile__ ( "sleep" "\n\t" :: )

#define INT7 7
#define INT6 6
#define INT5 5
#define INT4 4
#define INT3 3
#define INT2 2
#define INT1 1
#define INT0 0

#define ISC7 6
#define ISC6 4
#define ISC5 2
#define ISC4 0
#define ISC3 6
#define ISC2 4
#define ISC1 2
#define ISC0 0

void __vector_1 (void) __attribute__((signal, used, externally_visible));//외부에서 호출이가능하다 (인터럽트 신호를 받는다,사용된다,외부에서 이걸 볼 수 있어야한다.(호출가능하다))
void __vector_2 (void) __attribute__((signal, used, externally_visible));//외부에서 호출이가능하다 (인터럽트 신호를 받는다,사용된다,외부에서 이걸 볼 수 있어야한다.(호출가능하다))

void Init(void);
void pont_Init(void);
void INT_Init(void);
#endif// __MAIN_H__


728x90