일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- cf50/4 fle
- Kodak 400TX
- Mamiya 7
- Leica M7
- GRD2
- Kodak Ektar 100
- Kodak T-Max 100
- Contax G2
- Nikon 28Ti
- cs50/2.5
- Minolta CLE
- Hasselblad 500cm
- Rollei35s
- Kentmere 400
- kodak t-max 400
- 2018 미국출장
- 4870
- cf80/2.8
- Germany
- FujiFilm C200
- fujifilm velvia 50
- SONY A7
- G28/2.8
- Minolta TC-1
- M-Rokkor 40/2
- 2019 유럽여행
- N80/4
- ZeissIkon ZI
- Kodak 5222
- FujiFilm GFX50s
- Today
- Total
목록컴퓨터 (104)
J 창고
기본적인 셋팅은 UART Tx 포스팅에서 했던 것과 비슷하고http://wjs890204.tistory.com/762 Rx Enable을 위해UCSR0B에 있는 RXEN0 레지스터도 셋 한다 그런데 이거 구현하는데 문제가 있었는데 엄청 골때렸음.... http://cafe.naver.com/carroty/236713 여기 질문글인데 결국 1byte만 선언된 문자열에 그 이상을 구겨 넣어서 생긴 문제... ㅠㅠ 어쨋건 해결 해서 다행... 이번 포스팅의 내용은 Rx Buffer을 구현하여 시리얼 모니터에 문자열을 보내면 Rx buffer에 저장하고 다시 시리얼모니터에 출력해 주는 역할인 코드 1234567891011121314151617181920212223242526272829303132333435363..
UART 통신을 하려면 Baudrate 설정이 필수적이다. 계산 식은 위의 표와 같이 하면 된다. ex) 9600bps로 통신을 한다면 UBRR = ( 16Mhz / ( 16 x 9600bps) ) -1 = 106.167 이 되므로 UBRR에는 106즉 0x67을 넣어줘야 한다. 물론 UBRR0H와 UBRR0L로 되어 있어 상위바이트와 하위바이트에 나눠서 넣어주면 된다.(9600은 하위 8비트 안에 들어가므로 상위에는 0x00을 넣는다. UDRn 레지스터는 Tx일 때는 Tx로 보낼 데이터를 저장할 Buffer로 사용되고Rx일 땐 데이터를 받을 Buffer로 사용된다. 이 버퍼가 보낼 준비가 되거나받을 준비가 된다면UCSRnA에 있는 UDREn 레지스터가 Set 된다. TXENn 을 통하여 Tx Enabl..
기본 IO 프로그래밍 기법 http://cafe.naver.com/circuitsmanual/354 http://cafe.naver.com/circuitsmanual/4618 키패드 스캔 http://cafe.naver.com/circuitsmanual/1747 http://cafe.naver.com/circuitsmanual/25440
Fast PWM을 활용하여 LED 점등을 구현해봄 위의 영상 같이 LED가 점점 밝아짐을 확인해 볼 수 있다 Fast PWM은 기본적으로 톱니바퀴(?) 방식으로 카운트를 하는데 카운트를 하면서 OCRn 레지스터와의 비교를 통해 Compare Match가 되면 인터럽트가 발생하고 OCn Output을 Toggle 한다. TCNTn의 카운트가 0xFF가 되거나 Interrupt가 발생했을 때 OCn Output을 초기상태로 리셋해준다. Fast PWM과는 다르게 Phase Correct PWM은 TCNTn 카운트를 처음엔 Up카운트를 하고 그 이후에 Down카운트를 한다. 인터럽트는 최고 카운트 0xFF가 되었을 때 나오고 최하 카운트 0x00에서는 TOVn Interrupt Flag가 셋 된다. 이와중에 ..
8Bit Timer/Counter InterruptExternel Interrupt74HC595 8Bit Shift Register 를 사용하여 분단위 Stop Watch를 제작 뭐 제대로 만든건지는 확실하게 모르겠지만 ㅎㅎㅎㅎㅎ;;; 4 Digit FND와 74HC595 회로는 http://wjs890204.tistory.com/755에 포스팅 되어 있으니 참고 이건 외부 인터럽트를 위한 스위치 회로인데 C1은 채터링 현상 방지를 위해서 하나 낑굼 검색해보니 소자 끼는 것 보단 소프트웨어로 처리하는게 좋다고 하는데나는 외부 인터럽트를 사용하려고 했기 때문에그건 아무래도 힘들 것 같아서 하드웨어적으로 처리했다.소프트웨어적으로 처리하는 방법으로는 약간의 미세한 딜레이를 주는 방법과아니면 채터링이 생기는 것..
상위 2digit은 sec, 하위 2digit 은 microsec로 FND 카운트가 60.00 sec 가 넘어가면 리셋되는 방식으로(분 카운트도 하고 싶지만 74HC595가 부족해서... ㅠㅠ) 시계 구현.. 이제 Externel Interrupt 를 이용해서 스탑워치를 셋팅 예정. Prescaler = 64OCR0 = 249 16Mhz / 64 / (1+249) = 1000Hz 1000Hz => 1ms 1ms 단위로 인터럽트 발생하고 발생할 때마다 count++ 하고 count = 10 이 초시계 msec++ 하여 초시계 작동 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354..