PIC16f84a를 사용해서 1초 타이머를 만드는 자료를 정리해봤습니다.

반나절 정도 지켜봤는데.. 음.. 오차가 20초 가량 나더군요.

아무래도 계산 공식에서 소수점으로 나오는 부분에 대한 오차인듯 한데요.

초보자인 저로서는 아직 잘 모르겠네요..

하지만 지금 만드는 제품은 시간 타임이 정확하지 않아도 되기 때문에

일단 무시 하고 작업을 진행 했습니다.

 

 

#include <htc.h>

/*
 * Example code for using timer0 on a 16F84
 * Just sets up a 1 second interrupt and increments a variable
 */

/*
 * Calculate preload value for one second timer
 */

#define _XTAL_FREQ 4000000L

 

near char reload = 0;

/* service routine for timer 0 interrupt */
void interrupt
timer0_isr(void)
{
 reload++;
 
 if( reload == 18 )
 {
  RB4 = ~RB4;  
  reload = 0;
 }

 TMR0 = 39;
 T0IF = 0;
}

 

main()
{
 // initialize timer 0;
 OPTION_REG = 0b0111; // prescale by 256
 T0CS = 0;   // select internal clock
 T0IE = 1;   // enable timer interrupt
 GIE = 1;   // enable global interrupts
 TRISB = 0;   // output changes on LED 
 TMR0 = 39;

 while(1)
 {
 }
}

 

위의 코드대로 작성하면 RB4번 포트에 High/Low가 각 1초 간격으로 나오게 됩니다.

 

이 자료의 본문은 아래와 같습니다.

http://embedded-lab.com/blog/?p=1042

 

회로도는 뭐.. 심플한데 아무리 해도 오실레이터는 되는데 수정진동자는 안되는 경우가 발생을 하였다.

이때 처리하는 방법은 아무래도 대부분 아래 방법이 될거 같다.

Configure > Configuration Bits 를 선택하면 팝업창이 하나 뜬다.
Configuration Bits set in code. 를 체크 해제 하면 아래 부분을 수정할 수 있다.
Setting 에 RC oscillator 라고 되어 있는 부분을 HS oscillator 로 수정하고 빌드를 새로 한 다음에 하면 된다.

'PIC' 카테고리의 다른 글

PIC16f84a 1초 타이머 만들기 (1 Sec Timer)  (0) 2012.06.16
PICSTART Plus - 초기설치 / C 프로젝트 생성  (0) 2012.02.16

저번달에 이 장비를 구매 했습니다.
슬슬 PIC를 사용해 볼까 했는데 처음에 설치 하고 C 컴파일까지 하는게 쉽지많은 않네요.
참고할 만한 자료도 많이 없는듯 해서요.
정리해 봅니다.

1. MAPLAB IDE 설치
2. MAPLAB IDE 실행하기
3. 프로젝트 만들기
3.1. Project > Project Wizard... 클릭
3.2. 다음 > Device 선택 > CCS C Compiler for PIC... 선택... 
      근데 이걸로 하면 오류가 납니다. 즉, 라이센스가 없어서 그런지 build 시에 오류가 납니다.

이제 부터는 HI-TECH C 를 깔아야 합니다.
picc_9_.83_win.exe
UniversalToolsuite-1.37.exe
http://www.microchip.com/forums/tm.aspx?m=530321&mpage=&print=true <--- 이거참고하세요.
이거 두개를 깔고 다시 해야 합니다. 참.. 번거롭네요. ^^

설치후에.. 3.2.를 다르게 선택 할겁니다.
3.3. 다음 > Device 선택 > HI-TECH Universal ToolSuite > Create New Project File 프로젝트 이름을 넣어 주시면 됩니다.
3.4. Source Files 에 c 파일을 하나 만들어서 추가 하면 됩니다.
여기까지 하면 이런 화면이 나오게 됩니다.

이정도면 대략 셋팅 끝나고 F10 눌러 보면 정상적으로 빌드가 될겁니다.

빌드가 된다고 가정하고.
pic에 어떻게 넣느냐..
아래와 같이 하시면 됩니다.

1. Programmer > Select Programmer > PICSTART Plus 를 선택
2. Programmer > Enable Programmer 선택하면 프로그래스바가 움직입니다.
    정상적이라면 Programmer 에 여러개의 메뉴가 활성화 될겁니다.
3. Programmer  > Program 을 누르면 쓰여지게 됩니다.

* 어떤 소스를 보면 #include <16f84.h> 라는게 있는데요. HI-TECH 를 할 경우는 pic16f84.h 파일을 인클루드 해서 쓰시면 됩니다.
* #include <htc.h> 파일을 쓰는 샘플 코드도 있는데 이걸 넣고 #include <pic16f84.h> 이걸 추가 하면 오류가 납니다. 즉, #include <pic16f84.h> 이것만 넣고 하시면 되요.
* 얼런 회로 동작 시켜 봐야 겠어요.

이거 찾느라 무지 고생했네요.
이제 슬슬 코딩해서 작업 해봐야 겠습니다.
허접한 ^^ 이자료 보시고 궁금한거 있으면 글 남겨 주세요.
 

+ Recent posts