분류 전체보기 474

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_..

[Python] 백준 1926 그림 - bfs알고리즘

참고 : https://www.youtube.com/watch?v=ansd5B27uJM from collections import deque import sys input = sys.stdin.readline # 세로, 가로 n,m = map(int, input().split()) map = [list(map(int, input().split())) for _ in range(n)] # 방문횟수 - 가로m개인 false리스트가 세로로 n개 있어야함 chk = [[False]*m for _ in range(n)] # dy, dx는 그냥 외우기 - 좌표 이동에 사용됨 dy = [0,1,0,-1] dx = [1,0,-1,0] def bfs(y, x) : rs = 1 q = deque() q.append((y,..

[Python] 지그재그로 숫자 채우기 (이중배열)

출처 : 코드트리 n * m크기의 직사각형에 숫자를 0부터 순서대로 1씩 증가시키며 왼쪽 위에서부터 시작하여 다음과 같이 지그재그 모양으로 숫자들을 쭉 채우는 코드를 작성해보세요. import sys a, b = map(int,sys.stdin.readline().split()) # 행, 열 buf = [[0]*b for _ in range(a)] count=0 for col in range(b): # 열 if col % 2 == 0: # 짝수열이면 for row in range(a): buf[row][col] = count count += 1 else: # 홀수열이면 for row in range(a-1, -1, -1): # 0~n-1까지 역순으로 buf[row][col] = count count+=1..