2024/11 45

데이터 시트 보는법

데이터 시트 보는법 1. 목적을 세우자 : 목표를 세우고 그에 맞는 지식을 습득한다.   > 오늘의 목표 : Led display driver ic 를 통해 7세그먼트 LED display 제어 2. 장치들의 개념 이해 : 구글링으로 간단 이해     > 1번핀 e , 2번핀 d ..         > led display driver 와 7세그먼트 의 연결          > stm32에 연결되는 핀을 많이 줄일 수 있다. // 32개를 3개로     : sg1 에 전원인가 > a1 ,a2 가 둘다 켜짐 > gr1,gr2 로 둘중 하나 택 하게 할 수 있음 > 이걸 토대로 실제 dataseet 확인 >> stm32 가 어떻게 돌아가도록 코드를 짤것인가?? 3. 백지식 칩과 칩 사이에 통신하는 방법 > ..

2789번, 2231번

2789번1. 3장의 카드가 중복되지 않아야함.2)----------------------------ex) 5장 카드 1,2,3,4,5 1-2-3 1-2-4 1-2-5 1-3-4 1-3-5 1-4-5 2 .... 3 .... ---------------------------나머지 두장 카드 때문에 첫번째 카드의 N-2 까지만나머지 두장 카드 때문에 세번째 카드는 k+2 부터  for (int i = 0; i   2231번자릿수 값의 최대치는 9*6 ( ex) 999999 (9+9+9+9+9+9)  continue : 루프를 끝내는게 아니라 해당 조건만 pass 하므로 N =53 일때 i=-1 , 0, 1, 2, ,,, 10 >  i=-1 을 건너뜀 for (int i = N - 9 * 6; i  216..

C언어/백준 2024.11.23

GPIO 마무리, 회로도 보기

GPIO 제어과정 power on > startup code(.s) > main __HAL_RCC_GPIOC_CLK_ENABLE();  R/M :  APB2 peripheral clock enable register (RCC_APB2ENR)                 IOPCEN 1: IO port C clock enabled 클럭 > 전류를 더욱 사용        : 전류를 아껴야 하는 상황 : sleep mode + 클럭도 하나 하나 제어 회로도 보는법 ex) FND Module :  1. VCC : 전원에 연결 3.3v  2. SCLK : PB15_FND-SCLK // 28번핀 3. RCLK : PB13_FND-RCLK // 26번핀 4. DIO : PB14_FND-DIO // 27번핀 5. GN..

5073번, 14215번

5073번 1.가장 긴변에서 나머지 두변을 뺌a + b + c - max_side  어떤게 max_side 가 될지 모르니 ( max_side - a? b? c?)   > 전체 더한것에서 max_side 를뻄 1-1 ) 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.       ==  두변의 합은 나머지 한변보다는 무조건 길다if (a + b   작은 경우 > printf("Invalid\n");   14215번 1, 오름차순 정리 // 작은것부터 크도록if (a > b) { int temp = a; a = b; b = temp; }if (b > c) { int temp = b; b = c; c = temp; }if (a > b) { int temp = ..

C언어/백준 2024.11.21

Pipe line과 Exception 관계 그리고 ^접미사

Exception 발생 > ARM 실행모드로 전환, Exception Vector로 PC branch.    CPSR을 SPSR에 저장 > 복귀: CPSR   시점에 따라 ARM 또는 Thumb 명령어를 실행시킬 수 있도록 해줘야함  ARM Pipe line의 동작 > 보상 : 복귀 주소 조정  Thumb 실행 중 예외 진입 > 실제 오프셋의 차이       PC 값: 해당 Exception LR에 복사 > 2byte로 저장.  (Thumb 명령어들 : 2byte) Exception 발생 >  Handler로 처리후 어떻게 복귀?보통 PC : fetch 에 위치 > 현재 Execute 보다  2단계 앞, fetch 보다 1단계 앞    ARM 파이프라인 동작을 보상 > 복귀 주소 보정 Thumb 실행 중..

Inline Assembly와 INTLOCK의 구현

Assembly로 코딩해야할때 1. Low Level을 직접 다룰 때 : Coprocessor를 다뤄야 할 때 ( C로는 매우 난감) 2. ARM을 직접 다룰 때 : PSR을 다뤄야 할 때. Interrupt Lock을 걸고 싶을 때  3. Register를 직접 다룰 때 : Register를 직접 다루고 싶을 때는 어떻게 해야 할지.. R0, R1을 내 맘대로 다루고 싶을때 Assembly (.s)  >  Assembler로 compil > 기존 C 의 .o link   __asm >  C compiler가 이 다음부터는 Assembly구나~ 하고 넘어가줌 Inline Assembly 간단한 함수 하나 정도만 Assembly로 할때 간단 방법 {} 사이에 원하는 Assembly를 끼워 넣으면됨 ex) ..

2581번, 11653번, 1085번, 3009번

2581번bool 타입 : return 값이 true falsebool is_prime(int num) { if (num a)  1은 xb) sqrt(36) = 6 , 6 * 6= 36거듭제곱근이 제곱의 숫자를 넘기 전까지만 확인하면됨 c) 나머지는 소수이므로 true for문속에if (min_prime == -1) {    min_prime = i;} : i 값이 한번 저장 되면 다른 값으로 저장 되지 않음 11653번a) 2 4 6  8 10 은 다 2의 배수라 쭉 2로 나눔b) 3 부터 소수들은 따로 나눔 ( 거듭제곱근까지)c) 그러고도 남은 수 ex) 13 은 소수 이므로 그냥 출력 1085번1. x,y 에 있고, (0,0) ~ (w,h) 이므로2. 왼쪽 경계선 거리 : x3. 아래쪽 경계선..

C언어/백준 2024.11.20

7.5 sizeof , 8. array

sizeof : 단항연산자sizeof i + j >> ( sizeof i ) + j > size_t 로 implementation-defined size_t : unsigned integer type %lu , (unsigned long) sizeof() C99 trick %z(u) , sizeof()   subscripting or indexing배열 요소 안에 접근하고자 [ ] 안에 값을 쓰는것 배열의 범위를 벗어나면,,int a[10], i; for (i = 1; i 10; i++){      a[i] = 0;  } :  a[10] 은 a[9] 의 다음 주소로 넘어감 만약 i 가 다음 주소라면 i=0 이되어 무한루프를 돎 for문 1번조건 > 2번조건 > 3번조건>2번조건>3번조건,,, 두번 참조 ..

C언어/C - knk 2024.11.20