1장 마이크로프로세서 개요
    1.1 마이크로프로세서란 개요
    1.2 마이크로프로세서 분류
    1.3 디지털 시스템의 메모리 분류 
    1.4 마이크로컨트롤러의 I/O 장치들
    1.5 디지털 신호를 표시하기 위한 2진수와 16진수

2장 AVR 개요
    2.1 AVR 마이크로컨트롤러 개요
    2.2 ATmega8(A) 소개
    2.3 ATmega8(A)의 세부적인 특징
    2.4 ATmega8(A)의 메모리 구조
    2.5 락 비트(lock bit)와 퓨즈 바이트(fuse byte)
    2.6 전원과 리셋(reset) 회로
    2.7 클럭 소스 (clock source)
    2.8 개발 환경 : atmel studio 소개
    2.9 오픈소스 다운로더 USBasp / USBaspLoaser
    2.A AVR툴체인의 자료형
    2.B AVR의 플래시롬에 데이터 읽고 쓰기
    2.C AVR의 EEPROM에 데이터 읽고 쓰기
    2.B 기본적인 라이브러리 함수 요약

3장 포트(port)를 이용한 기초 실험
    3.1 포트 개요
    3.2 LED를 이용한 포트 실험 (Part 1)
    3.3 헤더 파일 "Am8USBasp.h"의 구조
    3.3 
LED를 이용한 포트 실험 (Part 2)
    3.5 7세그먼트를 이용한 포트실험 (Part 1)
    3.6 
7세그먼트를 이용한 포트실험 (Part 2)

4장 인터럽트(interrupt)
    4.1 인터럽트 개요
    4.2 인터럽트 프로그래밍
    4.3 외부 인터럽트 설정
    4.4 외부 인터럽트와 스위치 실험 1
    4.5

5장 타이머/카운터
    5.1 타이머/카운터 개요와 T/C0 소개
    5.3 T/C0 의 레지스터와 프리스케일러
    5.3 T/C0를 이용한 실험

    5.4 T/C2 (8비트 타이머/카운터) 개요 및 기능
    5.5 T/C2의 레지스터와 프리스케일러
    5.6 T/C2의 정상 모드와 CTC 모드
    5.7 T/C2의 PWM 모드

    5.8 TC1 (16비트 타이머/카운터) 개요 및 기능
    5.9

6장 아날로그-디지털 변환(ADC)
    6.1 ADC 개요
    6.2 ADC 관련 레지스터들
    6.3 ADC 수행 절차
    6.4 CdS 광센서를 이용한 실습 예제
    6.5

'주제별 글목록' 카테고리의 다른 글

심파이(sympy) 강좌 목록  (0) 2015.06.03
파이썬(python) 기초 강좌 목록  (1) 2015.05.23
아두이노 강좌 목차  (3) 2015.05.17
리눅스(Linux) 강좌 목차  (2) 2015.05.16
C++ 강의 글 목록 (목차)  (2) 2015.04.21
Posted by 살레시오
,

1장 개요

    1.1 운영체제(OS) 개요

    1.2 유닉스(UNIX) 소개

    1.3 자유 소프트웨어 재단(FSF) 설립

    1.4 리눅스(Linux) 소개


2장 리눅스 쉘 명령어

    2.1 리눅스 커널(kernel)과 쉘(shell)

    2.2 리눅스 파일 시스템

    2.3 리눅스 터미널(terminal) 입력 기본

    2.4 pwd / ls 명령

    2.5 cd 명령

    2.6 mkdir / rm / rmdir 명령

    2.7 cp / mv 명령

    2.8 파일의 내용을 보여주는 명령어

    2.9 alias / unalias 명령

    2.10 기타 명령어들

    2.11 입출력 재지정 (redirection)

    2.12 nano 텍스트 에디터

'주제별 글목록' 카테고리의 다른 글

