slt a tous
meme probleme
dans http://forums.futura-sciences.com/el...dn-moteur.html
mais cette fois n'est pas affichee un chifre de la vitesse
je besion d'aide
mon idee est clancher timer chaque front de encodeur et declancher pour descend et calcule le temp et faire un petite calcule pour obtenir la vitesse de moteur en tour/m
nouvelle code
ou est l'erreurCode:void main() { unsigned long temp,a; unsigned int cnt=0,cntl; unsigned char txt[10]; TRISB = 0x00; //PORTC comme sortie PORTB=0; TRISA = 0xff; TRISC = 0x00; TRISD = 0x00; PORTA=0xff; PORTC=0x00; PORTD=0x00; adcon1=0x80; Lcd_Init(&portB) ; Lcd_Cmd(Lcd_CURSOR_OFF) ; Lcd_Cmd(Lcd_CLEAR) ; T1CON = 0b00001100 ; // activation du TMR1, avec PreScaler=8 INTCON.GIE=1; // GIE/GIEH: Global Interrupt Enable bit INTCON.PEIE=1; // Peripheral Interrupt Enable bit a=adc_read(0); do { if (a = 0xff) { T1CON.TMR1ON = 1 ; PIE1.TMR1IE = 1 ; // clear TMR1IF } else if (a=0) { T1CON.TMR1ON = 0 ; PIE1.TMR1IE = 0 ; } //cnt = TMR1H ; //cnt<<8; cntl =TMR1L; cntl>>8 ; cnt=TMR1H +cntl ; temp =(60/ (( cnt*4*48)/4000000)); //PORTd = temp; LongToStr(temp,txt); Lcd_Out(1,1,txt); // sortee vers LCD Delay_ms(1000); // retard de 1 second/e } while(1); }
-----