CS 지식 정리 36

Wiring Pi - PWM.c 분석

#include #include #include #include int main (void){ int bright ; printf ("Raspberry Pi wiringPi PWM test program\n") ; if (wiringPiSetup () == -1) exit (1) ; pinMode (1, PWM_OUTPUT) ; for (;;) { for (bright = 0 ; bright = 0 ; --bright) { pwmWrite (1, bright) ; delay (1) ; } } return 0 ;}해당 코드가 pwm의 예제 코드이며, 이 코드에서 다시 pinMode부터 분석해보려고 한다.주요 분석 코드로 pinMode, pwmWrite ..

함수 포인터란?

라즈베리파이를 c언어로 다루기 위해, 이것저것 공부를 하고 있다. 그러던 와중, 함수포인터가 매우 자주 보여 이를 정리하고자 한다! 원리 위주로 파해칠 예정이며, 활용은 다른 게시글 참고바란다! 그리고 제일 중요한 것은, 포인터를 잘 모르겠으면 무조건 이해하고 와야한다.꼭!!!! 무조건이다!!https://dojang.io/mod/page/view.php?id=591 C 언어 코딩 도장: 68.0 함수 포인터 사용하기C 언어에서 함수는 이름이 정해져 있죠. 그래서 함수를 호출하려면 함수 이름으로 직접 호출했습니다. void hello() { printf("Hello, world!\n"); } int main() { hello(); // 함수 이름으로 함수를 직접 호출 returndojang.io이 글을 ..

CS 지식 정리 2025.03.14

Wiring Pi - ISR.c (인터럽트 서비스 루틴) 분석

이번에는 인터럽트 서비스 루틴에 대해서 분석해볼 예정이다. 뭐,,, 인터럽트에 대한 내용은 따로 CS 지식 정리 할 때 정리하겠다.  애초에, 인터럽트는 너무 흔한 개념이기도 하고 기본적으로 이게 궁금해서 온 사람은 모를리 없다는 것을 전제로 하여 진행할 것이기 때문!isr.c#include #include #include #include #include // globalCounter:// Global variable to count interrupts// Should be declared volatile to make sure the compiler doesn't cache it.static volatile int globalCounter [8] ;/* * myInterrupt: ************..

Wiring Pi 파헤치기 (2) PI-Thread 알아보기

오늘은 Wiring Pi의 Thread를 알아볼 예정이며, 이 과정에서 C언어로 Threading을 제작하는 방법도 알아볼 예정이다.#include #include // LED Pin - wiringPi pin 0 is BCM_GPIO 17.#define LED 0PI_THREAD (blinky){ for (;;) { digitalWrite (LED, HIGH) ; // On delay (500) ; // mS digitalWrite (LED, LOW) ; // Off delay (500) ; }}int main (void){ printf ("Raspberry Pi blink\n") ; wiringPiSetup () ; pinMode (LED, OUTPUT) ; piT..

AUTOSAR - SW 컴포넌트 개념

오늘의 CS 지식은 AUTOSAR 관련 지식이다. 차량 쪽의 지식을 굳이 CS로 정리하는 이유? 그것은 이러한 SW 컴포넌트는 어딜 가던 비슷할 것 같아서.. 실제로도 유니티 SW 개발을 하던 당시에도 SW Component를 제작하고 이걸 재활용하는 방안을 최대한 모색했었다. 그렇기에, 순수 SW에서도 쓰이는 개념을 임베디드에서 안 쓸리가 없었고, 이러한 형태는 차량뿐만 아닌 방산, 의료기기 등 여러 분야에 쓰일 가능성이 높다고 생각하여 정리하게 되었다. https://blog.naver.com/PostView.naver?blogId=mds_datasecurity&logNo=222674332146&categoryNo=37&parentCategoryNo=0&photoView=1 [RapidAUTO] AU..

CS 지식 정리 2025.03.10

