728x90
반응형
팩스 - (손실압축)아날로그 형태의 전화선 라인으로 통신을 함
Red - 256 -> 1byte
Green - 256 -> 1byte
Blue - 256 -> 1byte
RGB는 총 3byte의 값을 가짐
하드웨어 디코딩 - ex) 아이폰 : 아이폰의 경우 mp3,mp4의 자체 하드웨어 코덱 회로를 가지고 있음
소프트웨어 디코딩 - 하드웨어가 지원되지 않을때 cpu만으로 연산을 해서 소프트웨어적으로 처리하는 디코딩
ADC 저항 측정
아날로그 형태의 저항값을 디지털인 데이터 로 표현
adc.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include "adc.h" void adc_Init(void) { ADMUX = (0 << REFS1)|(0 << REFS0)|(0 << ADLAR)|(0 << MUX4)|(0 << MUX3)|(0 << MUX2)|(0 << MUX1)|(0 << MUX0); ADCSRA = (1 << ADEN )|(0 << ADSC) |(0 << ADATE)|(0 << ADIF)|(0 << ADIE)|(1 << ADPS2)|(1 << ADPS1)|(0 << ADPS0); ADCSRB = (0 << ACME )|(0 << MUX5) |(0 << ADTS2)|(0 << ADTS1)|(0 << ADTS0); // 설정 없음 return; } unsigned int adc_Run0(void) { adc_Init(); ADCSRA = ADCSRA |(1 << ADSC); // high while( 0 != (ADCSRA &(1 << ADSC))); //중지되면 data 출력 return ADC; } | cs |
main.c
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 | #include "main.h" #include "lcd.h" #include "usart.h" #include "adc.h" int main(void) { //volatile unsigned int uiSec; unsigned char ucData; char caVal[] = "0000"; unsigned int uiVal; LCD_Init(); // usart0_Init(); adc_Init(); sei(); while(1) { uiVal = adc_Run0(); caVal[0] = '0' + (uiVal/1000); caVal[1] = '0' + (uiVal%1000)/100; caVal[2] = '0' + (uiVal%1000)%100/10; caVal[3] = '0' + (uiVal%1000)%100%10; // uival%10 LCD_Str(caVal); usart0_Str(caVal); } return 0; } | cs |
22일에 했던것에 adc추가
15번 : adc_Init() 으로 adc 초기화
20번 : adc_Run0를 실행하여 값을 읽어옴
21~24 번 : 값을 하나하나 씩 비트단위로 잘라서 배열에 넣음
26~17 번 : LCD와 usart0에 각각 caVal의 데이터를 넘김
728x90
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160328-업무일지-허도경-로봇제어-환경변수 (0) | 2016.04.04 |
---|---|
20160401_노유찬_리눅스 명령어 (1) | 2016.04.04 |
20160330_김도관_업무일지_C언어기초 및 리눅스기초 (0) | 2016.04.03 |
20160324_김도관_업무일지_시리얼통신4_저항및온도측정,PWM (0) | 2016.04.03 |
20160322_김도관_업무일지_시리얼통신2 (0) | 2016.04.03 |
20160321_김도관_업무일지_시리얼통신1 (0) | 2016.04.03 |
20160403_김가연_스터디일지_섭씨 화씨 변환 소스 (7) | 2016.04.03 |
20160401_조재찬_업무일지_리눅스 터미널 및 통신 (6) | 2016.04.02 |