2023/12 15

[Python] 객체지향에 대하여 (1) 클래스와 객체

- 객체지향 프로그래밍이란? OOP(Object Oriented Programming)라고도 하는 객체지향 프로그래밍이란 프로그래밍 방법론이라고 생각하시면 됩니다. 기존에는 데이터 선언하고 데이터를 처리하는 함수들로 프로그램이 구성되었다면, 객체지향 프로그래밍에서는 프로그램을 객체(object)로 나누고 이 객체들의 상호작용으로 프로그램을 구성시킨 방법이라고 할 수 있습니다. 기존에는 함수를 선언하면 복사해서 재사용할 수 없지만, 객체지향 프로그래밍에서는 여러 번 복사해서 재사용할 수 있다는 장점이 있습니다. 여기서 객체는 데이터뿐만 아니라 데이터를 처리하는 함수인 메소드도 포함합니다. 즉, 객체는 데이터와 메소드의 집합이라고 보시면 됩니다. 객체지향 프로그래밍은 다음과 같은 장단점이 있습니다. 장점 코..

LIN overview (4) LIN 검증 (with transceiver)

제가 설계한 LIN controller IP를 SOC에 올려서 FPGA 합성을 하고 데이터 통신 test를 진행했습니다. 제가 설계한 LIN IP끼리 한 test는 2가지였는데요, 이 글에서는 진행한 test들에 대해 설명해보고자 합니다. - TEST without transceiver 먼저는 FPGA 보드 상에서 transceiver 없이 io 핀끼리 연결해서 test를 진행했습니다. 원래 LIN 통신은 1-wire 통신이지만 저희가 구매한 LIN transceiver는 보드와 연결되는 부분이 TX/RX로 나누어져 있어서 lin_out/lin_in과 lin_oe signal을 만들어서 설계를 하고 보드 핀에 할당했습니다. 그래서 test 환경을 그림으로 나타내면 다음과 같습니다. LIN IP를 2개 넣..

Ch1 Seminar/IP 2023.12.27

[C언어] 코드 실행 방법, 상수와 변수, printf

지난 글에서 C언어 프로그래밍을 위한 환경 세팅 방법에 대해 알아보았습니다. 이번 글에서는 실제 C언어 프로그래밍을 하기 위한 소스 파일 추가하는 방법과 printf 활용예시를 보겠습니다. 2023.12.20 - [프로그래밍] - [C언어] C언어의 특징과 환경세팅 [C언어] C언어의 특징과 환경세팅 - C언어의 특징 흔히 C언어는 대부분의 프로그래밍 언어의 기본이 되는 언어입니다. 그래서 다른 언어보다 익히기 어렵지만 C언어를 배우고 나면 다른 언어를 쉽게 익힐 수 있습니다. 다음으로 veriln-e.tistory.com - 소스 파일 추가 솔루션 탐색기에서 소스파일-추가-새 항목을 선택하여 소스파일을 추가할 수 있습니다. 그럼 다음과 같은 창이 나옵니다. 가장 위에 있는 항목인 c++ 파일을 선택하시..

프로그래밍 2023.12.22

[C언어] C언어의 특징과 환경세팅

- C언어의 특징 흔히 C언어는 대부분의 프로그래밍 언어의 기본이 되는 언어입니다. 그래서 다른 언어보다 익히기 어렵지만 C언어를 배우고 나면 다른 언어를 쉽게 익힐 수 있습니다. 다음으로 연동성이 굉장히 좋습니다. 그래서 오늘날 사용되고 있는 대부분의 컴퓨팅 시스템에서 사용할 수 있다는 장점이 있습니다. 그래서 C언어로 짠 프로그램은 다양한 하드웨어에서 실행할 수 있습니다. 또한 절차 지향 언어이기 때문에 코드가 복잡하지 않습니다. 그말은, 코드를 유지보수하는 것이 쉽다는 말입니다. 마지막으로, C언어는 간결합니다. 그래서 컴파일된 프로그램의 용량이 작고 실행속도가 빠르다는 장점이 있습니다. 위의 장점으로 인해 반도체 설계분야에서 검증 프로그래밍 용 언어로 사용됩니다. - 환경설정 먼저 visual s..

프로그래밍 2023.12.20

