본문 바로가기
다른 mcu의 구조체 크기 sizeof() 크기가 다른 이유 [2023/09/07] First Start. 이 코드는 ide.goorm.io에서 테스트 되었습니다. 소나무 기운 , 전자제품 개발/생산 C언어에서 구조체의 크기가 (sizeof()) 다른 이유 같은 구조체의 sizeof()결과갑이 다른 경우이 생깁니다. mcu 및 컴파일러의 bit수에 따라 달라지는 경우가 대부분입니다. 8bit 컴파일러와 16bit, 32bit컴파일의 sizeof(구조체)의 크기가 다른 이유에 대해서 알아봅니다. C언어에서 구조체의 크기 규칙 두가지 하나. 각각의 멤버를 저장하기 위해서는 기본 4바이트 단위로 구성됩니다. 둘. 구조체 각 멤버 중에서 가장 큰 멤버의 크기에 영향을 받습니다. 예를 들어, 다음과 같은 구조체를 선언했다고 가정해 봅니다. struct S { char a;.. 2023. 9. 7.
(C) float를 uint16_t 2개에 나누어 저장하는 방법 (To save float by dividing it into two uint16_t) [2023/03/04] First Start. 소나무 기운 , 전자제품 개발/생산 (C) float를 uint16_t 2개에 나누어 저장하는 방법(To save float by dividing it into two uint16_t) float 값을 uint16_t 두개에 나누어 넣는 방법은 여러가지가 있을 수 있습니다. 하나의 방법은 float 값을 uint32_t로 변환하고, 그 값을 상위 16비트와 하위 16비트로 나누어 각각 uint16_t 변수에 저장하는 것입니다1. 예를 들면 다음과 같습니다. There can be several ways to divide the float value into two uint16_t. One way is to convert the float value to ui.. 2023. 3. 4.
'MergeCells' method of a 'TStringGrid' in C++ Builder(C++ Builder에서 'TSring Grid'의 'Merge Cells' 방법) [2023/03/01] First Start. 소나무 기운 , 전자제품 개발/생산 'MergeCells' method of a 'TStringGrid' in C++ Builder(C++ Builder에서 'TSring Grid'의 'Merge Cells' 방법) In C++ Builder, you can use the 'MergeCells' method of a 'TStringGrid' component to merge two or more adjacent cells into a single larger cell. C++ Builder에서 TSringGrid 구성 요소의 MergeCells 메서드를 사용하여 인접한 두 개 이상의 셀을 하나의 더 큰 셀로 병합할 수 있습니다. The syntax for t.. 2023. 3. 1.
strcmp [C][C++][python] [2022/04/05] Insert title image [2022/04/05] Add English subtitles [2022/04/05] Add C++ example [2022/04/04] First Start. 소나무 기운 , 전자제품 개발/생산 strcmp() [C][C++][python] strcmp() 함수를 이용하여 두 개의 문자열을 비교하는 방법을 알아보자. strcmp() 함수는 두개의두 개의 문자열을 서로 비교하여 두 개의 문자열이 같으면 0을 반환한다. 두 개의 문자열이 같지 않으면 0이 아닌 값을 반환한다. Let's find out hot to complare two strings using the strcmp() function. The strcmp() function comp.. 2022. 4. 4.
Example of Python using tkinter module. [2022/04/06] Add title Image [2022/02/24] The Beginning 소나무 기운 , 전자제품 개발/생산 Example of Python using tkinter module. Let's find out how to make a menu using tkinter module. tkinter is the basic module included inpython. Simple menu configuration example from tkinter import * from tkinter import filedialog def Loadfile(): filename = filedialog.askopenfilename(initialdir="/", title="Select file", f.. 2022. 2. 24.
python tkinter 이용 GUI 기본 예제 [2022/02/24] 소스코드 첨부 [2022/02/23] 처음 시작. 소나무 기운 , 전자제품 개발/생산 python tkinter 이용 GUI 기본 예제 tkinter는 파이썬 설치시 기본 설치되는 모듈이다. 추가설치가 필요하지 않아 간단하다. 위젯(버튼 등의 기능)이 많지 않다. 모양이 이쁘지 않다. 사용법이 간단하다. 이러한 장점들로 인해 빠르고 간단한 GUI프로그램을 만드는데는 아주 좋은 모듈이다. 비어 있는 폼 생성 from tkinter import * # tkinter 모듈 가져오기 root = Tk()# tkinter 생성 root.mainloop()# gui 시작 폼 꾸미기 from tkinter import * # tkinter 모듈 가져오기 root = Tk()# tkinter 생.. 2022. 2. 23.
python으로 실행파일(exe) 만들기 pyinstaller [2022/02/18] 처음 시작 소나무 기운 , 전자제품 개발/생산 python으로 실행파일(exe)만들기 pyinstaller python으로 만들어진 코드를 실행하기 위해서는 python이 설치되어 있어야 하면 내부에서 import한 모듈도 설치되어 있어야 한다. 하지만 개발자가 아닌 사용자에게 프로그램을 배포하기 위해서 python과 모듈을 설치하는 것은 어려운일이다. 이럴때 사용자에게 프로그램을 배포하기 위하여 (사용이 쉽게 하기 위해서) exe파일로 변환하여 전달하게 된다. 준비 : pyinstaller 설치 pip install pyinstaller 알아서 자동으로 실행된다. 실행파일 만들기 pyinstaller filename.py filename.py가 있는 곳에서 실행해 준다. dist.. 2022. 2. 18.
Python 소스 ( Serial Protocol, USART, 8-bit bootloader ) 분석 [2022/02/18] 제목 이미지 추가 [2022/02/11] 일부 업데이트 [2022/02/11] 처음 시작. 소나무 기운 , 전자제품 개발/생산 8-bit Bootloader F/W Update 프로그램 분석 microchip 8-bit bootloader와 serial통신을 통해서 F/W를 다운로드 하는 Python소스코드가 있어요. 시리얼 통신에 대한 좋은 예제가 될것 같아 분석해 보기로 했어요. 원본 소스는 아래 참고자료 링크를 참고하세요. 함수별로 분석해 보도록 할께요. main함수 if len(sys.argv) == 1: parser.print_help() sys.exit(1) args = parser.parse_args() # Command line arguments File = sys... 2022. 2. 11.
[요점만 파이썬] 클래스 심화 [2021/11/16] 처음시작 소나무 기운 , 전자제품 개발/생산 클래스 심화 어떤 클래스의 인스턴스인지 확인할 수 있어요. 클래스 변수, 멤버함수, 가비지 컬렉터에 대해서 알아보죠. 인스턴스 확인 # 클래스를 선언 class Bread: def __init__(self, name, price): # 생성자 self.name = name self.price = price def get_sum(self, cnt): # 메소드 함수 return self.price * cnt # 갯수를 받아 가격을 반환 # 빵 종류를 생성 bread = Bread("식빵", 1000) # 어떤 클래스의 인스턴스인지 확인 print(isinstance(bread, Bread)) print(type(bread)) 결과 PS C.. 2021. 11. 16.
[요점만 파이썬] 클래스 [2021/11/16] 처음작성 소나무 기운 , 전자제품 개발/생산 클래스 클래스와 객체에 대해서 알아볼께요. 변수는 물론 함수도 포함할 수 있어요. 클래스 선언 class 클래스 이름: 클래스 내용 클래스 이름은 첫글자를 대문자로 사용해요. 멤버 함수, 메소드 함수 클래스에 선언되어 있는 함수를 말합니다. 파이썬에서는 멤버함수, 메소드함수라고 불러요. 선언 및 사용 방법 # 클래스를 선언 class Bread: def __init__(self, name, price): # 생성자 self.name = name self.price = price def get_sum(self, cnt): # 메소드 함수 return self.price * cnt # 갯수를 받아 가격을 반환 # 빵 종류를 생성 # 클래스를.. 2021. 11. 16.
[요점만 파이썬] 모듈 만들기 [2021/11/10] 처음 시작 소나무 기운 , 전자제품 개발/생산 모듈 만들기 모듈을 직접 만들어보자 패키지 : 복잡하고 구조화된 모듈 모듈 만들기 모듈을 만들어보자 PI = 3.14 def number_input(): output = input("숫자 입력> ") return float(output) def get_circumference(radius): return 2*PI*radius def get_dirvle_area(radius): return PI * radius*radius test_module.py 내용 import test_module as test radius = test.number_input() print(test.get_circumference(radius)) print(tes.. 2021. 11. 10.
[요점만 파이썬] 외부 모듈 [2021/10/10] 처음시작 소나무 기운 , 전자제품 개발/생산 외부 모듈 다른 사람이 만들어서 배포하는 특수한 목적의 모듈들이 있어요. 설치하는 방법과 사용하는 방법과 몇가지 모듈의 소개를 해 봅니다. 모듈 설치하기 pip install 모듈 이름 이렇게 사용합니다. PS C:\Users\pinee> pip install beautifulsoup4 Collecting beautifulsoup4 Downloading beautifulsoup4-4.10.0-py3-none-any.whl (97 kB) |████████████████████████████████| 97 kB 437 kB/s Collecting soupsieve>1.2 Downloading soupsieve-2.3-py3-none-any... 2021. 11. 10.
[요점만 파이썬] 표준 모듈 [2021/10/30] 처음 시작 소나무 기운 , 전자제품 개발/생산 표준 모듈 import 명령을 사용하여 몇가지 표준 모듈을 사용해 봅니다. 파이썬에 기본 내장된 표준 모듈과 그외의 외부 모듈이 있습니다. math 모듈 import math 이렇게 사용합니다. 수학과 관련된 함수 모음입니다. >>> import math >>> math.sin(1) 0.8414709848078965 >>> 함수종류 몇가지 sin : 사인값 cos : 코사인값 found : 반올림 ceil : 올림 >>> round(1.5) 2 >>> round(2.5) 2 >>> round(3.5) 4 >>> round(4.5) 4 >>> round함수는 정수자리의 짝수 홀수에 따라서 결과 값이 달라집니다. 모듈에서 일부기능만 가져오.. 2021. 10. 30.
[요점만 파이썬]예외처리 고급 [2021/10/17] 처음시작 소나무 기운 , 전자제품 개발/생산 예외 처리 고급편 * 예외 종류를 구분하여 처리 예외 종류 구분 try: 예외가 발생할 수 있는 코드 except 예외의 종류 as 예외 객체 이름: 예외가 발생했을 때 실행할 코드 listNum = [10, 20, 30] try: number = int(input("숫자 입력>")) print(number) print(listNum[number]) except ValueError as exception: print("ValueError!") except IndexError as exception: print("IndexError") except Exception as exception: print("이외의 예외발생!") # 실행결과 P.. 2021. 10. 17.
[요점만 파이썬] 예외처리 [2021/10/17] 처음시작 소나무 기운 , 전자제품 개발/생산 예외처리 프로그램의 명령어에 예상되는 예외 상황이 있다면 이것을 예외처리를 통해서 처리할 수 있다. try except 를 사용하는 방법 try execpt else를 사용하는 방법 try execpt else finally를 사용하는 방법 pass키워드 try 구문 try: 기본 동작시 실행 except: 예외 발생시 실행 else: 예외가 발생하지 않았을때 실행 finally: 예외 상관없이 무조건 실행 try: number = int(input("숫자입력 : ")) print(number) except: print("숫자가 입력되지 않음") else: print("숫자 입력됨") finally: print("프로그램 종료") # 실.. 2021. 10. 17.
[요점만 파이썬] 튜플, 람다, 파일 제어 [2021/10/11] 대표이미지 추가 [2021/10/09] 처음 시작 소나무 기운 , 전자제품 개발/생산 튜플, 람다, 파일 제어 ㅁ 튜플 : 리스트와 비슷하다. 다만 한번 결정된 요소는 바꿀수 없다. ㅁ 람다 : 함수를 간단하고 쉽게 선언. 튜플 리스트와 비슷하지만 다른점은 한번 결정된 요소를 바꿀수 없다. 함수와 함께 많이 사용 선언방법 (데이터, 데이터, ) >>> tuple = ( 10, 20, 30, 40 ) >>> tuple[0] 10 >>> tuple[1] 20 >>> tuple[2] 30 >>> tuple[0] = 20 # 변경 불가능함 Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object doe.. 2021. 10. 10.
[요점만 파이썬] 재귀함수, 메모화, 조기리턴 [2021/10/02] 처음 작성 소나무 기운 , 전자제품 개발/생산 재귀함수, 메모화, 조기리턴 함수의 기본 사용에 대해서 알아보자 재귀함수 자기 자신을 호출하는 함수 def function(k, n): if n == k: return else: function(k+1, n) function(0, 2) 0 번째 실행 1 번째 실행 2 번째 실행 메모화 한번 계산된 내용을 저장하여 이후 재 계산하는 상황을 막는다. 재귀함수 계산시 반복되는 연산을 막아 시간을 줄인다. dic = {1: 1, 2: 1} def fib(n): if n in dic: return dic[n] else: output = fib(n-1) + fib(n-2) dic[n] = output # 저장 return output print(.. 2021. 10. 2.
[요점만 파이썬] 함수 선언, 함수 사용 [2021/09/27] 소나무 기운 , 전자제품 개발/생산 함수 선언, 함수 사용 함수 선언 방법 알아본다. 함수 사용 방법에 대해서 알아본다. 함수 선언 ㅁ 기본 모양 : def 함수 이름(변수): 작업할 문장 작업할 문장 return 변수 def print_jumsu(value, n): print(value) print(n) print_jumsu("수학점수 : ", 95) 수학점수 : 95 다양한 함수의 사용 ㅁ 기본 매개변수 def print_jumsu(value, n=50): print(value) print(n) print_jumsu("수학점수 : ") 수학점수 : 50 ㅁ 가변 매개변수 def print_month(*values, n=3): # values는 가변매개변수, n은 기본매개변수 f.. 2021. 9. 27.
[요점만 파이썬] 문자열, 리스트, 딕셔너리 사용하기 [2021/09/22] 소나무 기운 , 전자제품 개발/생산 문자열, 리스트, 딕셔너리 사용하기 문자열 변수형, 리스트형 변수형, 딕셔너리 변수형의 기본 함수를 살펴보고 직접 사용해 보자. 리스트 사용 >>> num = [ 10, 20, 30 ] >>> min(num) 10 >>> max(num) 30 >>> sum(num) 60 >>> num[::-1] # 뒤집기 [30, 20, 10] >>> >>> for i, val in enumerate(num): ... print("{}번째 값은 {}.".format(i, val)) ... 0번째 값은 10. 1번째 값은 20. 2번째 값은 30. >>> min, max, sum, enumerate() 딕셔너리 사용 >>> dic = { ... "1": "abc".. 2021. 9. 22.
[요점만 파이썬] for문, while문 [2021/09/21] 처음시작 소나무 기운 , 전자제품 개발/생산 for문, while문 범위를 지정하여 반복하는 반복문에 대해서 알아본다. 범위 사용법 range() 사용법 확인 >>> >>> range(3) # 범위 range(0, 3) >>> >>> >>> >>> list(range(3)) # 인자 1개, 범위를 지정하여 리스트 만들기 [0, 1, 2] >>> >>> list(range(4, 6)) # 인자 2개, 시작과 끝을 숫자로 지정, 6-1까지 정의됨. [4, 5] >>> list(range(6, 20, 3)) # 인자 3개, 6부터 20-1까지 3씩 증가 [6, 9, 12, 15, 18] >>> for문 for문 처리 >>> >>> for i in range(3): # 0부터 2까지 반복.. 2021. 9. 21.