Slt à tous.
j'ai un programme écrit par le compilateur Mikro C pro qui sert à afficher le nombre des impulsions sur un Lcd. mais le problème qu'il affiche que 0, je ne sais pas ou est la faute.
Svp si quelqu'un peut m'aider.
et merci d'avance.
le corps de programme:
Code:int cnt,cmp; unsigned char op[12]; unsigned char i,j,lcd[5]; void interrupt() { if (INTCON.TMR0IF) { cnt++; // increment counter TMR0IF_bit = 0; // clear TMR0IF TMR0 = 96; } else if (INTCON.INTF) { cmp++; INTCON.INTF = 0; } } // Lcd pinout settings sbit LCD_RS at RB1_bit; sbit LCD_EN at RB3_bit; sbit LCD_D7 at RB7_bit; sbit LCD_D6 at RB6_bit; sbit LCD_D5 at RB5_bit; sbit LCD_D4 at RB4_bit; // Pin direction sbit LCD_RS_Direction at TRISB1_bit; sbit LCD_EN_Direction at TRISB3_bit; sbit LCD_D7_Direction at TRISB7_bit; sbit LCD_D6_Direction at TRISB6_bit; sbit LCD_D5_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB4_bit; void main() { OPTION_REG = 0x84; // Assign prescaler to TMR0 Lcd_Init(); lcd_cmd(_lcd_CLEAR); lcd_cmd(_lcd_CURSOR_OFF); TMR0 = 96; // Timer0 initial value INTCON = 0xB0; // Enable TMRO interrupt cnt = 0; // Initialize cnt intToStr(cmp,op); j=0; for(i=0;i<=11;i++) { if(op[i] != ' ') { lcd[j]=op[i]; j++; } } do { if (cnt >= 400) { lcd_out(1,1," V="); Lcd_Out(1,4,lcd); delay_ms(1000); cnt = 0; cmp=0; // Reset cnt } } while(1); }
-----