Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PIC16F628 prośba o skompilowanie kodu z C

TheCrow 27 Sty 2011 22:37 1598 7
  • #1 27 Sty 2011 22:37
    TheCrow
    Poziom 10  

    Witam jak w temacie nie mogę skompilować kodu C za pomocą kompilatora CC5X bo pod taki jest pisany kod.

    błąd powstaje już w pierwszej linijce const byte [tablica]

    oto kod C do kompilacji kompilatorem CC5X no chyba że macie inne pomysły
    z góry dzięki

    bez fuse bitów to ustawie w programatorze.

    Code:

    //**********zegar z kalendarzem i dwukanalowym termometrem min-max
    //PIC16F628 oscylator RC
    //obsluga TMR1
    //przerwanie nastepuje co 1s dla kwarcu 32,768 kHz

    const byte dni_mies[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    #int_timer1
    void tmr1()
    {
     int ile_dni,1;
     bit_set(tmr1h,7);
     i=lata&0b00000011;
     if(mies==2&&i==0) ile_dni=29;
     else ile_dni=dni=mies[mies];
     
     if(++sec>59)
     {
      sek=0;
      if(++min>59)
      {
       min=0;
       if(++godz>23)
       {
        godz=0;
        if(++dni>ile_dni)
        {
         dni=1;
         if(++mies>12)
         {
          mies=1;
          if(++lata>99) lata=0;
         }
        }
       }
      }
     }
      if(++temp_status>3)
      temp_status=0;
    }

    //funkcja odczytu temperatury z DS1820
     
    get_temp(boolean ds,boolean dd)
    {
      byte i,bufor[8];
      boolean ds_ok;
      signed int16 t,t1;
      ds_ok=0;
      if(!dd)
      {
       if(!ds)
       {
        if(touch_present())
        {
         touch_write_byte(0xCC);
         touch_write_byte(0x44);
        }
       }
       else
       {
        if(touch1_present())
        {
         touch1_write_byte(0xCC);
         touch1_write_byte(0x44);
        }
       }
      }
       else
       {
        if(!ds)
        {
         touch_present();
         touch_write_byte(0xCC);
         touch_write_byte (0xBE);
         for(i=0;i<7;i++)
           buf[1]=touch_read_byte();
         ds_ok=1;




        }
        else
        {
         touch1_present();
         touch1_write_byte(0xCC);
         touch1_write_byte (0xBE);
         for(i=0;i<7;i++)
           buf[1]=touch1_read_byte();
         ds_ok=1;
        }
        if(ds_ok)
        {
         T=make16(buf[1],buf[0]);
         if(bit_test(t,0) t--;
         t*=50;
         t-=25;
         t1=buf[7]-buf[6];
         t1*=100;
         t1/=buf[7];
         t+=t1;
         t/=10;
         if(!ds)
         {
          temp1=t;
          if(temp1>temp1_max) temp1_max=temp1;
          if(temp1<temp1_min) temp1_min=temp1;
         }
         else
         {
          temp2=t;
          if(temp2>temp2_max) temp2_max=temp2;
          if(temp2<temp2_min) temp2_min=temp2;
         }
        }
       }
    }

    //komunikacja z DS1820 temp1

    #define TOUCH_PIN PIN_b0
    #bit    TOUCH_PIN_BIT = 6.0

    byte touch_read_byte()
    {
      byte i,data;
      for(i=1;i<8;++i)
      {
       output_low(TOUCH_PIN);
       delay_us(14);
       output_float(touch_pin);
       delay_us(5);
       shift_rigcht(&data,1,input(TOUCH_PIN);
       delay_us(100);
      }
      return(data);
    }
    byte touch_write_byte(byte data)
    {
     byte i;
     for(i=1;i<8;++i)
     {
      output_low(TOUCH_PIN);
      delay_us(10);
      if(shift_right(&data,1,0)
      {
       output_high(TOUCH_PIN);
      }
      else
      {
       output_low(TOUCH_PIN);
      }
      delay_us(50);
      output_high(TOUCH_PIN);
      delay_us(50);
     }
     return(TRUE);
    }
    byte touch_present()
    {
     boolean present;
     output_low(TOUCH_PIN);
     delay_us(500);
     output_float(TOUCH_PIN);
     if(!input(TOUCH_PIN))
       return(FALSE);
     delay_us(65);
     present=!input(TOUCH_PIN);
     delay_us(240);
     if(present)
       return(TRUE);
     else
       return(FALSE);
    }

    //komunikacja z DS1820 temp2

    #define TOUCH_PIN PIN_b1
    #bit    TOUCH_PIN_BIT = 6.0

    byte touch_read_byte()
    {
      byte i,data;
      for(i=1;i<8;++i)
      {
       output_low(TOUCH_PIN);
       delay_us(14);
       output_float(touch_pin);
       delay_us(5);
       shift_rigcht(&data,1,input(TOUCH_PIN);
       delay_us(100);
      }
      return(data);
    }
    byte touch_write_byte(byte data)
    {
     byte i;
     for(i=1;i<8;++i)
     {
      output_low(TOUCH_PIN);
      delay_us(10);
      if(shift_right(&data,1,0)
      {
       output_high(TOUCH_PIN);
      }
      else
      {
       output_low(TOUCH_PIN);
      }
      delay_us(50);
      output_high(TOUCH_PIN);
      delay_us(50);
     }
     return(TRUE);
    }
    byte touch_present()
    {
     boolean present;
     output_low(TOUCH_PIN);
     delay_us(500);
     output_float(TOUCH_PIN);
     if(!input(TOUCH_PIN))
       return(FALSE);
     delay_us(65);
     present=!input(TOUCH_PIN);
     delay_us(240);
     if(present)
       return(TRUE);
     else
       return(FALSE);
    }

    //funkcja odczytu stan klawiatury
    //funkcja sprawdza, czy nacisnieto klawisz
    //jesli tak, to zwraca jego numer

    #define OK_pin         portb_4
    #define UP_pin         portb_5
    #define DOWN_pin       portb_2
    #define ESC_pin        porta_4
    #define UP             1
    #define OK             2
    #define DOWN           3
    #define ESC            4

    int get_key()
    {
     int temp;
     key=0;
     if(!ok_pin) key=ok;
     else if(!esc_pin) key=esc;
     else if(!down_pin) key=down;
     else if(!up_pin) key=up;
     else return(0);
     temp=key;
     delay_ms(20);
     key=0;
     if(!ok_pin) key=ok;
     else if(!esc_pin) key=esc;
     else if(!down_pin) key=down;
     else if(!up_pin) key=up;
     else return(0);
     if(temp==key) return(key);
     else return(0);
    }

    //deklaracja parametrow poczatkowych wymaganych do komunikacji
    //z wyswietlaczem LCD
    //deklaracja parametrow startowych niezbednych do sterowania
    //wyswietlaczem

    #ifndef lcd
       //#define lcd_rw       porta_2
       //#define lcd_tris_rw  trisa_2
     #define    lcd_en       porta_7
     #define    lcd_tris_en  trisa_7
     #define    lcd_rs       porta_6
     #define    lcd_tris_rs  trisa_6
     #define    lcd_d7       porta_3
     #define    lcd_tris_d7  trisa_3
     #define    lcd_d6       porta_2
     #define    lcd_tris_d6  trisa_2
     #define    lcd_d5       porta_1
     #define    lcd_tris_d5  trisa_1
     #define    lcd_d4       porta_0
     #define    lcd_tris_d4  trisa_0
    #endif

    #define     cursorOn     17
    #define     CursorOff    18
    #define     lcd_type     2
    #define     lcd_line_two 0x40

    //funkcja inicjalizacji wyswietlacza LCD
    //inicjalizacja wyswietlacza do pracy 4-bitowej

    void lcd_init()
    {
     byte i;
     lcd_d7=0;
     lcd_d6=0;
     lcd_d5=0;
     lcd_d4=0;
     lcd_tris_d7=0;
     lcd_tris_d6=0;
     lcd_tris_d5=0;
     lcd_tris_d4=0;
     lcd_rs = 0;
     lcd_tris_rs=0;
     lcd_en = 0;
     lcd_tris_en=0;
     
     #if lcd_rw
     lcd_rw = 0;
     lcd_tris_rw=0;
     #endif
     
     delay_ms(15);
     for(i=1;i<3;++i)
     {
      lcd_send_nibble(3);
      delay_ms(5);
     }
     lcd_sendNibble(2);
     lcd_send_byte(0,0x20 | (lcd_type << 2));
     lcd_send_byte(0,0xc);
     lcd_send_byte(0,1);
     delay_ms(2);
     lcd_send_byte(0,6);
    }

    //funkcja wysylania polowe bajtu do wyswietlacza
    //wysyla polowe bajtu do wyswietlacza

    void lcd_send_byte_nibble( byte n )
    {
     lcd_d4=lib_test(n,0);
     lcd_d5=bit_test(n,1);
     lcd_d6=bit_test(n,2);
     lcd_d7=bit_test(n,3);
     delay_cycles(1);
     lcd_en = 1;
     delay_us(2);
     lcd_en = 0;
    }

    //funkcja zapisu calego bajtu do wyswietlacza
    //wysyla caly bajt do LCD

    void lcd_send_byte( byte address, byte n )
    {
     lcd_rs = 0;
     
     #if lcd_rw
     while ( bit_test(lcd_read_byte(),7) );
     #else
     delay_us(40);
     lcd_rs = address;
     delay_cycles(1);
     #if lcd_rw
     lcd_rw = 0;
     #endif
     delay_cycles(1);
     lcd_en = 0;
     lcd_send_nibble(n >> 4);
     lcd_send_nibble(n & 0xf);
    }

    //funkcja wyswietlania znakow na wyswietlaczu
    //wyswietla znaki na wyswietlaczu

    void lcd_putc(char f)
    {
     switcz (f)
     {
      case 'r':
      lcd_send_byte(0,1);
      delay_ms(2);
      break;
      case 'n':
      lcd_gotoxy(2,1);
      break;
      case cursorOn:
      lcd_send_byte(0,0b00001110);
      break;
      case cursorOff:
      lcd_send_byte(0,0b00001100);
      break;
      default:
      lcd_send_byte(1,f);
      break;
     }
    }

    //konfiguracja TMR2 jako sterownika PWM

    pr2=9;
    ccpr1l=5;
    portb_3=0;
    trisb_3=0;
    T2CON=0b00000111;
    CCP1COM=0x0f;

    0 7
  • CControls
  • #2 28 Sty 2011 11:23
    63404
    Użytkownik usunął konto  
  • CControls
  • #3 28 Sty 2011 16:22
    TheCrow
    Poziom 10  

    Hej

    Dokładnie to jest z tej książki i "niby" pisze ze właśnie ten kompilator jest użyty z MPLAB CC i Hiteh nie chce kompilować.

    0
  • #4 28 Sty 2011 20:18
    63404
    Użytkownik usunął konto  
  • #5 28 Sty 2011 22:43
    TheCrow
    Poziom 10  

    Hej

    Albo ja robię coś nie tak albo ...

    taki błąd mi wyskakuje

    *** Error 128 "Test_Pin.C" Line 1(0,0): A #DEVICE required before this line

    a jak już dodam #device i include to wtedy już jest ich 100

    Code:

    ** Error 28 "Untitled.c" Line 10(14,15): Expecting an identifier
    *** Error 28 "Untitled.c" Line 11(16,17): Expecting an identifier
    *** Error 43 "Untitled.c" Line 11(18,19): Expecting a declaration
    *** Error 48 "Untitled.c" Line 12(2,3): Expecting a (
    *** Error 48 "Untitled.c" Line 12(4,8): Expecting a (
    *** Error 43 "Untitled.c" Line 12(9,19): Expecting a declaration
    *** Error 43 "Untitled.c" Line 12(19,20): Expecting a declaration
    *** Error 43 "Untitled.c" Line 13(2,4): Expecting a declaration
    *** Error 43 "Untitled.c" Line 13(4,5): Expecting a declaration
    *** Error 48 "Untitled.c" Line 13(5,9): Expecting a (
    *** Error 43 "Untitled.c" Line 13(11,12): Expecting a declaration
    *** Error 43 "Untitled.c" Line 13(12,14): Expecting a declaration
    *** Error 48 "Untitled.c" Line 13(14,15): Expecting a (
    *** Error 43 "Untitled.c" Line 13(17,18): Expecting a declaration
    *** Error 43 "Untitled.c" Line 13(18,19): Expecting a declaration
    *** Error 48 "Untitled.c" Line 13(20,27): Expecting a (
    *** Error 43 "Untitled.c" Line 13(28,30): Expecting a declaration
    *** Error 43 "Untitled.c" Line 13(30,31): Expecting a declaration
    *** Error 43 "Untitled.c" Line 14(2,6): Expecting a declaration
    *** Error 48 "Untitled.c" Line 14(7,14): Expecting a (
    *** Error 48 "Untitled.c" Line 14(15,18): Expecting a (
    *** Error 48 "Untitled.c" Line 14(19,23): Expecting a (
    *** Error 48 "Untitled.c" Line 14(24,28): Expecting a (
    *** Error 43 "Untitled.c" Line 14(29,30): Expecting a declaration
    *** Error 43 "Untitled.c" Line 16(2,4): Expecting a declaration
    *** Error 43 "Untitled.c" Line 16(4,5): Expecting a declaration
    *** Error 43 "Untitled.c" Line 16(5,7): Expecting a declaration
    *** Error 48 "Untitled.c" Line 16(7,10): Expecting a (
    *** Error 43 "Untitled.c" Line 16(11,13): Expecting a declaration
    *** Error 43 "Untitled.c" Line 16(13,14): Expecting a declaration
    *** Error 43 "Untitled.c" Line 17(2,3): Expecting a declaration
    *** Error 48 "Untitled.c" Line 18(3,6): Expecting a (
    *** Error 43 "Untitled.c" Line 18(7,8): Expecting a declaration
    *** Error 43 "Untitled.c" Line 18(8,9): Expecting a declaration
    *** Error 43 "Untitled.c" Line 19(3,5): Expecting a declaration
    *** Error 43 "Untitled.c" Line 19(5,6): Expecting a declaration
    *** Error 43 "Untitled.c" Line 19(6,8): Expecting a declaration
    *** Error 48 "Untitled.c" Line 19(8,11): Expecting a (
    *** Error 43 "Untitled.c" Line 19(12,14): Expecting a declaration
    *** Error 43 "Untitled.c" Line 19(14,15): Expecting a declaration
    *** Error 43 "Untitled.c" Line 20(3,4): Expecting a declaration
    *** Error 48 "Untitled.c" Line 21(4,7): Expecting a (
    *** Error 43 "Untitled.c" Line 21(8,9): Expecting a declaration
    *** Error 43 "Untitled.c" Line 21(9,10): Expecting a declaration
    *** Error 43 "Untitled.c" Line 22(4,6): Expecting a declaration
    *** Error 43 "Untitled.c" Line 22(6,7): Expecting a declaration
    *** Error 43 "Untitled.c" Line 22(7,9): Expecting a declaration
    *** Error 48 "Untitled.c" Line 22(9,13): Expecting a (
    *** Error 43 "Untitled.c" Line 22(14,16): Expecting a declaration
    *** Error 43 "Untitled.c" Line 22(16,17): Expecting a declaration
    *** Error 43 "Untitled.c" Line 23(4,5): Expecting a declaration
    *** Error 48 "Untitled.c" Line 24(5,9): Expecting a (
    *** Error 43 "Untitled.c" Line 24(10,11): Expecting a declaration
    *** Error 43 "Untitled.c" Line 24(11,12): Expecting a declaration
    *** Error 43 "Untitled.c" Line 25(5,7): Expecting a declaration
    *** Error 43 "Untitled.c" Line 25(7,8): Expecting a declaration
    *** Error 43 "Untitled.c" Line 25(8,10): Expecting a declaration
    *** Error 48 "Untitled.c" Line 25(10,13): Expecting a (
    *** Error 48 "Untitled.c" Line 25(14,21): Expecting a (
    *** Error 43 "Untitled.c" Line 26(5,6): Expecting a declaration
    *** Error 48 "Untitled.c" Line 27(6,9): Expecting a (
    *** Error 43 "Untitled.c" Line 27(10,11): Expecting a declaration
    *** Error 43 "Untitled.c" Line 27(11,12): Expecting a declaration
    *** Error 43 "Untitled.c" Line 28(6,8): Expecting a declaration
    *** Error 43 "Untitled.c" Line 28(8,9): Expecting a declaration
    *** Error 43 "Untitled.c" Line 28(9,11): Expecting a declaration
    *** Error 48 "Untitled.c" Line 28(11,15): Expecting a (
    *** Error 43 "Untitled.c" Line 28(16,18): Expecting a declaration
    *** Error 43 "Untitled.c" Line 28(18,19): Expecting a declaration
    *** Error 43 "Untitled.c" Line 29(6,7): Expecting a declaration
    *** Error 48 "Untitled.c" Line 30(7,11): Expecting a (
    *** Error 43 "Untitled.c" Line 30(12,13): Expecting a declaration
    *** Error 43 "Untitled.c" Line 30(13,14): Expecting a declaration
    *** Error 43 "Untitled.c" Line 31(7,9): Expecting a declaration
    *** Error 43 "Untitled.c" Line 31(9,10): Expecting a declaration
    *** Error 43 "Untitled.c" Line 31(10,12): Expecting a declaration
    *** Error 48 "Untitled.c" Line 31(12,16): Expecting a (
    *** Error 43 "Untitled.c" Line 31(17,19): Expecting a declaration
    *** Error 43 "Untitled.c" Line 31(19,20): Expecting a declaration
    *** Error 48 "Untitled.c" Line 31(21,25): Expecting a (
    *** Error 43 "Untitled.c" Line 31(26,27): Expecting a declaration
    *** Error 43 "Untitled.c" Line 31(27,28): Expecting a declaration
    *** Error 43 "Untitled.c" Line 32(6,7): Expecting a declaration
    *** Error 43 "Untitled.c" Line 33(5,6): Expecting a declaration
    *** Error 43 "Untitled.c" Line 34(4,5): Expecting a declaration
    *** Error 43 "Untitled.c" Line 35(3,4): Expecting a declaration
    *** Error 43 "Untitled.c" Line 36(2,3): Expecting a declaration
    *** Error 43 "Untitled.c" Line 37(3,5): Expecting a declaration
    *** Error 43 "Untitled.c" Line 37(5,6): Expecting a declaration
    *** Error 43 "Untitled.c" Line 37(6,8): Expecting a declaration
    *** Error 48 "Untitled.c" Line 37(8,19): Expecting a (
    *** Error 43 "Untitled.c" Line 37(20,21): Expecting a declaration
    *** Error 43 "Untitled.c" Line 37(21,22): Expecting a declaration
    *** Error 48 "Untitled.c" Line 38(3,14): Expecting a (
    *** Error 43 "Untitled.c" Line 38(15,16): Expecting a declaration
    *** Error 43 "Untitled.c" Line 38(16,17): Expecting a declaration
    *** Error 43 "Untitled.c" Line 39(1,2): Expecting a declaration
    *** Error 117 "Untitled.c" Line 48(3,4): Improper use of a function identifier
    *** Error 43 "Untitled.c" Line 48(8,9): Expecting a declaration
    *** Error 43 "Untitled.c" Line 48(9,10): Expecting a declaration
          100 Errors,  0 Warnings.
    Halting build on first failure as requested.
    BUILD FAILED: Fri Jan 28 22:42:20 2011

    0
  • Pomocny post
    #6 28 Sty 2011 23:48
    63404
    Użytkownik usunął konto  
  • #7 29 Sty 2011 00:28
    TheCrow
    Poziom 10  

    Faktycznie wszystko się teraz zgadza.
    niby czytałem całość i takie niedopatrzenie ehhh
    ale nauka nie idzie w las tylko w Nas

    ps.
    wole mikroC PRO for PIC przynajmniej jest obszerne info i jakoś bardziej przejrzysty

    Podziękować można zamknąć

    Best Regards
    TheCrow.

    0
  • #8 29 Sty 2011 11:19
    63404
    Użytkownik usunął konto