정보보안공부
*** 2ms마다 0번 FND의 숫자를 증가 -> Normal모드 Output compare interrupt사용 -> Normal 모드로 Output Interrupt 사용하게되면 2ms마다로 작동하지 않으므로 ISR(TIMER0_COMP_Vect)에 OCR0 += 124; 작성 *** Normal모드로 Output compare Interrupt사용시 -> 따라서 Normal모드는 overflow Interrupt를 주로사용한다. *** 2ms마다 0번 FND의 숫자를 증가 -> CTC모드 Output compare interrupt사용 *** CTC모드일때 Output compare match Interrupt사용 -> 오실로스코프로 파형확인 -> -5V를 오실로스코프에 GND에 연결 -> PORT..
Timer : 내부 클럭 사용, 내부 클럭의 수를 카운팅 Counter : 외부 클럭 사용 ***TCCR TCNT(Overflow의 경우) ***OCR TIMSK *** Timer Interrupt 종류 2가지 ***0.2초 간격으로 LED Shift 시키기 - Normal 모드 Overflow Interrupt 사용 ***0.5초 간격으로 LED Shift 시키기 - Normal 모드 Overflow Interrupt 사용 -> 0.2ms와 0.5ms 차이는 자료형이 char이면 255까지 int형이면 255이상으로 가능
*polling : 코딩같은 방식( 한가지 밖에 못함 ) ex) while( ); *interrupt : 함수 호출 없어도 발생( 호출문이 없다. ) *SREG = 0x80 = 1 7번비트를 활성화 -> sei() : 헤더파일에 #include가 선언되어 있다면 sei()로 가능하다. *EIMSK : 외부 interrupt ex) 3번 7번 interrupt사용할때 EIMSK = 1
*** 헤더파일 #include #include #include #define FND_S (*(volatile unsigned char*)0x8002) #define FND_D (*(volatile unsigned char*)0x8003) #define EX_LED (*(volatile unsigned char*)0x800c) #define DOT_R (*(volatile unsigned char*)0x8008) //빨강 #define DOT_G (*(volatile unsigned char*)0x8007) //초록 #define DOT_C (*(volatile unsigned char*)0x8009) //전원 *** 0번스위치 누르면 FND 0~9반복 1번스위치 누르면 STOP 2번스위치 누르면 0으로..
*** 참고자료 -> 트렌지스터가 PNP형 이므로 베이스가 0일때 FND가 동작한다. -> 버퍼를 이용해 FND의 값결정한다. -> #define FND_S(*(volatile unsigned char*)0x8002) FND_S는 전원으로 버퍼역할 -> #define FND_D(*(volatile unsigned char*)0x8003) FND_D는 숫자코드 버퍼역할 -> FND의 전원에 PNP의 트랜지스터 베이스에 연결되있으므로 트렌지스터의 베이스가 0일때 FND가 동작한다. *** FND를 6개 켜지도록 설정 *** FND를 3개 켜지도록 설정 *** 스위치를 이용해 0번 SW : 0번 FND 1번 SW : 1번 FND --- 5번까지 ***0번스위치 ***1번스위치 ***2번스위치 ***3번스위치 ..
***MCUCR로 LED켜기 -> EX_LED = 0x01;을 이용해 LED가 한개켜지는 것을 확인 ***스위치 사용 -> DDRD = 0x0f; 스위치 사용을 위해 입력핀으로 설정 -> data = PIND & 0xf0; EX_LED = data; 로 PIND 스위치를 눌렀을때 LED확인 *** 7SEGMENT와 SWITCH 같이 사용 -> 7SEGMENT 2개 연결한 회로에 SWITCH사용 -> 위에 if(data == 0xe0) 안에 PORTC = 0x80; 으로 된 부분은 없어도된다.
*** 7segment에 숫자 입력하기 -> LED와 마찬가지로 배열에 순차적으로 0~9까지의 숫자에 관련된 코드를 넣어놓고 for문을 이용해 돌리면 0~9까지 순차적으로 보여진다. *** 7segment 2개를 사용해 10의자리부분과 1의자리부분으로 두자리 숫자만들기
***n01.BufferedStream - FileSplitEx -> FileInputStream fis = new FileInputStream(fname); BufferedInputStream bis = new BufferedInputStream(fis); 선언 보조스트림, 파일입력 스트림에서 데이터를 모으기 위한 기능 -> final int VOLUME = 1 * 1024 //1KB단위 String fname = "C:/Temp2/aaa"; //만들어져있는 파일 -> FileOutputStream fos = null; BufferedOutputStream bos = null; -> int data; int i=0; int number = 0; -> while((data = bis.read()) != ..