검색결과 리스트
디지털회로에 해당되는 글 17건
- 2014.07.22 1
- 2014.07.11 인터럽트 ARM
- 2014.07.01 ARM
- 2014.06.10 20140610 TWI
- 2014.05.22 20140522 LCD제어
- 2014.05.16 20140516 초음파
- 2014.05.15 20140515 초음파센서
- 2014.05.09 20140509 인터럽트 활성화
- 2014.05.08 20140508 인터럽트
- 2014.05.07 CDS
(ARM)
ADC_MR
TRGEN : 트리거 활성화(사용안함)
TRGSEL : 트리거 선택(사용안함)
LOWRES : 분해능 (10bit = 1024 설정)
SLEEP : 슬립모드(사용안함)
PRESCAL : 분주비 (4Mh로 설정, 48Mb/ ( (5+1) * 2 ) = 4Mh)
(어셈블리)
3.1 Assembly Language Statements(어셈블리 명령어)
instruction(명령어)
(;)은 주석의 시작을 의미한다.
어셉블리는 끝나는 문자가 안정해 져있다.
directive(지시어)
예) .NOLIST
macro
어셈블리 프로그램을 짤때 내가 쓰고 싶은 기능을 쓰기 위해선 (.386), (.486), (.586) 을 써줘야한다.
어셈블리 코드 젤 앞에 작성 해야 한다.
(.NODEL FLAF) 플랫
(엑시트 함수 선언)
호출하면 원래 상태로 종료된다.
C와의 차이점은 include 앞에 #이 없다.
word 크기(2Byte) ,dword 크기(4Byte)
어셈블러는 빈칸을 얼로 인식하지 않는다. 끝에 0을 넣어 줘야 문자열의 끝이 인지된다.
(포인터)
인터럽트 ARM (0) | 2014.07.11 |
---|---|
ARM (0) | 2014.07.01 |
20140610 TWI (0) | 2014.06.10 |
20140522 LCD제어 (0) | 2014.05.22 |
20140516 초음파 (0) | 2014.05.16 |
#include "대부분의 설명은 주석에 적었습니다."
Step 1. 인터럽트 목적
(1) LED에 인터럽트를 건다.
(2) 인터럽트를 걸 때 마다 LED가 ON/OFF 된다.
Step 2. LED 연결
29번 라인 LED를 동작하려면 PIOA의 PA0~31중에 하나를 선택해야한다. 그중 PA0를 선택하기로 하겠다.
최초의 인터럽트발생은 LED가 꺼진상태에서 켜지는 것이다. 두번째 발생은 켜진상태에서 꺼지는 것이다.
Step 3. 인터럽트 설정
26번 라인은 확실하지 않음.
자세히 설명은 생략한다.>.<
1 (0) | 2014.07.22 |
---|---|
ARM (0) | 2014.07.01 |
20140610 TWI (0) | 2014.06.10 |
20140522 LCD제어 (0) | 2014.05.22 |
20140516 초음파 (0) | 2014.05.16 |
ARM-GCC 받는곳
http://www2.amontec.com/gnuarm/files.html
시그윈 받는곳
https://cygwin.com/install.html
1 (0) | 2014.07.22 |
---|---|
인터럽트 ARM (0) | 2014.07.11 |
20140610 TWI (0) | 2014.06.10 |
20140522 LCD제어 (0) | 2014.05.22 |
20140516 초음파 (0) | 2014.05.16 |
인터럽트 ARM (0) | 2014.07.11 |
---|---|
ARM (0) | 2014.07.01 |
20140522 LCD제어 (0) | 2014.05.22 |
20140516 초음파 (0) | 2014.05.16 |
20140515 초음파센서 (0) | 2014.05.15 |
ARM (0) | 2014.07.01 |
---|---|
20140610 TWI (0) | 2014.06.10 |
20140516 초음파 (0) | 2014.05.16 |
20140515 초음파센서 (0) | 2014.05.15 |
20140509 인터럽트 활성화 (0) | 2014.05.09 |
초음파를 이용해서 거리를 알아봅시다.
1번 LCD_Init()
LCD에다가 거리를 찍을꺼니까요.
2-1 USonic_init();
초음파 설정하는 곳으로 들어가보면
↓
USonic_init_pin();
안으로들어갑니다.
↓
0011: TRI_DDR은 DDRA이죠? DDRA를 출력으로 바꿔줍시다.
0012: TRI_PORT는 PORTA이죠? 아직 PORTA는 잠궈둡니다.
0013: DDRE 의 에코핀만 입력으로 바꿔줍시다.
0017: 분주비8로 세팅 했습니다.
0018: 118클럭직후
0019: 타이머 인터럽트를 요청합니다.
왜 118클럭이후인가요?
↓
타이머 인터럽를 요청하면 함수 벡터 15가 발동됩니다.
전역변수 volatile unsigned int uiDist; 를 선언한 상태입니다.
uiDist의 값이 계속 올라가겠죠?
마지막으로 USonic_act를 실행해봅시다.
↓
Usonic_init_int();
인터럽트로 가봅시다.
↓
0024: 인터럽트6번에 하강 엣지가 발생하면
0025: 인터럽트가 발생합니다.
0044: 이제 트리거(PORTA)를 꺼둔상태에서
0046: 트리거가 펄스를 보냅니다.
트리거가 펄스를 받아 H(High)가 되면
에코발생( 초음파 : 8싸이클 소닉 버스트)
0058: 에코가 발동됐다는게 감지가되면
0059: uiDist를 0으로 만들고 여기서 부터 다시 셉니다. (아까 uiDist는 먼저 타이머인터럽러트에서 값이 상승하고 있었습니다.)
0056: 에서 하강엣지시 인터럽트 발생조건을 걸어두었으니
벡터7이 발생이됩니다.
LCD에 켜지겠죠?
20140610 TWI (0) | 2014.06.10 |
---|---|
20140522 LCD제어 (0) | 2014.05.22 |
20140515 초음파센서 (0) | 2014.05.15 |
20140509 인터럽트 활성화 (0) | 2014.05.09 |
20140508 인터럽트 (0) | 2014.05.08 |
20140522 LCD제어 (0) | 2014.05.22 |
---|---|
20140516 초음파 (0) | 2014.05.16 |
20140509 인터럽트 활성화 (0) | 2014.05.09 |
20140508 인터럽트 (0) | 2014.05.08 |
CDS (0) | 2014.05.07 |
20140516 초음파 (0) | 2014.05.16 |
---|---|
20140515 초음파센서 (0) | 2014.05.15 |
20140508 인터럽트 (0) | 2014.05.08 |
CDS (0) | 2014.05.07 |
20140430 ADC제어 (0) | 2014.04.30 |
인터럽트 != 폴링
ALU가 끝날때까지 UART가 기다려야한다.
소프트웨어에서의 구현은
자바에서는 이벤트
윈도우에서는 메세지
리눅스에서는 시그널
하드웨어적인 구현은 인터럽트라고 한다.
신호를 받는 작업을
INT 또는
IRQ 라고 줄여부른다.
전화를 받는 작업 ISR(I SERVICE ROUTINE) 함수
ROUTINE은 코드(함수)를 의미한다.
20140515 초음파센서 (0) | 2014.05.15 |
---|---|
20140509 인터럽트 활성화 (0) | 2014.05.09 |
CDS (0) | 2014.05.07 |
20140430 ADC제어 (0) | 2014.04.30 |
20140425 (0) | 2014.04.25 |
CdS는 빛의 세기에 따라 저항값이 변하는 센서입니다.
원리
저항(Resistance)값이 높아지면 빛(Illumination)이 감소하고
저항(Resistance)값이 낮아지면 빛(Illumination)이 증가하는
가변성을 띕니다.
특징
소형이고 가격이 저렴
하지만 응답속도가 낮음
광센서 응용분야
카메라 자동 측광
광전자 제어
실내 선 제어
호출 표시기
산업용 제어
조명 제어 스위치
조명 제어 램프
전자 장난감
20140509 인터럽트 활성화 (0) | 2014.05.09 |
---|---|
20140508 인터럽트 (0) | 2014.05.08 |
20140430 ADC제어 (0) | 2014.04.30 |
20140425 (0) | 2014.04.25 |
20140424 USART (0) | 2014.04.24 |
RECENT COMMENT