PIC10F200 teller

Dette prosjektet tester timeren i en PIC10F200 mikrokontroller.

Mål

Målet er å teste telleren i en PIC10F200 mikrokontroller ved å teste på ekstern spenningsendring.

Krets

pic10f200-teller

Video

Kode

 

    /**
     * Setter OSCCAL registeret. 
     * Bit 0 må være lav.
     */
    OSCCAL = 0b11111110;
    /**
     * OPTION registeret.
     * Bit 5 er høy for å starte telleren.
     * Bit 4 er lav for ekstern telling basert på TOCKI/GP2 inngangen.
     */
    OPTION = 0b01101111;
    /**
     * The TRISGPIO register is set with the GP0 as output and GP2 as input.
     */
    TRISGPIO = 0b00001110;
    /**
     * For å lagre telleren. Egentlig ikke nødvendig, men liker å hente ut.
     */
    unsigned int timerClockCount = 0;
    /**
     * Stter GP0 lav.
     */
    GPIO = 0b00000000;
    /**
     * Resetter timeren.
     */
    TMR0 = 0;
    while (true) {
        /**
         * Henter teller verdien.
         */
        timerClockCount = TMR0;
        if (timerClockCount > 10) {
            /**
             * Setter GP0 høy.
             */
            GPIO = 0b00000001;
            /**
             * Vent 2 sekunder.
             */
            __delay_ms(DELAY);
            /**
             * Resetter timeren.
             */
            TMR0 = 0;    
            /**
             * Sett GP0 lav.
             */
            GPIO = 0b00000000;
        }
    }