2024/11 45

GPIO제어

GPIO output level  : High : 3.3 v , Low 0v  > HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 1) enum  reset = 0u ; set;    //set 은  1  //reset이 1이면 > set =2 GPOI mode  push pull : s/w // mcu 3.3v를 제어 open drain : s/w :short > GND                       :open > floating  floating  떠다니는 상태  >전류가 흐를지 말지 모름 >> pull-up 저항 (R) : 위쪽 5v 로 묶여짐 // 저항 > 전류 i 가 생김 pull -down 저항 : 저항을 그라운드쪽에 > s/w 제어 전까진..

2869번, 5086번, 2501번, 9506번, 1978번

2869A : up, B : down , V : 목표1. 정상에 올라간 즉, 마지막날은 미끄러지지 않음  : V - B  // 마지막 미끄러지는 거리를 빼면 > 총거리 2. 걸린 일수 : 총거리 / 하루에 가는거리   : (V-B) / (A-B)3. if( (V - B) % (A - B) != 0 ) { days ++; } 나머지가 0 이아니면 하루를 더 더해줘야함 5086A, B (첫째, 둘째) 1.   B % A == 0  : factor2.   A % B == 0  :multiple 2501for문, n k 로 받음 1. 약수 :  A % i  == 0  > count++ 2. count == k > printf( "%d" ,i ), return 0; 9506번약수 : n/2 보다 클 수 없음 ex..

C언어/백준 2024.11.19

1193번

1. 대각선의 개수는 분수의 개수랑 같음2.  그때까지 대각선을 1부터 빼주고 대각선 ++ 1. 홀수 대각선 : 분자 감소, 분모 증가2. 짝수 대각선 : 분자 증가, 분모 감소#include void find_fraction(int X) { int diagonal = 1; // X가 속한 대각선 번호를 찾기 while (X > diagonal) { X -= diagonal; diagonal++; } // 대각선 번호에 따라 분수 계산 int numerator, denominator; if (diagonal % 2 == 0) { // 짝수 대각선: 아래에서 위로 numerator = X; d..

C언어/백준 2024.11.16

4장

C의 특징:  명령문 보다는 표현식 ( 수식) 에 중점을 둠 변수 : 프로그램 실행될 때 계산될 값상수 : 변하지 않는 값 산술연산자% 빼고는 혼합가능 1. int float 혼합 : foat2. 둘다 정수일때 / 를 하면 소수는 버림3. % : 둘다 정수여야함4.(c99) 나눗셈 ' / ' 의 결과는 0을 향해 버려짐  5. i % j의 값은 i와 같은 부호를 가짐 (첫번째 변수의 부호)  implementation-definedc standarad 는 의도적으로 일부분을 명시안한채로 둠 > sw 가 채움> 구현마다 프로그램동작이 달라짐언어의 목표는 효율성 = 하드웨어 동작과 일치해야함의존x + 정의된 구현은 문서화 되어야함, > 하드웨어 동작과의 일치를 통한 효율성을 끌어올리기 위해 일부분을 구현하지..

C언어/C - knk 2024.11.16

ACR 레퍼런스 메뉴얼

데이터시트 분석 > 1. 레퍼런스 메뉴얼에서 검색 ex) ACR //reseverd 는 예약된곳 사용x 2. 설명하는거 나오면 복사  The FLASH_ACR register is used to enadble/disable prefetch and half cycle access, and to control the Flash memory access time according to the CPU frequency.  The tables below provide the bit map and bit descriptions for this register 3. 일단 번역한번 해봄  FLASH_ACR 레지스터는 프리페치(prefetch)와 하프 사이클 접근을 활성화/비활성화하고, CPU 주파수에 따라 플래시 메모..

HAL_Init();

startup 코드(asm) 를 거쳐 main.c 로옴 #define asd \( \ : 다음줄까지도 이어짐) 디버깅할때 if define 안에 안들어오면 회색배경으로 바뀜 > ide의 편리성  (FLASH->ACR |= FLASH_ACR_PRFTBE)typedef struct {   __IO uint32_t ACR;   __IO uint32_t KEYR;   __IO uint32_t OPTKEYR;   __IO uint32_t SR;   __IO uint32_t CR;   __IO uint32_t AR;   __IO uint32_t RESERVED;   __IO uint32_t OBR;   __IO uint32_t WRPR; } FLASH_TypeDef; 1. 하나하나 찾기 #define FLASH (..

printf, scanf

printf문자열과 문자열에 지정된 값 을 출력하도록 설계 >> 그래서  " " (큰 따음표)로 묶어준거였음 char h[] = "hello";printf(h);printf (문자열, 표현식₁, 표현식₂, ...) ;  변환지정자 % : 값을 내부 형식(이진수)에서 출력 형식(문자)으로 변환하는 방법을 지정ex) %d : 2진수를 10진수 문자열로 바꿔라  일반형 : %m.pX or %-m.pX( m,p 정수  ,X : 문자)// p 생략시 마침표도 사라짐 // m : 문자가 출력될 최소한의 수출력할 값이m보다 적다면 > 오른쪽 정렬 ( 공백이 들어감)// -m : 왼쪽정렬 %fex) %10.2f  %4d, 123 > 공백123%4d, 12345 > 12345 // m: 최소한의 수!%-4d, 123 :..

C언어/C - knk 2024.11.15

2738번, 2566번, 2563번, 2745번

2738 이차원 배열은 행 우선arr[3][4] : arr[0][0], arr[0][1], arr[0][2], arr[0][3], arr[1][0], arr[1][1], arr[1][2], arr[1][3]. arr[i][j] == *(arr[i] + j) arr[2][3]== *(arr[2] + 3)arr[2] == arr[2][0] 2566최대값을 찾으면 , i 와 j 배열 하나씩 더해주기 // 1행부터 시작이므로이차원 배열로 선언 > 일차원 for문으로 입력받으면..words[5][16] , for > words[i] : (입력) abcde   words[0][0] = 'a', words[0][1] = 'b', words[0][2] = 'c' ,, 이렇게 저장됨 주의)) col strlen(word..

C언어/백준 2024.11.14