Embedded 썸네일형 리스트형 Real-Time Kernel Concepts 1. Real-Time Kernel Concepts 우선 real-time system은 다음과 같은 두가지로 나뉜다. SOFT real-time system System이 task를 가능한 빨리 수행하나 반드시 명시된 시간안에 끝마칠 필요는 없는 system HARD real-time sysem Task들이 정확히 명시된 시간안에 끝나야 하는 system 본서는 SOFT real-time system을 가정한다. 1.1 Critical Section of Code 우리가 코드의 일정 부분을 critical section으로 나눈다는 말은 critical section이 수행될 때에는 interrupt가 disable됨으로써 발생하지 않도록 한다는 의미이다. 1.2 Task * 하나의 task는 prio.. 더보기 dsPIC Programming Notes - Debugging Startup Code Microchip dsPIC Programming Notes Microchip has provided very good documentation and tutorial on their website, you can get yourself started with the resources. Here I'd like to present a few notes from my experience of programming with MPLAB IDE and dsPIC30F family chips to save your time. 1. Startup Function If you use the Project Wizard in MPLAB to create a project, you need to supply a main .. 더보기 dsPIC CNC servo Project Open source Project Description This project was developed as an inexpensive way to drive small dc brushed motors as positioning servos for use on a desktop sized CNC machine. The board is interfaced to the PC through 2 pins of a parallel port. The drive signal on these pins is known as quadrature drive. The power stage consists of a power op amp driven in constant current mode. The internal PIC processor (.. 더보기 MPLab C30 printf 사용하기 write()함수를 오버라이딩. #include 추가하고 아래 write()함수를 추가해 주면 된다. int write(int handle, void *buffer, unsigned int len) { int i; for (i = len; i; --i) { char c = *(char*)buffer++; U1TXREG = c; while(!U1STAbits.TRMT); } return(len); } 그리고 PIC은 Heap영역을 따로 할당해 주어야 한다. MPLAB Project Builder Option에서 힙영역을 할당해 주면 된다. 물론 printf를 사용하면 20%정도 오버헤드가 걸린다. printf 사용하지 않았을 경우 section address length (PC units) length (.. 더보기 AVR Fuse bit CKSEL [0..3] = 1 SUT[0..1] = 1BootEN = 0BootLevel = 1Boot RST = 1Boot Size = "00"EESAVE = 0CKOPT = 0JTAGEN = 0OCDEN = 1WDTON = 1M103C = 1 Memory Lock Bit & Fuse Bit 설정스나군http://digitalab.paichai.ac.kr/?document_srl=843572008.01.14 00:44:49 (*.222.238.187)16161 / 00http://digitalab.paichai.ac.kr/?document_srl=%241 광운대학교 표윤석님의 자료입니다. 원본글 : http://cafe.naver.com/robit/42 우리는 아래 그림과 같은 설정 화면을 많이 봤을 .. 더보기 IAR Visual State UML 기반 스테이트 챠트로 코드 생성 - IAR Workbech와 링크 더보기 MCU 늦게 꺼지게 하기(데이터 백업 등을 위해...) 온/오프 기능 제어하는 마이크로컨트롤러, DSP 회로 ( 01 Apr 2004 ) 편집: Bill Travis 글: Dirk Gehrke, Texas Instruments(독일, 프레이징) 많은 애플리케이션에서 파워 서플라이는 하나의 온/오프 버튼 스위치로 점멸을 실행한다. 보통 시스템은 마이크로프로세서나 DSP가 처리 중인 프로세싱 기능이나 작업 부하에 관계 없이 스위치를 끌 수 있다. 그림 1의 소형 회로는 마이크로컨트롤러 또는 DSP 회로가 온/오프 기능을 자유자재로 사용할 수 있게 한 것이다. 이 회로를 사용하면 마이크로컨트롤러 또는 DSP 회로가 온/오프 기능을 갖추게 된다. 따라서 시스템이 파워 서플라이를 셧다운하는 명령을 전송하기 전에 데이터 처리 및 데이터 저장 같은 필요한 작업을 수행할 .. 더보기 Serial 통신 개념 잡기 1) Serial 통신 개념잡기 이번에는 Serial 통신에 대해서 기술을 하도록 하겠습니다. 거의 모든 사람들이 Serial 통신 하면 굉장히 난해 하다는 생각들을 합니다. 실은 필자도 Serial 통신에 대해 알기 전까지는 개념조차 파악을 못했고 정말 어려운 부분이구나 라는 막연한 생각만 했었습니다. 그러나 그렇게 어렵게만 생각되던 Serial 통신은 사실 알고나면 아무것도 아닌 것을 왜 그 시절엔 어렵게만 느껴졌을까? 하는 생각을 지금 해 봅니다. 왜 어려울까요? 그것은 책이 제대로 가르쳐주기 때문입니다. ??????????? 책은 그야말로 정석을 잘 가르쳐 주지요.... RS-232C Cable연결부터 시작해서 CCITT,Vxx가 어쩌고 저쩌고.......정말 제대로 가르쳐 주지요? 물론 책들이 .. 더보기 RS-232 시리얼통신 RS-232 RS-232C (Recommended Standard 232 Revision C)는 컴퓨터가 모뎀과 같은 다른 직렬장치들과 데이터를 주고받기 위해 사용하는 인터페이스이다. 컴퓨터로부터 나오는 데이터는 보통 마더보드 상에 있는 UART 칩에 의해 DTE 인터페이스로부터 내장(또는 외장) 모뎀이나 기타 다른 직렬장치들로 전송된다. 컴퓨터 내에 있는 데이터는 병렬회로를 따라 흐르지만 직렬장치들은 오직 한번에 한 비트씩만을 처리할 수 있기 때문에, UART 칩이 병렬로 되어 있는 비트들을 직렬 비트 열로 변환시킨다. 모뎀이나 다른 직렬 장치와 RS-232C 표준에 입각하여 통신하는 PC의 DTE 에이전트도 역시, DCE 인터페이스라고 불리는 보완적인 인터페이스를 가지고 있다. 컴퓨터에서 .. 더보기 시리얼 통신 정리 RS-232C (Recommended Standard 232 Revision C)는 Computer가 Modem과 같은 다른 Serial Device들과 Data를 주고받기 위해 사용하는 Interface이다. Computer로부터 나오는 Data는 보통 MainBoard상에 있는 UART Chip에 의해 DTE Interface로부터 내장(또는 외장) Modem이나 기타 다른 Serial Device들로 전송된다. Computer내에 있는 Data는 병렬회로를 따라 흐르지만 Serial Device들은 오직 한번에 1bit씩만을 처리할 수 있기 때문에, UART Chip이 병렬로 되어 있는 bit들을 Serial bit열로 Converting 한다. Modem이나 다른 Serial Device와 RS-.. 더보기 패리티 비트란? 패리티 비트(Parity Bit) 네트워크나 하드웨어에서 자동적으로 에러가 검출되게 하는 방법이죠. odd parity와 even parity가 있습니다. 보통 7개의 bit 뒤에 하나의 parity bit을 추가하여 에러를 검출하는 방법을 사용합니다. 예를 들어봅시다. 0100010 1000101 1110101 이런 데이터를 전달하려고 할 때, 각 bit뒤에 parity bit 하나를 추가하는데, 여기서는 even parity를 사용한다고 하면, parity bit하나를 추가하여, 각 줄에 있는 1의 수가 짝수가 되게합니다. 다음과 같이 추가하면 되겠죠~ 0100010 0 1000101 1 1110101 1 이렇게 하면 각 줄의 1의 수가 모두 짝수가 되게됩니다. 여기서 가장 마지막에 있는 bit을 p.. 더보기 prinf를 이용한 ATMEGA128 USART 통신 //****************************************************************************************************// // // // Compiler : CodeVision // MCU : ATMEGA 128 // Clock : 16MHz // //****************************************************************************************************// #include #include //*************************************************************************************************.. 더보기 ATMEGA128을 이용한 LCD(캐릭터)제어 - 4bit //###################################################################// // 캐릭터 LCD 제어 프로그램 // Compiler : CodeVision // Productor: Shim Woo Sung // //RS : PORTB.0 //RW : PORTB.1 //E : PORTB.2 //Data line : PORTD //###################################################################// #include #include #include //###################################################################// // // #define H .. 더보기 이전 1 다음