Wiring Pi 파헤치기 (1) 예제부터 차근차근 알아보기

https://github.com/WiringPi/WiringPi GitHub - WiringPi/WiringPi: The arguably fastest GPIO Library for the Raspberry PiThe arguably fastest GPIO Library for the Raspberry Pi - WiringPi/WiringPigithub.com 이 예제는 위 Git에 올라와있는 Wiring Pi에서 가져온 내용이다.단순히 Wiring Pi를 쓰는것 부터 시작해서, 이 Pi를 어떻게 만들었는지까지 살펴볼 예정이다.#include #include // LED Pin - wiringPi pin 0 is BCM_GPIO 17.#define LED 0int main (void){ printf ..

[백준] 1062. 가르침 (C)

https://www.acmicpc.net/problem/1062문제남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다.그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다.김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다.김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는지 고민에 빠졌다.남극언어의 모든 단어는 "anta"로 시작되고, "tica"로 끝난다.남극언어에 단어는 N개 밖에 없다고 가정한다.학생들이 읽을 수 있는 단어의 최댓값을 구하는 프로그램을 작성하시오.입력첫째 줄에 단어의 개수 N과 K가 주어진다.N은 50보다 작..

[공부] 순열과 조합 (C)

백준 문제를 풀다가, 내가 순열과 조합에 대해서 준비가 하나도 되어있지 않다는 것을 알았다. 개념은 잡혀있으나, 이를 코드로 구현하는 연습이 미비한 것 같았다. 그래서, 일단 기본적인 순열 코드를 긁어서 가져왔다.https://wonsjung.tistory.com/11위 블로그에서 몰래 긁어왔다.. ㅎ순열 (중복 가능)#include int dep[20];int n;void rec(int x){ if (x == n) { for (int i = 0; i 결과31 1 1 1 1 21 1 31 2 11 2 21 2 31 3 11 3 21 3 32 1 12 1 22 1 32 2 12 2 22 2 32 3 12 3 22 3 33 1 13 1 23 1 33 2 13 2 23 2 33 3 13..

스택이란? - C언어 알아보기

[본 글은 Do it! 자료구조와 함계 배우는 알고리즘 입문 책을 참고하여 작성하였습니다] 스택이란 데이터를 일시적으로 저장하기 위한 자료구조가장 나중에 넣은 데이터를 가장 먼저 꺼냄 (LIFO, Last In First Out) 스텍에 데이터를 넣는 작업을 Push, 데이터를 꺼내는 작업을 Pop이라고 한다.관련 사진 자료는 무궁무진한데, 그 중 좀 이해하기 쉬운 자료를 가져와봤다.이런 식으로, Push를 통해 넣고 Pop을 통해 위에서부터 꺼낸다. 이러한 흐름은 메인 함수와 메인에서 관련 함수를 부르는 것도 비슷하다. void x() {/*...*/}void y() {/*...*/}void z() { x(); // 첫 번째 함수 호출: x() y(); // 두 번째 함수 호출: y()}..

CS 지식 정리 2025.03.05

[백준] 1038. 감소하는 수 (C)

https://www.acmicpc.net/problem/1038문제음이 아닌 정수 X의 자릿수가 큰 자릿수부터 작은 자릿수까지 감소하면 그 수는 감소하는 수EX : 321, 950은 감소하는 수EX : 322, 958은 감소하지 않음N번째 감소하는 수를 출력하는 프로그램을 작성0은 0번째 감소하는 수, 1은 1번째 감소하는 수만약 N번째 감소하는 수가 없다면 -1을 출력N의 범위 : 0 ~ 1,000,000예제 입력 118예제 출력 142예제 입력 20예제 출력 20예제 입력 3500000예제 출력 3-1 아이디어점화식을 세운다?unsigned long long -> 0부터 18,446,744,073,709,551,615 (8byte)d[0] = 0 ->d[1] = 1 -> 1d[2] = 2 -> 1,..