Código en CCS del Tp Final.
#include "PCronos.h"
int contador = 0;
long time[6];
long int cuenta = 0;
#int_TIMER0
void TIMER0_isr()
{
set_timer0(136);
cuenta++;
/* printf("T"); */
}
#int_EXT
void EXT_isr()
{
if (contador<= 6) {
time[contador] = cuenta;
}
contador++;
printf("E");
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);
set_timer0(136);
enable_interrupts(INT_EXT);
enable_interrupts(INT_TIMER0);
set_tris_a(0x10);
set_tris_b(0x01);
printf("Cronometro para PC \n\r");
contador = 0;
while (1){
if (contador == 0) {
printf("Presione S para comenzar a realizar la medicion \n\r" );
while(getch() != 'S');
enable_interrupts(GLOBAL);
printf("\n\rOK\n\r");
contador++;
}
else if (contador > 5){
disable_interrupts(GLOBAL);
printf("\n\r");
for(contador = 1; contador < 6; contador++){
printf("%Lu\n\r", time[contador]);
}
printf("\n\r");
printf("%Lu\n\r", time[2] - time[1]);
printf("%Lu\n\r", time[3] - time[2]);
printf("%Lu\n\r", time[4] - time[3]);
printf("%Lu\n\r", time[5] - time[4]);
contador = 0;
cuenta = 0;
printf("Preparado para una nueva medicion \n\r");
}
}
}
#include <16f84a.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A4,bits=8)
jueves, 17 de diciembre de 2009
Suscribirse a:
Entradas (Atom)