분류 전체보기(12)
-
윈도우10에서 exe 설치파일이 무반응일때 해결방법
레지스트리를 수정하거나 sfc /scannow로 시스템파일을 복구시키거나, 호환성, 영어이름으로변경 다 해봐도 안되는 경우가 있었을겁니다. 저도 quartus를 설치하는데 자꾸 무반응이라서 애를 먹었는데요 event viewer이라는 프로그램을 실행해서 문제를 일으키는 프로그램을 찾아 제거해줘해결했습니다. 다음 error가 setup파일을 실행했을때 나타나는 error였는데요 fasoo drm이라는 프로그램 저작권보호를 위한 프로그램이 원인이었습니다. 바로 제어판으로 삭제를 해줬더니 잘돌아가더군요.
2020.02.02 -
ADC 예제
Flex sensor를 이용한 예제 #include #include #include #include unsigned int adc_data; float volt; void Putch0(char data){ while(!(UCSR1A & 0x20)); UDR1 = data; } void Getch0(){ while(!(UCSR1A & 0x80)); return UDR1; } void UART_initialize(void){ UCSR1A=0x0; UCSR1B=0b00011000; UCSR1C=0b00000110; UBRR1H=0; UBRR1L=8; } ISR(ADC_vect, ISR_BLOCK){ adc_data=ADC; //data를 읽어옴 volt = (float)(adc_data/1023.0)*5; p..
2019.11.05 -
Analog To Digital Converter
Datasheet를 참조했으며 해당 내용은 대략적인 흐름만 작성했습니다 자세한 내용은 Datasheet를 통해 공부하는것을 권장합니다 ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다 ADEN(ADCSRA7)을 set해서 ADC를 ON시켜야합니다 그렇지않으면 밑에서 다룰 모든 설정은 무시됩니다 우선 ADC가 동작하기 위해서는 sample rate을 발생기켜야 되는데 이때 필요한 clock을 선택해야합니다 50khz~ 200khz로 ADPSn을 통해 설정이 가능합니다 10bit보다 낮은 bit로 충분하다면 200khz로 설정해도 무방합니다 ADC를 거치면 Analog signal 을 10bits의 Digital값으로 바꾸게 됩니다 이때 Digital로 바꾸기위한 ..
2019.11.02 -
16bit Timer/Counter
거의 대부분 datasheet의 내용을 인용한 것이며 중간중간 register값을 변경시 주의해야할 점, 특수한 기능, 설정 같은 당장 동작원리를 이해하기에 복잡한 내용은 빼뒀으니 자세한 내용은 datasheet를 참고하시길바랍니다. 그래서 원문인 datasheet를 읽어 공부하는것을 권장합니다. Timer/counter1, Timer/Counter3가 해당됩니다. datasheet를 보다보면 16bit에는 MAX라는 용어를 쓰지않는데 이게 아마 resolution이 16bit는 사용자가 임의로 정할 수 있기때문인것 같습니다. 그래서 8bit든 16bit든 TOP이라고하면 제일 큰값이라고 생각하면 될것 같습니다. Normal Mode 8bit일때와 동자가자체는 크게 다를게 없으며 overflow발생시 b..
2019.10.25 -
8bit Timer/Counter
지적은 언제나 환영하며 정확한 이해를 위해 datasheet를 통해 공부하길 권장합니다. Timer/Counter는 애초에 거의 유사한 logic을 가지고 동작하며 어떻게 사용하는가에 따라 그 용도가 결정됩니다. Timer/Counter를 같이 배우는 의미는 거기서 나오게됩니다. 8-bit Timer/Counter는 Timer/Counter0, Timer/Counter2가 해당이됩니다. The double buffered Output Compare Register (OCR0) is compared with the Timer/Counter value at all times. The result of the compare can be used by the waveform generator to generat..
2019.10.25 -
외부인터럽트
datasheet p.89내용을 참조 크게 EICRA, EICRB, EIMSK INT3:0는 -SREG의 I flag를 set -EIMSK의 활성화하고자하는 pin에 해당하는 bit를 set 다음 두조건을 만족하면 external interrupt를 사용할 준비가 된다. 그리고 EICRA(INT3:0)의 ISCn1, ISCn0의 값에 따라 interrupt가 generate될 시점을 정한다. -low level, falling edge, rising edge 세가지중 하나를 정할 수 있다. (interrupt발생을 위해서는 최소유지시간이 필요하며 p.90에 적혀있다.) 이 조건을 만족하는 edge가 발생하면 SREG값이 clear되고 EIFR의 bit가 set되는데 이때 interrupt vector로 ..
2019.10.22