[Python] 파일 활용 방법 (2) 파일 쓰기

- 파일 쓰기 지난 글에 이어서 이번에는 파일에 쓰는 코드를 작성해보겠습니다. file = None String = "" file = open("D:\Download\Python\data1.txt","w",encoding="utf-8") while True : String = input("파일에 쓸 내용: ") if String != "" : file.writelines(String + "\n") else : break file.close() print("파일 쓰기 완료") >> 파일에 쓸 내용: 엄마가 >> 파일에 쓸 내용: 섬그늘에 >> 파일에 쓸 내용: 굴따러 >> 파일에 쓸 내용: 가면 >> 파일에 쓸 내용: >> 파일 쓰기 완료 코드를 보면 먼저 변수 선언을 하고 파일 경로를 지정했습니다. 지금..

[Python] 파일 활용 방법 (1) 파일 읽기

- 파일 처리에 활용하는 함수 open: 불러올 파일을 지정하고 읽기인지 쓰기인지 정함 read: 파일 전체 내용을 문자열로 읽어온다 readline: 하나의 줄만 읽어옴(txt) readlines: 파일 전체 내용을 한 줄씩 리스트로 만들어줌(txt) write: 파일에 씀 writelines: txt 파일에만 씀 open 함수를 통해 파일을 열 수 있습니다. input 되는 변수에 따라 모드를 지정할 수 있는데요, 변수는 다음과 같습니다. r: 읽기, 생략 시 읽기가 기본 모드 w: 쓰기, 기존 파일이 있을 경우 덮어쓰기 r+: 읽기, 쓰기 a: 쓰기, 기존 파일이 있을 경우 이어서 쓰기 t: 텍스트 파일용 b: 바이너리 파일용 - 파일 읽기 그러면 예시를 통해 더 자세히 알아봅시다. 먼저 저는 D:..

[Python] 모듈에 대하여

지금까지는 하나의 .py 파일에만 코드를 작성하여 프로그래밍을 해왔습니다. 그런데 이렇게 작업하면 시간이 갈수록 스크립트가 너무 길어진다는 단점이 있습니다. 그래서 많이 쓰는 함수를 한 파일에 지정해 놓고 그 함수들을 import 하여 더 편리하게 작업할 수 있습니다. 그러면 어떻게 파일을 모듈화 하여 사용하는지 알아보도록 하겠습니다. - 모듈 파일 생성 먼저 함수들을 정의할 파일을 만들어야겠죠? 저는 function.py라는 파일로 저장하도록 하겠습니다. def plus(*value) : result = 0 for i in value : result += i return result def minus(x1,x2) : result = 0 result = x1 - x2 return result def mu..

[Python] local 변수와 global 변수

이전 글에서 함수에 대해 알아봤습니다. 이번 글에서는 함수에서 사용되는 변수인 로컬 변수와 글로벌 변수에 대해 알아보겠습니다. - local 변수와 global 변수의 차이 한 프로그램에서 여러 개의 함수를 선언할 수 있습니다. 그런데 local 변수는 한 함수에서만 사용이 가능하지만 global 변수는 모든 함수에서 사용가능하다는 차이가 있습니다. 이 두 변수는 선언되는 위치에 따라 local 변수인지 global 변수인지 정해집니다. 만약 변수가 함수 정의 파트 안에 선언되면 local 변수, 함수 밖에서 선언되면 global 변수가 됩니다. 우선 먼저 local 변수를 활용하는 예시를 보겠습니다. #local 변수 활용 #함수 definition def veriln_print1() : a = 5 p..

[Python] 함수 input의 여러 형태

함수에는 input 값과 return 값을 지정할 수도, 지정하지 않을 수도 있습니다. 그 예시는 이전 글에서 보여드렸는데요, 다시 한번 보도록 하겠습니다. 1. input 값과 return 값이 있는 함수 #함수 definition def add(x1,x2) : result = 0 result = x1 + x2 return result #실제 동작 코드 a = int(input("a의 값을 입력하세요: ")) b = int(input("b의 값을 입력하세요: ")) c = add(a,b) print(c) >> a의 값을 입력하세요: 15 >> b의 값을 입력하세요: 21 >> 36 2. input 값은 있고 return 값이 없는 함수 #함수 definition def veriln_print(a) : ..