본문 바로가기

전체 글49

[AVR] ATmega128 RGB LED 제어 (16bit Timer, PyQT) [ATmega128 RGB LED 제어] 이 글에서는 크게 2단계에 걸쳐서 RGB LED를 다뤄볼 것이다. 첫 번째로 코드 상에서 0~255까지의 RGB 값을 넘겨주면 해당 값으로 RGB를 설정하여 LED를 키는 함수를 구현해볼 것이며 두 번째로 PyQT를 사용해서 GUI상에서 RGB를 입력하여 PC에서 Atmega128을 제어하는 실험을 수행할 것이다. # 실험 1. RGB LED 제어 RGB 값들은 0~255, 0x00~0xFF까지의 값인데 이를 표현하기 위해서는 PWM을 사용해서 전압을 값에 따라 바꿔줘야 한다. PWM을 사용하기 위해서는 8bit Timer와 16bit Timer를 사용해야 한다. 여기서는 8bit Timer가 아니라 16bit Timer를 사용했는 데 이것에 대해서는 나중에 다시.. 2020. 11. 29.
[IT] 코드 이쁘게 Code Syntax Highlighter - Carbon 한글 문서 등에 코드를 작성할 때 뭔가 예쁘게 올리고 싶은 욕구가 있을 수 있다. 물론 코드를 예쁘게 문서에 넣는 것은 가독성에도 좋은 방법이다. 여기서는 소스 코드를 이미지로 예쁘게 표현해주는 무료 툴, 웹사이트인 Carbon을 소개하려고 한다. Carbon 웹 사이트에 접속하게 되면 정 가운데 편집할 수 있는 검은 창이 있다. 여기가 소스코드를 작성하는 곳이다. 좌측 상단에는 코드 문법 강조 스타일을 변경할 수 있고 가운데는 언어를 변경할 수 있다. 그리고 언어 선택하는 우측에는 배경색을 변경할 수 있고 톱니바퀴를 클릭하게 되면 윈도우 스타일, 여백 등을 변경할 수 있다. 그리고 가장 중요한 기능인 이미지 다운로드는 우측 상단의 Export를 클릭함으로써 수행할 수 있다. 기본적으로 클릭하게 되면 c.. 2020. 11. 24.
[백준BOJ 1157번] 단어 공부 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net [해답 코드 및 설명] #include #include int main(void) { int cnt[26] = {0, }; char s[1000001] = {0, }; scanf("%s", s); int len = strlen(s); for (int i = 0; i = 'a' && s[i] = 'a' && s[i] 2020. 11. 23.
[데이터베이스] 무료 & 웹 ER 다이어그램 모델링 도구 - ERDcloud 테이블을 설계할 때 테이블 간의 관계를 명확히 하기 위해 설계도를 작성하는 데 사용되는 도구가 ER 다이어그램이다. E는 Entity의 약자이고 R은 Relationship의 약자이다. 풀어서 말하면 Entity Relationship Diagram, 개체 관계 다이어그램으로 개체 간의 관계를 표현하는 것이 ER 다이어그램이다. 엄밀히 말해 ER 다이어그램은 관계형 데이터베이스 외의 것에서도 사용된다. ER 다이어그램을 RDB에 대해서 사용할 때 Entity는 테이블 혹은 뷰를 말하고 사각형으로 표현한다. 상단에는 개체 이름, 테이블/뷰 이름을 적고 사각형 안에 테이블/뷰의 열을 적는다. 기본키가 되는 열부터 차례로 작성하게 된다. 테이블/뷰간 서로 관계를 맺는 경우 선으로 이어서 표현하게 된다. ER .. 2020. 11. 23.
[코드업 1202번] 등급 판정 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1202 등급 판정 점수가 정수로 입력된다. (입력되는 정수는 0~100이다) codeup.kr [해답 코드 및 설명] #include int main() { int n; scanf("%d", &n); switch (n / 10) { case 10: case 9: printf("A"); break; case 8: printf("B"); break; case 7: printf("C"); break; case 6: printf("D"); break; default: printf("F"); } return 0; } 0~100까지의 정수에 따라 등급을 출력하면 되고 등급은 점수 십의 자리에서 결정된다. 따라서.. 2020. 11. 17.
[IT] Git / Github Master 대신 Main 생긴, 아니 생겼다 https://www.cnet.co.kr/view/?no=20200728102539 마이크로소프트 깃허브, '마스터·슬레이브' 용어 없앤다 소프트웨어 개발 호스팅 업체 마이크로소프트 산하 깃허브(GitHub)는 ‘블랙 리브스 매터(Black Lives Matter, 흑인 생명은 소중... www.cnet.co.kr 이미 몇 달정도 지난 이슈이긴 하나 혹여 아직도 알지 못했던 이들을 위해 글을 써본다. Black Lives Matter 흑인 생명은 소중하다 인종차별에 대한 문제가 대두되면서 IT 업계에서도 인종차별 소지가 있는 여러 용어들을 변경하려는 움직임이 몇 달 전 있었고 실제로 변경된 사례가 Git / Github의 Main Branch이다. 기존 Git / Github 에서 기본이 되는 Branc.. 2020. 11. 17.
[데이터베이스] 데이터베이스Database란? 데이터베이스Database란? - 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합 - 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태 - 저장장치 내에 정리되어 저장된 데이터의 집합 - 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합 우리는 일상생활 속에서 여러 자료, 데이터들을 아래와 같이 바인더 형태로 정리하곤 한다. 데이터베이스는 이러한 방식을 디지털, 컴퓨터에서 적용해서 체계적이고 구조적으로 데이터를 모아둔 집합 그 자체를 의미한다. 아래 바인더들이 인간이 데이터를 저장/관리하기 위한 데이터베이스라면, 데이터베이스는 컴퓨터에서 데이터를 저장/관리하기 위한 바인더라 표현할 수 있겠다. 데이터베이스라는 개념은 어느 정.. 2020. 11. 16.
[코드업 1131번] 문자 출력하기 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1131 문자 출력하기 입력받은문자를 그대로 출력된다. codeup.kr [해답 코드 및 설명] #include int main() { char c; scanf("%c", &c); printf("%c", c); return 0; } %c 서식 지정자는 문자 하나에 대한 서식 지정자로 값을 문자로 표현한다. 따라서 %c로 입력받으면 입력받은 값을 문자로 인식하여 그 아스키코드 값을 변수에 저장한다. 그리고 이렇게 입력받은 값을 출력할 때도 %c로 출력하게 되면 그 정수값이 아니라 문자로 변환하여 출력하게 된다. 따라서 위와 같이 작성하게 되면 문자 한 개를 입력 받아 그대로 출력하므로 해답이 된다. 2020. 11. 12.
[코드업 1120번] 세 수의 평균 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1120 세 수의 평균 세 수의 평균을 소수 둘째자리까지 출력하시오. codeup.kr [해답 코드 및 설명] #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%.2f", (a + b + c) / 3.0f); return 0; } 3개의 정수를 입력받아 소수점 2자리까지의 평균을 출력하는 문제다. 정수를 입력받아 나누기를 할 때 3.0f로 나눔으로써 자연스럽게 형변환이 일어나도록 유도하였다. 물론 아래와 같이 처음으로 실수형으로 입력받아도 문제는 해결된다. #include int main() { float a, b, c.. 2020. 11. 12.
[코드업 1153번] 두 수의 대소 비교 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1153 두 수의 대소 비교 두 정수가 입력된다. 두 정수의 크기를 비교하여 왼쪽 수가 크면 > 를 출력, 오른쪽 수가 크면 b ? '>' : (a == b ? '=' : ''를 출력한다. 하지만 a > b가 거짓이라면 다시 삼항 연산을 수행한다. a > b가 거짓인 경우는 a == b 이거나 a < b이므로 a == b에 대해서 삼항 연산을 수행해서 참이면 '='를, 아니라면 ' 2020. 11. 12.
[코드업 1125번] 8진수 16진수 변환 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1125 8진수 16진수 변환 10진수 정수를 입력받아 8진수와 16진수로 출력한다. codeup.kr [해답 코드 및 설명] #include int main() { int n; scanf("%d", &n); printf("%o %X", n, n); return 0; } 이 문제를 풀기 전에 알아야 하는 것은 서식 지정자이다. %o는 정수를 8진수로 표현하고 %x는 16진수 소문자, %X는 16진수 대문자를 표현한다. 여기서 16진수의 경우 대문자로 출력하라고 했으니 %X를 사용한다. 위와 같이 "%o %X"로 출력함으로써 결과적으로 정수를 입력받아 8진수와 16진수로 각각 출력하는 해답이 되었다. 2020. 11. 12.
[리눅스] 명령어 정리 - which [명령어 경로 출력 명령 - which] 이 명령은 지정한 명령어의 실행 파일(or 링크)이 위치한 절대 경로와 별칭(alias) 정보를 출력한다. 형식 which [ options ] 명령어 [...] ls의 실행 파일 경로를 확인하려면 "which ls"와 같이 사용할 수 있다. 2020. 11. 12.
반응형