본문 바로가기

# Semiconductor/[Semicon Academy]103

[Harman 세미콘 아카데미] 20일차 - Github 사용법, C++(함수 오버로딩~class 기초) [Github] 진정한 개발자는 Github를 사용한다. 깃허브에는 우리가 만든 소스 파일을 저장(push)하고 불러올(pull) 수 있는 기능이 존재한다. 실제로는 수많은 기능들이 존재하지만, 처음이니까 이 기능부터 알아보자 ① 리포지토리 생성 ② Visual studio를 Github와 연동(?) ③ 소스 파일을 Push/Pull ① 리포지토리 생성 리포지토리 : 개발자가 애플리케이션 소스 코드에 대한 변경을 수행 및 관리하는 데 사용하는 중앙화된 디지털 스토리지 readme.md : 나의 repos를 설명해주는 역할을 한다. gitignore : 굳이 업로드할 필요 없는 파일들을 필터링한다. ② Visual studio를 Github와 연동 ③ 소스 파일 Push/Pull Fetch : 로컬 저장소.. 2023. 7. 14.
[Harman 세미콘 아카데미] 19일차 - C언어(C표준함수, Buffer, malloc, Memory Dump) [C 표준 함수] 표준 라이브러리 라고도 한다. C언어 표준 규약에 의해 모든 컴파일러가 기본적으로 제공하도록 약속되어 있는 함수들을 말하며, 표준 함수들의 선언은 표준 헤더파일에 있으므로 사용하기 위해서는 함수가 선언된 표준 헤더파일을 #include 해줘야 한다. 기본 함수의 정의는 라이브러리 파일에 있으며, 링크 과정에서 연결되고 모두 외울 필요 없이 필요할 때마다 레퍼런스를 참조하여 사용하면 된다. 헤더 파일 기능 관련 함수 stdio.h 표준 입출력 printf(), scanf(), getchar(), fopen(), fseek(), ... string.h 메모리와 문자열의 처리 strcat(), strcmp(), strcpy(), strlen(), ... ctype.h 문자 검사 및 변환 is.. 2023. 7. 13.
[Harman 세미콘 아카데미] 18일차 - Timer/Counter, Interrupt 실습 [Timer/Counter] #define F_CPU 160000000UL #include #include // 인터럽트 사용을 위한 헤더파일 #include int cnt; // 카운트 값을 저장할 변수 선언 ISR(TIMER0_OVF_vect){ // 타이머/카운터 0번의 오버플로우 인터럽트 서비스 루틴 함수 // cnt++; TCNT0 = 131; // 약 2ms를 만들기 위한 초기값 if(cnt == 500) // 500번째 인터럽트 발생 시 LED 출력을 변경함. 약 1초(1,000ms) { PORTD = ~PORTD; // 출력 반전 cnt = 0; } } int main(void) { DDRD = 0xff; //PORTD = 0x00; // 다 꺼진 것을 시작 PORTD = 0xaa; // .. 2023. 7. 12.
[Harman 세미콘 아카데미] 18일차 - Interrupt, Timer/Counter 이론 [Interrupt] 인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것 우선적으로 처리해야할 일이 발생하였을 때 그것을 처리하고 원래 동작으로 돌아옴 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나눔 1. H/W Interrrupt 일반적인 인터럽트를 이르는 말 CPU외부로부터의 인터럽트 요구 신호에 의해 발생되는 인터럽트 Maskable interrupt, Non-maskable interrupt 가 있다. (Interrunpt Mask가 가능) ① Maskable interrupt - Interrupt Mask(인터럽트가 발생하였을 때 요구를 받아들일지 말지 지정하는 것)가 가능 - 인.. 2023. 7. 12.