ccs c kesme uyarilari

elmariacci

Üye
Katılım
17 Şub 2012
Mesajlar
14
Puanları
1
Yaş
34
arkadaşalar şu programda kesmelerde uyarı veriyor ve galiba bundan dolayi programi pic'e attiğimda çalişmiyor.nerede yanliş yapiyorum.


Kod:
#include "sw2.h"
#zero_ram
#ignore_warnings 203




unsigned long int display[10];
unsigned long int a,heart_rate;   






#define LCD_EN PIN_B2
#define LCD_RS PIN_B1
#define LCD_D0 PIN_D3
#define LCD_D1 PIN_B3
#define LCD_D2 PIN_D2
#define LCD_D3 PIN_B4


#define ROLE   PIN_B5


#include "lcd_mini.h"






#int_EXT
void  EXT_isr(void) 
{
unsigned long int b,c;
   b=a;
   c=a;
   c=50000/c;
   if((c<200) && (c>40)){
      display[0]=display[1];
      display[1]=display[2];
      display[2]=display[3];
      display[3]=display[4];
      display[4]=display[5];
      display[5]=display[6];
      display[6]=display[7];
      display[7]=display[8];
      display[8]=display[9];
   
      display[9]=40000/b;
      heart_rate=(display[0]+display[1]+display[2]+display[3]+display[4]+display[5]+display[6]+display[7]+display[8]+display[9])/10;
      printf(lcd_putc,"\1NABIZ=%3Lu A=%3Lu \2NABIZ OLCER",heart_rate,display[9]);
      if(heart_rate>=120) output_high(ROLE); else output_low(ROLE);
   }
   a=0;
   
}








void main()
{
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_timer_0(RTCC_EXT_H_TO_L|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_4,200,12);
   setup_ccp1(CCP_OFF);
   delay_ms(1000);
//   input(PIN_A4);
   lcd_init();
   printf(lcd_putc,"\1NABIZ  \2OLCER");     
   delay_ms(1000);
   printf(lcd_putc,"\f");     
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);


   


   while(1){
      delay_ms(1);
      a++;
//      if(a>=3000){
//         a=3000;
//         output_high(ROLE);
//      }
//      else
//         output_low(ROLE);
   }




}



Kod:
void lcd_delay(int data){
int i;
         for(i=0; i<data; ++i);
}


void LCD_PulseEnable (){
                     output_high ( LCD_EN );
                     delay_ms(2);
                     output_low  ( LCD_EN );
                     delay_ms(2);
                  }


void LCD_SetData (int cX ){
                        output_bit ( LCD_D0, cX & 0x01 );
                        output_bit ( LCD_D1, cX & 0x02 );
                        output_bit ( LCD_D2, cX & 0x04 );
                        output_bit ( LCD_D3, cX & 0x08 );
                     }


void lcd_adr ( int cX ){
                     LCD_SetData ( swap ( cX ) | 0x08 );
                     LCD_PulseEnable();
                     LCD_SetData ( swap ( cX ) );
                     LCD_PulseEnable();
                  }


void LCD_PutCmd ( int cX ){
                        LCD_SetData ( swap ( cX ) );
                        LCD_PulseEnable();
                        LCD_SetData ( swap ( cX ) );
                        LCD_PulseEnable();
                     }


void lcd_putc ( int cX ){
                     switch (cx) {
                           case '\f'   :  LCD_PutCmd ( 0x01 ); delay_ms(2); break;
                           case '\1'   :  lcd_adr( 0x00 );     delay_ms(2); break;
                           case '\2'   :  lcd_adr(0x40);       delay_ms(2); break;
                           default     :
                                       output_high ( LCD_RS );
                                       LCD_SetData ( swap ( cX ) );
                                       LCD_PulseEnable();
                                       LCD_SetData ( swap ( cX ) );
                                       LCD_PulseEnable();
                                       output_low ( LCD_RS );
                                }
                  }


void lcd_init (){


//               output_low        ( LCD_rw );
               output_low        ( LCD_RS );
               LCD_SetData       ( 0x00 );
               delay_ms          ( 100 );       //    wait enough time after Vdd rise
               LCD_SetData       ( 0x03 );      //    init with specific nibbles to start 4-bit mode
               LCD_PulseEnable   ();
               LCD_PulseEnable   ();
               LCD_PulseEnable   ();
               LCD_SetData       ( 0x02 );      //*    set 4-bit interface
               LCD_PulseEnable   ();            //*    send dual nibbles hereafter, MSN first
               LCD_PutCmd        ( 0x2C );      //*    function set (all lines, 5x7 characters)
               LCD_PutCmd        ( 0x0C );      //*    display ON, cursor off, no blink
               LCD_PutCmd        ( 0x01 );      //*    clear display
               LCD_PutCmd        ( 0x06 );      //*    entry mode set, increment & scroll left
          }
void lcd_refresh(void){


//               output_low        ( LCD_rw );
               output_low        ( LCD_RS );
               LCD_SetData       ( 0x00 );
               delay_ms          ( 100 );       //    wait enough time after Vdd rise
               LCD_SetData       ( 0x03 );      //    init with specific nibbles to start 4-bit mode
               LCD_PulseEnable   ();
               //LCD_PulseEnable   ();
               //LCD_PulseEnable   ();
               LCD_SetData       ( 0x02 );      //*    set 4-bit interface
               LCD_PulseEnable   ();            //*    send dual nibbles hereafter, MSN first
               LCD_PutCmd        ( 0x2C );      //*    function set (all lines, 5x7 characters)
               LCD_PutCmd        ( 0x0C );      //*    display ON, cursor off, no blink
               //LCD_PutCmd        ( 0x01 );      //*    clear display
               LCD_PutCmd        ( 0x06 );      //*    entry mode set, increment & scroll left
          }          






void lcd_gotoxy(int8 x, int8 y){
   if(y==1){
      lcd_adr( 0x00+x-1 );     delay_ms(2);
   }else{
      lcd_adr( 0x40+x-1 );     delay_ms(2);
   }


}


Kod:
>>>Warning 216 "sw2.c" Line 87(0,1): Interrupts disabled during call to prevent re-entrancy: (LCD_SetData)

>>>Warning 216 "sw2.c" Line 87(0,1): Interrupts disabled during call to prevent re-entrancy: (@delay_ms1)


>>>Warning 216 "sw2.c" Line 87(0,1): Interrupts disabled during call to prevent re-entrancy: (LCD_PulseEnable)


>>>Warning 216 "sw2.c" Line 87(0,1): Interrupts disabled during call to prevent re-entrancy: (lcd_putc)
 

Yeni mesajlar

Forum istatistikleri

Konular
129,678
Mesajlar
928,947
Kullanıcılar
452,379
Son üye
fatal.error

Yeni konular

Geri
Üst