Timer0 ve timer 2 kesmelerini aynı anda kullanamıyorum

Katılım
18 Haz 2018
Mesajlar
74
Puanları
1
Konum
Selçuklu
normalde sadece okuduğum analog bilgi ile dc motor sürüyorum sorun yok fakat timer 0 kesmesini kullanmak istediğimde ne ccp1 çalışıyor nede timer 0 problem nerede acaba ?





Kod:
#include <PotMotorCNTRL.h>
#include <stdio.h>
#include <lcd.c>
#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
#priority timer2,timer0
  unsigned long potdgr,motorcks;
  int led_dgr;
#int_timer0
void timer0_kesme(){
           if(led_dgr>0  && led_dgr<=10){output_high(pin_b0);}
      else if(led_dgr>10 && led_dgr<=20){output_high(pin_b1);}
      else if(led_dgr>20 && led_dgr<=30){output_high(pin_b2);}
      else if(led_dgr>30 && led_dgr<=40){output_high(pin_b3);}
      else if(led_dgr>40 && led_dgr<=50){output_high(pin_b4);}
      else if(led_dgr>50 && led_dgr<=60){output_high(pin_b5);}
      else if(led_dgr>60 && led_dgr<=70){output_high(pin_b6);}
      else if(led_dgr>70 && led_dgr<=80){output_high(pin_b7);}
      else break;}
void main()
{  set_tris_c(0x00);
   set_tris_a(0xFF);
   set_tris_b(0x00);
   output_a(0x00);
   output_b(0x00);
   output_c(0x00);
   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
   setup_adc(ADC_CLOCK_INTERNAL);
   enable_interrupts(INT_TIMER2);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);
   lcd_init();
   set_adc_channel (0);
   setup_timer_2(T2_DIV_BY_16,1023,1);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2|RTCC_8_BIT);
   set_timer0(0);
   setup_ccp1(CCP_PWM);
  while(TRUE)
   {   
       printf(lcd_putc"\f%lu\n%lu   %d",potdgr,motorcks,led_dgr);
       delay_ms(250);
       potdgr=read_adc();
       motorcks=(potdgr/64.061583577);
       led_dgr=(potdgr/819.1875);
       set_pwm1_duty(motorcks);
   }

}
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,307
Kullanıcılar
449,849
Son üye
cagan20

Yeni konular

Geri
Üst