'2015/03/12'에 해당되는 글 2건

  1. 2015.03.12 AVR makefile 소스의 이해와 1차원 배열
  2. 2015.03.12 기억회로(NOR/NAND latch회로)
Busan IT/디지털 제어2015. 3. 12. 17:33

디지털 제어 - AVR makefile 소스의 이해와 1차원 배열

 

AVR makefile 소스의 이해와 1차원 배열

 

학습목표

 

WinAVR에서 makefile 구동 개념을 안다.

makefile의 기본 문법을 안다.

1차원 배열의 기본개념의 대해 이해한다.

 

WinAVR Makefile

 

87 CPPSRC = , C++ 소스

 

97 ASRC = , 어셈블리 소스

 

103 OPT = s,optimization 최적화.(0 = 속도 최적화, s = 메모리 최적화)

 

110 DEBUG = dwarf-2, 출력하는 디버그 파일 형식 설정

 

//COFF - Common File Form

 

//윈도우 실행 파일은 PE format

 

117 EXTRAINCDIRS =, Extra Included Directories

 

125 CSTANDARD = -std=gnu99, C 표준 설정

 

129 CDEFS = -DF_CPU=$(F_CPU)UL, C++ defined

 

 

cl /DSMART=100 CDEF.c

 

// 컴파일 옵션에서 사용하는, /(C) = -(

 

129 CDEFS = -DF_CPU=$(F_CPU)UL -> #define F-CPU 16000000UL //UL unsigned long

 

-D를 추가할 시 한 칸 띄우고 같은 다시 적어주면 된다.

 

makefile에 소스코드에 없는 내용이 적혀서 구동할 수 있기 때문에 소스를 분석할 때 makefile을 같이 보아야 한다.

 

133 ADEFS = -DF_CPU=$(F_CPU)

 

137 CPPDEFS = -DF_CPU=$(F_CPU)UL

 

//아래에 CFLAG는 누적된다.

 

150 CFLAGS = -g$(DEBUG), DEBUG에 위에 선언한 dwarf가 들어간다.

 

151 CFLAGS += $(CDEFS), //상위에서 나온 내용이 아닌 경우 오류가 난다.

 

152 CFLAGS += -O$(OPT),

 

153 CFLAGS += -funsigned-char,

 

157 CFLAGS += -Wall, Warning All 경고를 전부 출력해라. -> 소스에 사소한 것이라도 알려 달라.

 

// ‘-’ 다음에 나오는 것들은 옵션이다.

 

164 CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)

 

CFLAGS는 가독성을 위해서 짧게 나누어서 나열한다.

 

233 MATH_LIB = -lm, math 라이브러리를 추가시킬 때 쓰는 옵션 //여기서 나오는 수학은 단순 사칙연산이 아니라 고등수학을 말한다. ex) sin, cos

 

262 LDFLAGS = -Wl,-Map=$(TARGET).map,--cref, LD(objexe로 만들어주는 기능)에 사용되는 flag(옵션)

 

340 CC = avr-gcc, C compiler(C:\WinAVR-20100110\bin)

 

355 MSG_ERRORS_NONE = Errors: none

 

389 ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS), /m MCU = atmega128

 

모든 flag값들을 ALL_CFLAGS가 다 가지고 있다는 의미

 

‘:’ label 표시이다.

 

// 탭으로 들여 쓰고 반드시 붙어 있어야 한다.

 

//대입 연산자랑 비슷한 순서로 수행된다.

 

 

 

 

 

이리하여 ‘make’를 쳤을 때 makefile이 어떻게 동작하는지 기본배경을 알 수 있다.

 

p/254 Ch. 11. 1차원 배열

 

같은 형의 자료를 한 개 이상 열거해 놓은 것을 배열이라고 한다.

 

모든 프로그래밍은 배열을 가지고 있고 그 개념은 거의 다 비슷하다.

 

C가 가지는 특징은 주소를 사용한다는 것이다. 또한 배열과 포인터는 밀접한 관련이 있다.

 

대괄호([])1개만 있으면 1차원 2개 있으면 2차원... so and so forth.

 

구형 c compiler에서는 배열 속 대괄호 안에 숫자를 변수로 만들어 쓸 수 없다.

//C++과 신형 c compiler에서는 허용한다.

 

p/256 예제 - 배열의 합)


 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 12. 13:24

디지털제어 - 기억회로(NOR/NAND latch회로)

 

학습목표

 

- NOR 래치회로와 NAND 래치회로의 동작을 이해한다.

- S-R 플립플롭, D 플립플롭, J-K플립플롭, T플립플롭의 동작을 이해한다.

- 클록형 플립플롭, 에지 트리거 플립플롭, 주종형 플립플롭의 차이점을 이해한다.

- 비동기 입력의 동작을 이해한다.

 

 

플립플롭 하나는 한 개의 bit를 기억한다.

 

실습 - 기억회로 만들기)

 

NOR 게이트를 이용한 기억회로 //입력 값을 설정 한 후 회로에 전원을 인가한다.



정확한 이름은 NOR latch회로이다.

 

NOR gate 대신 NAND회로를 넣고 그려보자!

 

74HC02를 활용하여 NOR latch회로를 만들어보자!



74HC02를 사용하여 만들어 보았다.

NAND latch회로도 74LS00을 만들어 보았다.


반응형
Posted by newind2000