Utilisation de timer1 (get_timer1())????

Xavi86 Messages postés 14 Statut Membre -  
chuka Messages postés 980 Statut Membre -
Bon jour . quand j 'utilise la fonction get_timer1(); (programme avec PICC compiler ) j'obtient des valeurs bizarre . je comprend pas ou se trouve le problème ,dans l'affichage de résultat ,ou dans l'utilisation du TIMER1. voila le programme et je vous remercie de m'aider.
#define GET_DISTANCE(t) (t / 58)
#define DISTANCE_INFINITE (0xffff)
#define use_portd_lcd TRUE
unsigned int16 echo_delay;
float dis=0;
void monitor_distance_sensor(void)
{
output_high(PIN_B3);
delay_ms(300);
output_low(PIN_B3);
while(!input(PIN_B4)) ;
disable_interrupts(GLOBAL);
set_timer1(0);
while( input(PIN_B4) );
echo_delay = get_timer1();
enable_interrupts(GLOBAL);
if (echo_delay >= 35000) {
dis = DISTANCE_INFINITE;
}
else {
dis = GET_DISTANCE(echo_delay);
}
delay_ms(50);
printf(lcd_putc,"echo_delay=: %lu",echo_delay);
delay_ms(5000);
}

void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
lcd_init();
set_tris_b(0b00010000);
output_low(PIN_B3);
monitor_distance_sensor();
}

3 réponses

chuka Messages postés 980 Statut Membre 378
 
salut,
c'est quoi comme PIC?
Tu as essayer de faire l'init du timer sans passer par les fonction?
0
Xavi86 Messages postés 14 Statut Membre
 
C'est ce que j'ai utiliser comme initialisation du programme avec un PIC16F877. J'AI pas compris la deuxième question (Tu as essayer de faire l'init du timer sans passer par les fonction?)
#include <16F877.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES RC //Resistor/Capacitor Osc with CLKOUT
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD

#use delay(clock=4000000,crystal)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
0
chuka Messages postés 980 Statut Membre 378
 
Initialiser le timer1 directement avec les registres...sans passer par les fonction predefini..(ici les registres T1CON,PIR1,PIE1,TMR1L,TMR1H,INTCON)
0