본문 바로가기

[Microchip]/PIC12F_PIC10F

(14)
[PIC10F-SS EVM] ADC테스트 [PIC10F-SS EVM] ADC테스트 PIC10F220에는 2채널 8bit ADC가 내장되어 있다. PIC10F220 ADC테스트 코드 #define ADC_INIT() Sbi(ADCON0, BIT7);Sbi(ADCON0, BIT6);Sbi(ADCON0, BIT0) #define ADC_CH0() Cbi(ADCON0, BIT3);Cbi(ADCON0, BIT2) #define ADC_CH1() Cbi(ADCON0, BIT3);Sbi(ADCON0, BIT2) #define ADC_CH1() Sbi(ADCON0, BIT3); ADRES ADCON0 레지스터
[PIC10F-SS EVM] 타이머 테스트 - PWM을 이용한 LAMP 밝기 제어 [PIC10F-SS EVM] 타이머 테스트 - PWM을 이용한 LAMP 밝기 제어 PIC10F200/PIC10F220 은 하나의 8비트 타이머/카운트가 있다. 워낙 심플한 CPU라 인터럽트는 지원하지 않지만 폴링모드로 충분히 타이머 타운터를 활용할 수 있다. 타이머 소스로 내부 클럭이나 외부 입력핀이용할 수 있다. PIC10F220 타이머 제어 예제 소스코드 //타이머 시작 OPTION = 7; TMR0 = 0x00; while(1) { //타이머 동작 if(TMR0==0xFF) { TMR0=0; cnt++ Led1Toggle(); } } 타이머 제어를 위한 레지스트는 따로 없고 OPTION레지스터에서 간단한 설정이 가능하다. PIC10F220 타이머 테스트 동영상 타이머를 이용하여 소프트웨어 PWM출력..
[PIC10F-SS EVM] PIC10F220 테스트 보드 제작 [PIC10F-SS EVM] PIC10F220 테스트 보드 제작 세계에서 가장 작은 MCU인 PIC10F 시리즈중 새로운 PIC10F220 테스트 보드를 제작 했다. SOT23-6P의 소형 패키지에도 불구 하고 ADC까지 추가 되어 좀더 활용도가 좋아 졌다. PIC10F220 256 x 12 16 x 8 PIC10F222 512 x 12 23 x 8 PIC10F220/PIC10F222 핀맵 [PIC10F-SS EVM] 관련 회로도 PICKIT2와 동일한 핀맵이며 테스트용 LED가 실장 되어 있다. 간단히 테스트 하기 쉽도록 Pickit2 핀맵에 맞도록 제작 했다. 참고로 모 쇼핑몰에서 현재(2011.05) 480원에 판매하고 있다.
[PIC12F EVM] Soft UART 테스트 [PIC12F EVM] Soft UART 테스트 소형 MCU에서 UART를 이용하면 디버깅 하기에 편리한 점이 많다. PIC12F683 보드도 Soft UART를 이용하여 시리얼 제어 [LCD Module] 에 디버깅 정보를 표시하는 테스트를 해 보았다. 먼저 Serial.c 코드를 좀 수정하여 기존 코드와 호환 가능하도록 수정한다. // GPIO.0 as UART Rx, and 1 as Tx #define SOFT_UART_INIT() do{ \ TRISIO = 0x39;\ ANSEL = 0x00;\ GPIO = 0;\ Soft_UART_Init(&GPIO,0, 1, 9600, 0 );\ }while(0) #define U0_PutByte Soft_UART_Write void U0_Init(unsign..
[PIC12F EVM] mikroC PRO for PIC 사용기 [PIC12F EVM] mikroC PRO for PIC 사용기 mikroC 는 mikro사의 PIC컴파일러이다. 무료 버젼은 Microchip사 전체 PIC MCU를 지원하지 않지만 PIC12F683은 무료로 컴파일 할 수 있다. 용량도 작고 나름 라이브러리도 잘 구성되어 있어 사용하기는 상당히 편리한것 같다. 아래 링크에서 다운로드 가능하다. http://www.mikroe.com/eng/product_downloads/download/ 프로그램 다운로드 후 설치하고 새로운 프로젝트를 생성하면 위자드가 실행된다. [PIC12F EVM] 보드를 위해 PIC12F683 을 선택한다. 라이브러리 선택 제공되는 라이브러리를 이용하면 편리한 점이 많다. 이렇게 하면 자동으로 프로젝트가 생성되고 특별한 기본 설..
[PIC12F EVM] ADC테스트 [PIC12F673 EVM] ADC테스트 PIC12F 에는 10비트 ADC가 4채널 포함되어 있다. 아래는 PIC12F683의 ADC블록도 이다. 사용법은 간단하다. ADCON0레지스터에 초기화 해주고 ADRES레지스터 값을 읽으면 된다. PIC12F683 ADC 제어 코드 void ADC_Init(void) { Cbi(ANSEL, BIT3); Sbi(TRISIO, BIT4); ADCON0 = 0x8D; } unsigned int ADC_Read(unsigned char Ch) { if(Ch == 0)Cbi(ADCON0, BIT2|BIT3); else if(Ch == 1){Sbi(ADCON0, BIT3);Sbi(ADCON0, BIT2);} else if(Ch == 2){Sbi(ADCON0, BIT3);C..
[PIC12F EVM] TIMER0 테스트 [PIC12F EVM] TIMER0 테스트 TIMER0의 기본 구조는 아래와 같이 입력 클럭을 4분주 하고 2클럭 마다 TMR0를 증가 시킨다. 만약 간단히 대략 1ms를 만들려 다음과 같이 계산할 수 있다. 8Mhz 입력 클럭일 경우 8분주 했을때 타이머 오버플로우 인터럽트 시간은 8Mhz/4/8 = 4us => 256클럭마다 한번씩 오버플로 발생하므로 1.024ms 이다. TIMER0초기화 OPTION레지스터 void InitTimer0(void) { OPTION = 0; OPTION |= BIT1; //prescaler - 1/8 T0CS = 0; // Timer increments on instruction clock T0IE = 1; // Enable interrupt on TMR0 overfl..
[PIC12F EVM] HI-TECH C컴파일러에서 Delay 함수 사용하기 [PIC12F EVM] HI-TECH C컴파일러에서 Delay 함수 사용하기 이전, "HI - TECH PICC - Lite"에는 예제로 delay.h, delay.c라는 프로그램이 포함되어 있었는데 업데이트 버전 "HI - TECH C PRO for the PIC10/12/16 MCU Family (Lite mode)" 는 이 파일이 없다. 예제를 보면 만 선언하고 사용하고 있는데 를 열어 보니 아래와 같이 선언되어 있다. #pragma inline(_delay) extern void _delay(unsigned long); // NOTE: To use the macros below, YOU must have previously defined _XTAL_FREQ #define __delay_us(x) ..