분류 전체보기 507

파이썬 알면 좋은 내용!

1. 마름모 범위 체크 (↓마름모의 크기가 1일때) 1 1 1 1 1 위 격자에서 1이 있는 부분만을 마름모라고 표현한다면, (정사각형이고 한 변의 크기를 n이라고 하자) (0,0) ~ (n-1,n-1) 즉, 좌측 위부터 우측 아래까지 모든 영역에서 (a,b)가 마름모의 범위에 속하는지 구하는 방법! 중앙의 인덱스 값을 (cx, cy)라고 한다면 아래 범위 내부에 속해야 한다. |a-cx| + |b-cy| 1차원배열 tmp = [[1,2],[3,4]] result = sum(tmp, []) # tmp 내부의 리스트와 빈 리스트를 합친다는 의미로, 결국에 tmp 내부 리스트 값만 추출돼서 1차원배열로 저장됨 3. 격자에서 쓰면 좋은 스킬 (1) dx, dy 테크닉 (2) 빈 board를 만들어서 방문 체크..

STM32 개발 시, delay 함수 직접 구현해서 사용해보자 !

STM32F205RBT6 데이터시트를 참고하면 120 MHz 의 최대주파수로 동작하는 것을 확인 가능하다. 1us의 딜레이를 수행할 시 , asm("nop"); // CPU에게 아무런 작업도 하지 말라는 명령어 동작을 최대주파수만큼 실행한다 만약 여러가지 통신과 기능이 구현되어 있다면, 스코프에서 확인하면 살짝의 오차가 발생하는 것을 확인할 수도 있다! 1us 를 구현했으니, 10us->100us ->1ms 까지 함수를 만들어 사용이 가능하다. stm의 내장 딜레이 함수 사용하고 싶지 않을때, 만들면 좋다 !

F💻W/Coding 2023.12.06

Atmega로 UART, SPI 통신 구현

Atmega8A 칩을 사용해 UART, SPI 통신을 구현할 것입니다. Atmega를 Master칩으로 설정하고, GPIO 핀을 활용해 연결된 Slave칩들의 핀들까지 컨트롤 할 것입니다. 따라서 코드를 그대로 적용할 시 작동이 안 될수도 있습니다,,! 그리고 데이터 시트에서 기초 통신 코드를 어셈블리코드와 C코드로 간략하게 기술되어 있습니다. 저도 그 코드를 일부 참고해서 작성했으니, 웬만하면 데이터시트를 먼저 참고해주세요 :> 1. SPI 설정 최소한의 기능으로 동작하기 위해서 라이브러리를 사용하지 않고, GPIO핀을 조작해 직접 SPI 구현할 것입니다. - SPI_MasterInit() : 핀 설정 SCK, MOSI, NSS를 Output으로설정..

F💻W/Coding 2023.12.04

Python 언어로 조합 구현! (combi함수안쓰고!)

입력 변수 n, arr arr는 n*2개의 크기를 가지고 있다고 하자. import sys n = 2 arr = [1,2,3,4] numbers = [] def print_combination(arr): for i in arr : print(i, end=' ') print() # curr_idx : 탐색의 정도, 배열을 모두 탐색했을 때 종료해야 하므로 # curr_idx == 배열의 크기 가 재귀함수의 종료조건. (성공/실패 모두 포함) # 그리고 선택된 배열의 크기를 나타내는 cnt -> numbers 배열에 append 할 때마다 cnt+1 되고 있으므로. # 따라서 cnt의 크기는 몇 개를 선택했느냐, 조합 선택 여부를 살펴보는 조건. (성공일때만) def make_combination(curr_..