//
// Concise timing demo with the RTCC interrupt on the PIC 16F876
// For SP.710, Spring 2001
// maxdavis(at)mit.edu
//

#include <16f876.h>
#fuses nowdt, hs, noprotect, put, brownout, nolvp 
#use delay(clock=20000000)
#use rs232 (baud=2400, xmit=PIN_C6, rcv=PIN_C7)

unsigned long time;

#int_rtcc
void rtcc_interrupt_subroutine() {
  time += 13;
}

void main() {

  setup_COUNTERS(RTCC_INTERNAL,RTCC_DIV_256);
  disable_interrupts(GLOBAL);
  enable_interrupts(INT_RTCC);   

  while(1) {
    time = 0;
    printf("<Hit a key to start>\r\n");
    getc();
    enable_interrupts(GLOBAL);
    printf("<Hit a key to stop>\r\n");
    while (!kbhit()) {}
    disable_interrupts(GLOBAL);
    c=getc();
    printf("%lu milliseconds\r\n",time);
  }  
}








