muy buen aporte , necesitaba mirar y con esto ya podre tener idea
una pregunta no tienes tambiem para el compilador mikro c , ejemplos.
amigo, te recomiendo que te cambies a ccs, no le pide nada a mikroC Y ccs es mas fácil
¿De qué archivo? El archivo del post #1 solamente tiene 60 páginas y el del post #6 ya no existe.En el ejemplo de la pagina 112
Porque seguramente no se está usando el desborde que generaría la interrupción y solo se está usando como contador.¿Por qué no se habilita la interrupción del timer0 ? Solo está habilitada la del timer1
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4M)
#use standard_io(a)
#define LCD_DATA_PORT getenv("SFR:pORTD")
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#define use_portb_kbd TRUE
#include <lcd.c>
#include <kbd`.c>
int16 counter=0;
#int_timer1
void timer1_isr(void){
counter =get_timer0();
counter = counter*2*120;
printf(lcd_putc,"%6lu rpm",counter);
lcd_gotoxy(1,1);
set_timer0(0);
set_timer1(3036);
}
void main(){
char k, kant="0";
char PWMH=0,PWML=0;
lcd_init();
kbd_init();
port_b_pullups(true);
setup_timer_0(rtcc_ext_l_to_h|rtcc_div_2);
setup_timer_1(T1_internal|T1_div_by_8);
set_timer0(0);
set_timer1(3036);
enable_interrupts(int_timer1);
enable_interrupts(global);
while(1){
k = kbd_getc();
if(k=="\0") k=kant;
if((k=="*")||(k="#")) K="0";
kant = k;
k = k-48;
PWMH = k *28;
PWML = 255-PWMH;
for(PWMH;PWMH>0;PWMH--){
output_high(pin_a0);}
for(PWML;PWML>0;PWML--){
output_low(pin_a0);}
}
}
Porque seguramente no se está usando el desborde que generaría la interrupción y solo se está usando como contador.
De esta forma solo se pone en 0 el Timer 0 y se deja correr hasta que se requiera leerlo.El código dijo:counter =get_timer0();