본문 바로가기

정리중인 카테고리/전공 기술

PIC 타이머0 를 활용한 버튼 빨리 누르기 게임

#include <xc.h>

#include <stdint.h>


#define _XTAL_FREQ 4000000


#define START   PORTBbits.RB1

#define SUCCESS PORTBbits.RB0


#define BUTTON  PORTBbits.RB2


#define MAXRT   200


#pragma config WDTE = OFF, PWRTE = OFF, CP = OFF, BOREN = OFF


void main() {

    uint8_t cnt_8ms;


    TRISB = 0b00000100;


    OPTION_REGbits.T0CS = 0;

    OPTION_REGbits.PSA  = 0;

    OPTION_REGbits.PS   = 4;


    while(1) {

        PORTB = 0;

        __delay_ms(2000);


        START = 1;


        cnt_8ms = 0;


        while(BUTTON == 1 && cnt_8ms < 1000/8) {

            TMR0 = 0;

            while(TMR0 < 8000/32);

            ++cnt_8ms;

        }


        if(cnt_8ms < MAXRT/8) SUCCESS = 1;


        __delay_ms(1000);

    }

}