Raspberry Pi 2
Char LCD - P.288
Char LCD는 8Bit 모드와 4Bit 모드가 존재하는데 ATMega나 ARM의 경우에는 연결할 핀이 많이 있지만 라즈베리파이의 경우에는 연결할 핀의 개수가 40개로 구성이 되어있다.
그렇기 때문에 라즈베리파이에서는 대부분 8Bit 모드대신 4Bit 모드로 Char LCD를 사용한다.
8Bit 모드는 데이터버스를 0 ~ 7번까지 모두 다 쓰지만 4Bit 모드에서는 데이터버스를 4 ~ 7번까지만 사용을한다.(0 ~ 3번의 핀연결은 하지않고 열린상태로 둔다)
그래픽 LCD - P.301
GPS - P.323
GPS 모듈의 RX, TX를 통하여 UART 통신을 이용하여 좌표값을 받을 수 있다.
GPS를 이용하여 시간, 속도, 좌표등 여러가지 정보들을 알아낼수 있다.
IR 리모컨 - P.340
적외선 센서에 VCC, GND를 연결하고 Output을 연결하면 적외선을 쏠때마다 PWM 파형이 발생되고 수신기에서 파형을 읽어 값을 계산하여 각각의 명령을 수행한다.
원격 CCTV - P.356
위의 내용들은 모두 모듈을 구매하여야 실습이 가능하기 때문에 실습은 생략하고 넘어간다.
RPi NAS - P.405
이전에 SamBa를 미리 구축하여 사용했기때문에 생략한다.
이름만 거창하게 RPi NAS라고 하지만 SamBa와 같다.
라즈베리 파이 C 프로그래밍 - P.421
- 온습도 센서 P.433
온습도 센서(DHT22 / AM2302)
MCU와 센서의 통신 절차
온습도 센서 값 구하기
Assembly
7.1 문자열
문자열을 조작하기 위한 5가지 명령어
movs - Move String
cmps - Compare String
scas - Scan String
stos - Store String
lods - Load String
Assembly에서 문자열은 C언어의 배열에 문자를 하나씩 넣는것과 같은 형태이다.
response BYTE 20 DUP (?) ; 1Byte짜리 20개 생성
wordString WORD 50 DUP (?) ; 2Byte짜리 50개 생성
arrayD DWORD 60 DUP (0) ; 4Byte짜리 60개 생성
Assembly에서 문자열의 주소를 가르키는 명령은 두가지가 존재한다.
시작을 가르키는 명령은 ESI, 목적지를 가르키는 명령은 EDI이다.
문자열이 한번에 이동할수 있는 크기는 B, W, D(B - Byte, W - Word, D - Double Word)가 존재하며 이렇게 한번에 이동할 수 있는 크기를 가르켜 Suffixes라 부른다.
DF Flag
DF Flag는 문자열 복사가 일어날때 변화가 일어나는 Flag로서 DF Flag가 1이면 문자열을 복사하는 ESI, EDI 레지스터의 값이 1씩 감소하게 되고 반대로 DF Flag가 0이게 되면 ESI, EDI의 레지스터값이 1씩 증가하게 된다.
방향 Flag 설정 CLD, STD
CLS - DF Flag를 0으로 설정
STD - DF Flag를 1로 설정
movsb, movsw, movsd 명령이 Clock Cycles이 높은이유는 메모리 대 메모리로 데이터의 이동이 발생되기 때문에 Clock Cycles이 높은것이다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
디바이스 드라이브 예제 소스파일 (3) | 2015.11.05 |
---|---|
20151104 2번 강동조[커널 빌드와 디바이스 드라이버] (5) | 2015.11.05 |
20151102-김재홍-라즈베리파이_C프로그래밍&ASM_Translation (6) | 2015.11.02 |
20151030 - 홍준모 오전 : UART 이용. 오후 : 사물 인터넷 (라즈베리파이), 어셈블리 (8) | 2015.10.30 |
20151028-업무일지-주재민 (3) | 2015.10.28 |
천정호 Task Switching (미완성) (0) | 2015.10.28 |
20151027 윤재희 task switching 소스 (0) | 2015.10.28 |
20151027-26번-업무일지-임현수 라즈베리 홈네트워크(릴레이), 태스크 스위칭 확인 (7) | 2015.10.27 |