심파이(sympy) 강좌 목록  (0) 2015.06.03
파이썬(python) 기초 강좌 목록  (1) 2015.05.23
아두이노 강좌 목차  (3) 2015.05.17
ATmega8(A) 강좌 목록  (1) 2015.05.16
C++ 강의 글 목록 (목차)  (2) 2015.04.21
Posted by 살레시오
,

 심파이(sympy)의 행렬 객체는  Matrix이다. 이 Matrix 객체를 생성할 때는 리스트를 넘겨주면 된다. 넘겨준 리스트의 각 요소는 행렬의 행이 된다. 기본적인 사용 예는 다음과 같다.


>>> Matrix([[1,0],[0,1]]) #[1,0]이 1행, [0,1]이 2행이 된다.
>>> Matrix([[11, 22, 33]]) # 리스트의 첫 번째 요소인 [11,22,33]이 1행이 된다.
>>> Matrix([11, 22, 33]) # 11이 1행, 22가 2행, 33이 3행이 된다.


다른 방법으로 행의 개수와 열의 개수를 명시적으로 지정해 주는 방법이 있다.


>>> A = Matrix(2, 3, [1,2,3,4,5,6])
⎡1  2  3⎤
⎣4  5  6⎦

>>> B = Matrix(4, 4, range(16))
⎡0   1   2   3 ⎤
⎢4   5   6   7 ⎥
⎢8   9   10  11⎥
⎣12  13  14  15⎦


행 요소와 열 요소의 관계를 파이썬 함수로 작성하여 이것을 사용할 수도 있다.


>>> def f(i,j):
 if i==j : return 1
 else : return 0

>>> Matrix(4,4,f)
⎡1  0  0  0⎤
⎢0  1  0  0⎥
⎢0  0  1  0⎥
⎣0  0  0  1⎦


명시적 함수뿐만 아니라 익명 함수도 사용할 수도 있다.


>>> Matrix(3, 4, lambda i,j:1-(i+j)%2)
⎡1  0  1  0⎤
⎢0  1  0  1⎥
⎣1  0  1  0⎦


특수한 행렬을 생성하는 함수도 있다. eye() 함수는 항등 행렬을 생성하며, zeros() 는 영행렬을 그리고 ones()는 일행렬을 만들어 준다.


>>> eye(4)
>>> zeros(2)
>>> ones(3)
>>> ones(1,3)


대각행렬을 생성하는 diag() 함수도 있다. 스칼라나 행렬을 인수로 주면 그것들로 대각행렬을 생성한다.


>>> diag(1,2,3)
>>> diag(-1, ones(2,2), Matrix([5,7,6]))


스칼라는 1x1 행렬로 간주되며 주어진 행렬들을 대각 위치에 놓는다.


 난수 행렬을 발생시킬 수도 있으며 randMatrix() 함수를 이용한다.


>>> randMatrix(4) # 4x4 행렬 생성
>>> randMatrix(3,4) # 3x4 행렬 생성
>>> randMatrix(5, symmetric = True) # 5x5의 대칭행렬 생성


이 행렬의 요소는 100이하의 양의 정수로 채워진다.


[표 1] 행렬 객체의 생성 용례들

용법

내용

Martix(list)

Matrix([list1, list2,...])

Matrix(r, c, seq)

Matrix(r, c, func)

열벡터 생성

행렬 생성

seq를 이용하여 r x c 행렬 생성

함수를 이용하여 r x c 행렬 생성

eye(n)

n x n 단위행렬

zeros(n)

zeros(r, c)

n x n 영행렬

r x c 영행렬

ones(n)

ones(r, c)

n x n 일행렬

r x c 일행렬

diag(arg1, arg2, ...)

args 요소들의 단위행렬 생성

randMatrix(n)

randMatrix(r, c)

n x n 난수행렬 (대칭행렬은 symmetric=True 옵션을 지정)

r x c 난수행렬


 한 가지 주지할 사항은 Matrix 객체는 mutable 하다는 것이다. 따라서 immutability 가 필요한 곳(예를 들어 딕셔너리의 키)에는 사용할 수 없다. immutable행렬이 필요하다면 ImmutableMatrix 를 이용하면 된다.




Posted by 살레시오
,