본문 바로가기

전체

[Raspberry Pi3] 라즈베리파이3 PWM을 이용한 LED 제어 PWM이란?- Pulse Width Modulation(펄스 폭 변조)- 디지털 출력으로 아날로그 회로를 제어하는 기법 (GPIO핀은 디지털이기때문에 PWM을 이용하여 아날로그 신호를 제어한다) duty : 한 주기(T)동안 HIGH가 차지하는 비율ex) duty cycle = 50%이면 2.5V의 효과를 낼 수 있다. PWM으로 LED 점멸회로도 라즈베리파이3 GPIO Pin 구조는 http://cccding.tistory.com/89 확인 led.c#include#include#include #define LED 1 int main(){pinMode(LED , OUTPUT); //핀 초기화if(wiringPiSetup()==-1)return 1; softPwmCreate(LED,0,100); //PW.. 더보기
[Raspberry Pi3] 라즈베리파이3 wiringPi 라이브러리설치 wiringPi 라이브러리란?- 라즈베리파이에서 c언어를 이용하여 프로그래밍할때 많이 사용하는 라이브러리- c언어를 이용하여 GPIO핀을 제어할 수 있는 기능을 제공 wiringPi 설치방법- sudo apt-get update- sudo apt-get upgrade- sudo apt-get install git-core (github를 통해 다운받기 때문에 , git-core 설치)- git clone git://git.drogon.net/wiringPi (wiringPi 디렉토리가 홈디렉토리에 설치됨)- cd wiringPi (wiringPi 디렉토리로 이동)- ./build (빌드 및 설치) wiringPi 설치확인- gpio -v (버젼 확인)- gpio readall (gpio pin heade.. 더보기
[Raspberry Pi3] 라즈베리파이3 GPIO Header GPIO 구조는 다음과 같다.- Physical : PCB상의 물리적인 GPIO 핀 번호- WiringPi : wiringPi 라이브러리 GPIO 번호- BCM : python에서의 GPIO 번호(브로드컴 칩에 의해 정의된 번호체계이다) Communication Interface (physical pin 기준)- UART , BT : 8 , 10- I2C : 3 , 5- SPI : 19 , 21 , 23 , 24 , 26- ID EEPROM : 27 , 28 더보기
[Device Driver] 대소문자 변환 Device Driver 만들기 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 1. 초기설정 - mkdir device --> device 디렉토리에 examdrv.c 와 Makefile을 만든다. examdrv.c/*뼈대 작성*/#include #include #include #include #include #include #include #define DEVICE_NAME "examdrv"#define MYDRV_MAX_LENGTH4096#define MIN(a, b) (((a) < (b)) ? (a) : (b)) struct class *myclass;struct cdev.. 더보기
[Device Driver] A~Z 출력 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 1. 초기설정 - mkdir device --> device 디렉토리에 mydrv.c 와 Makefile을 만든다. mydrv.c/*뼈대 작성*/#include #include #include #include #include #include #include #define DEVICE_NAME "mydrv"#define MYDRV_MAX_LENGTH4096#define MIN(a, b) (((a) < (b)) ? (a) : (b)) struct class *myclass;struct cdev *mycd.. 더보기
[Kernel Porting] 커널포팅 최종실습-2 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 exam.c#include #include #include #include #include #include #include #include #define tact "/dev/tactsw"#define dot "/dev/dot" void menu();void Inside();void Outside();void UptoDown();void DowntoUp();void Center();int main(){int tact_d, i = 0;unsigned char c; tact_d = open(tact, O_.. 더보기
[Device Driver] 커널에 Device Driver 등록 및 실행 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 1. 초기설정 - mkdir device --> device 디렉토리에 skeleton.c 와 Makefile을 만든다. skeleton.c/*뼈대 작성*/#include #include #include #include #include MODULE_LICENSE("GPL"); int result; int skeleton_open(struct inode *inode, struct file *filp) {printk("Device Open!!\n");return 0;} int skeleton_releas.. 더보기
[Device Driver] 커널에 Systemcall 등록 및 실행 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 1. 초기설정 - cd ~/Smart4412/Development/Source/Kernel/kernel_4412/kernel- hellocall.c를 만든다 hellocall.c#include asmlinkage long sys_hellocall(){printk("==========\n");printk("Hello ~ sys call\n");printk("==========\n");return 0;} 2. Kernel에 코드 등록- cd /Smart4412/Development/Source/Kerne.. 더보기
[Device Driver] Kernel에 hello.c 등록 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 1. 초기설정 - mkdir device --> device 디렉토리에 hello.c 와 Makefile을 만든다. hello.c#include#include#include MODULE_LICENSE("GPL"); int module_start_te(){printk("Hello\n");return 0;} int module_end_te(){printk("Bye\n");return 0;} module_init(module_start_te);module_exit(module_end_te); Makefil.. 더보기
[Kernel Porting] 커널포팅 최종실습-1 작업 환경-메인 OS : Windows 8.1K(Intel Core i5-4590)-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)-장 비 명 : Hybus-Smart4412 문제1. 안쪽에서부터 점점 불이 켜지도록 만든다.2. 바깥쪽에서부터 점점 불이 켜지도록 만든다.3. 형광판 처럼 숫자 0~9 까지 돌아가도록 만든다.4. 두자리 이상 숫자를 형관판처럼 돌아가도록 만든다.(키보드로 숫자를 입력받는다)5. HELLO WORLD~! 를 형관판 처럼 만든다. spin.c#include#include#include#include#include#include#include#include //디바이스 드라이버가 들어있는 경로 위치를 적어논것 #define tact "/dev/ta.. 더보기