본문 바로가기
코스웨어/13년 스마트컨트롤러

130502목 정리

by 알 수 없는 사용자 2013. 5. 2.
728x90
반응형

에러 검출과 정정


에러 검출 코드의 종류 : 패리티 비트, 해밍코드


패리티 비트 : 데이터 전송 과정에서 에러 검사를 위한 추가 비트를 말하며, 에러 검출만 가능하다.(정정이 불가능함.)

패리티 비트에는 홀수 패리티, 짝수 패리티의 두 가지로 나뉘며 이들은 1의 개수를 홀/짝으로 맞춘다.


해밍 코드 : 짝수 패리티를 이용하는 에러 검출 및 정정 코드로, 공식은 2^p>=d+p+1이다.


한글 코드 : ASCII코드를 기반으로 16비트를 사용한다.(한국 표준은 완성형)



파일 입출력


디스크에 데이터를 저장할 때에는, 텍스트 형식과 이진형식의 두 가지가 존재한다.( 테스트 방식은 파일을 뜯어보면 그대로 저장되어있으나, 이진 형식은 그냥 바로는 알아볼 수 없다. )


입출력 함수의 종류



여기서 구조체 데이터 형식 저장 함수인 fread, fwrite는 저수준 입출력 함수이다.( 나머지는 전부 고수준입니다. )

사용자에게서 입력받을 시 gets나 scanf는 가급적 자제하며, 문자열의 경우 fgets( 입력받는 문자 수를 정할 수 있으므로 범위를 튀어넘지 않는다 )를 사용하는 것이 좋다.


버퍼 : 임시저장장치로, 사용자가 입력하는 모든 내용들은 버퍼에 들어가 어느정도 차면 기억장치로 날려준다. 사용자가 직접 제어하지 않고 운영체제가 관리해 주며, 속도/효율을 위한 중간다리 역할을 해준다.( 캐시메모리와 유사하다? )


fflush : 버퍼가 다 차기 전에 강제로 날려주는 것. 화장실 물내리기


printf등으로 문자를 출력할 때, \n( 개행문자)을 만나기 전까지 계속 버퍼에 내용이 기록된다. 그러므로 개행문자가 없어 간혹 화면에 출력이 안될 수 있으므로 가급적 개행문자는 필수이다.( 특히 유닉스/리눅스 운영체제에서... )


파일에 무언가의 내용을 집어넣을 때, fclose되기 전까지, 혹은 일정 시간이 지나기 전 까지는 실질적으로는 버퍼에 저장되므로, 제대로 된 저장을 위해 꼭 fclose를 해주는 게 좋다.( fclose해주지 않으면 저장이 되기도 하고 안되기도 한다고 한다. 랜덤랜덤 )

참고로 stdin(표준입력), stdout(표준출력)도 fclose로 닫아진다.


fopen을 할 때는 파일을 여는 방법에 대해 함께 쓰고 이들은 여러 종류들이 존재한다.



이 중 r+와 w+는 서로 같은 기능으로 보일 수 있으나 실은 큰 차이가 있다.

w+ : 파일이 없으면 생성해주고, 기존에 있는 내용을 전부 날리고 시작한다.

r+ : 파일이 없으면 읽을 수 없고, 기존에 있는 내용을 보존한다.


참고 : 11-1 예제에서, 엔터를 도중에 입력하면 덮어써버리는데, 엔터는 캐리지 리턴과 라인 피드로 이루어진다.

그러나 함수가 라인피드를 씹고 캐리지리턴만 받아 맨 앞으로만 이동해 버린다.

입력 : 안녕하세요<엔터>히히히

파일 : 안녕하세요■히히히

출력 : 히히히세요 <-커서만 앞으로 이동해 '히히히'를 출력했다. '안녕하'에 덮어써졌으나 '안녕하'가 안써진건 아니다.



V=IR에서

i값(전류)는 공통이기 때문에 값이 변하지 않는다.

저항이 높을 수록 그 부분의 전압의 점유율이 높아진다.( v=ir로 계산해보면 저항이 낮을 때에 비해 전압이 높다. )

전앞이 높을 수록 저항도 높으며, 전압이 높을 수록 전류도 높으며, 저항이 높을 수록 전류가 낮다.


조도센서(보일러같이생긴 꾸불꾸불한 귀여운거)는 엄밀히 말해 저항의 한 종류이며, 빛의 양에 따라 저항값이 바뀐다.

-> 기기에 들어가는 VCC전압( 3.3v ) / 분해능(실습했을 때 10bits였으므로 1024) => 1칸씩 잴 때 요구되는 전압은 약 0.0032


참고로 온도센서도 같은 원리이다. 대체로 다 같은 원리인 모양이다.


전기 : 전자의 흐름

모터, 스피커 : 전기의 힘으로 전자를 움직여 힘을 낸다.

728x90