MikroC de fonksiyonlara bit olarak arguman girme?

Başlatan Seferi, 26 Nisan 2012, 23:15:04

Seferi

İyi günler. CcsC ile yazılmış nokia 1100glcd driveri var(çalışıyor)  elimde ve bunu mikroc de kullanmak istedim fakat CCSC de bir fonksiyonun birine int1 tipinde argüman giriyor fakat MikroC de bu olayı yapamadım.
void fonksiyon(bit cd ,char sd)

Yukarıdaki gibi bir kod yazdım MikroC de ama, derleyici bu şekilde olmaz dedi.
  Nasıl bir çözüm önerirsiniz?






Diğer sorunun cevabı gelmeden bir soru daha sorayım.
Başka konu açarak kirletmek istemedim formu.  MikroC ile aram gittikçe kötüye gidiyor.(Daha alışamamışken :( )
Yukarıda sorunu başka bir yolla çözdüm ama orada hala, fonksiyon tanımlarken argüman olarak bir bitlik bir değişken kullanabiliyor muyuz? bunu öğrenmek istiyorum. Şimdiki sorun ASCII karakterler tanımlı tabloda her şey düzgün çalışıyor ama gel gör ki '\' bu karakterde kopuyor. Bundan sonrakileri de yazdığın karakterin (ASCII tablosuna göre) bir sonraki karakteri ekrana yazdırıyor. Bu saate(saat 3:42) kadar uğraştım niye böyle olduğunu anlayamadım bir çözümde bulamadım . Birde print_char('\'); bu şekilde bir yazıma da uyarı veriyor. Acaba benden yorum mu bekliyor bilemiyorum.

Her neyse MicroC güzel hoş diyorken bana yamuk  ;) yapıp duruyor. Hayırlısı bakalım.

Yardımlarınız için şimdiden çok teşekkür ederim..

Kodları ekliyorum isterseniz bir bakın..

unsigned int cd;
unsigned int tempp;
sbit aa at cd.B0;

sbit sclk at PORTB.B2;
sbit sda at PORTB.B3;
sbit cs at PORTB.B6;
sbit rst at PORTB.B7;
int CMD=0;
int DATA=1;
 
void Lcd_Init(void);
void Lcd_CMD(unsigned char b);
void Lcd_DATA(unsigned char c);
void Lcd_Clear(void);
void Gotoxy(char x,char y);
void print_char(char c);
char bitaddr;




const unsigned char FontLookup1[48][5] = {
                                                0x00,0x00,0x00,0x00,0x00,        // 20 bosluk
                                                0x00,0x00,0x5f,0x00,0x00,        // 21 !
                                                0x00,0x07,0x00,0x07,0x00,        // 22 "
                                                0x14,0x7f,0x14,0x7f,0x14,        // 23 #
                                                0x24,0x2a,0x7f,0x2a,0x12,        // 24 $
                                                0x23,0x13,0x08,0x64,0x62,        // 25 %
                                                0x36,0x49,0x55,0x22,0x50,        // 26 &
                                                0x00,0x05,0x03,0x00,0x00,        // 27 '
                                                0x00,0x1c,0x22,0x41,0x00,        // 28 (
                                                0x00,0x41,0x22,0x1c,0x00,        // 29 )
                                                0x14,0x08,0x3e,0x08,0x14,        // 2a *
                                                0x08,0x08,0x3e,0x08,0x08,        // 2b +
                                                0x00,0x50,0x30,0x00,0x00,        // 2c ,
                                                0x08,0x08,0x08,0x08,0x08,        // 2d -
                                                0x00,0x60,0x60,0x00,0x00,        // 2e .
                                                0x20,0x10,0x08,0x04,0x02,        // 2f /
                                                0x3e,0x51,0x49,0x45,0x3e,        // 30 0
                                                0x00,0x42,0x7f,0x40,0x00,        // 31 1
                                                0x42,0x61,0x51,0x49,0x46,        // 32 2
                                                0x21,0x41,0x45,0x4b,0x31,        // 33 3
                                                0x18,0x14,0x12,0x7f,0x10,        // 34 4
                                                0x27,0x45,0x45,0x45,0x39,        // 35 5
                                                0x3c,0x4a,0x49,0x49,0x30,        // 36 6
                                                0x01,0x71,0x09,0x05,0x03,        // 37 7
                                                0x36,0x49,0x49,0x49,0x36,        // 38 8
                                                0x06,0x49,0x49,0x29,0x1e,        // 39 9
                                                0x00,0x36,0x36,0x00,0x00,        // 3a :
                                                0x00,0x56,0x36,0x00,0x00,        // 3b ;
                                                0x08,0x14,0x22,0x41,0x00,        // 3c <
                                                0x14,0x14,0x14,0x14,0x14,        // 3d =
                                                0x00,0x41,0x22,0x14,0x08,        // 3e >
                                                0x02,0x01,0x51,0x09,0x06,        // 3f ?
                                                0x32,0x49,0x79,0x41,0x3e,        // 40 @
                                                0x7e,0x11,0x11,0x11,0x7e,        // 41 A
                                                0x7f,0x49,0x49,0x49,0x36,        // 42 B
                                                0x3e,0x41,0x41,0x41,0x22,        // 43 C
                                                0x7f,0x41,0x41,0x22,0x1c,        // 44 D
                                                0x7f,0x49,0x49,0x49,0x41,        // 45 E
                                                0x7f,0x09,0x09,0x09,0x01,        // 46 F
                                                0x3e,0x41,0x49,0x49,0x7a,        // 47 G
                                                0x7f,0x08,0x08,0x08,0x7f,        // 48 H
                                                0x00,0x41,0x7f,0x41,0x00,        // 49 I
                                                0x20,0x40,0x41,0x3f,0x01,        // 4a J
                                                0x7f,0x08,0x14,0x22,0x41,        // 4b K
                                                0x7f,0x40,0x40,0x40,0x40,        // 4c L
                                                0x7f,0x02,0x0c,0x02,0x7f,        // 4d M
                                                0x7f,0x04,0x08,0x10,0x7f,        // 4e N
                                                0x3e,0x41,0x41,0x41,0x3   };        // 4f O

const unsigned char FontLookup2[48][5] ={
                                                0x7f,0x09,0x09,0x09,0x06,        // 50 P
                                                0x3e,0x41,0x51,0x21,0x5e,        // 51 Q
                                                0x7f,0x09,0x19,0x29,0x46,        // 52 R
                                                0x46,0x49,0x49,0x49,0x31,        // 53 S
                                                0x01,0x01,0x7f,0x01,0x01,        // 54 T
                                                0x3f,0x40,0x40,0x40,0x3f,        // 55 U
                                                0x1f,0x20,0x40,0x20,0x1f,        // 56 V
                                                0x3f,0x40,0x38,0x40,0x3f,        // 57 W
                                                0x63,0x14,0x08,0x14,0x63,        // 58 X
                                                0x07,0x08,0x70,0x08,0x07,        // 59 Y
                                                0x61,0x51,0x49,0x45,0x43,        // 5a Z
                                                0x00,0x7f,0x41,0x41,0x00,        // 5b [
                                                0x02,0x04,0x08,0x10,0x20,        // 5c \
                                                0x00,0x41,0x41,0x7f,0x00,        // 5d ]
                                                0x04,0x02,0x01,0x02,0x04,        // 5e ^
                                                0x40,0x40,0x40,0x40,0x40,        // 5f _
                                                0x00,0x01,0x02,0x04,0x00,        // 60 `
                                                0x20,0x54,0x54,0x54,0x78,        // 61 a
                                                0x7f,0x48,0x44,0x44,0x38,        // 62 b
                                                0x38,0x44,0x44,0x44,0x20,        // 63 c
                                                0x38,0x44,0x44,0x48,0x7f,        // 64 d
                                                0x38,0x54,0x54,0x54,0x18,        // 65 e
                                                0x08,0x7e,0x09,0x01,0x02,        // 66 f
                                                0x0c,0x52,0x52,0x52,0x3e,        // 67 g
                                                0x7f,0x08,0x04,0x04,0x78,        // 68 h
                                                0x00,0x44,0x7d,0x40,0x00,        // 69 i
                                                0x20,0x40,0x44,0x3d,0x00,        // 6a j
                                                0x7f,0x10,0x28,0x44,0x00,        // 6b k
                                                0x00,0x41,0x7f,0x40,0x00,        // 6c l
                                                0x7c,0x04,0x18,0x04,0x78,        // 6d m
                                                0x7c,0x08,0x04,0x04,0x78,        // 6e n
                                                0x38,0x44,0x44,0x44,0x38,        // 6f o
                                                0x7c,0x14,0x14,0x14,0x08,        // 70 p
                                                0x08,0x14,0x14,0x18,0x7c,        // 71 q
                                                0x7c,0x08,0x04,0x04,0x08,        // 72 r
                                                0x48,0x54,0x54,0x54,0x20,        // 73 s
                                                0x04,0x3f,0x44,0x40,0x20,        // 74 t
                                                0x3c,0x40,0x40,0x20,0x7c,        // 75 u
                                                0x1c,0x20,0x40,0x20,0x1c,        // 76 v
                                                0x3c,0x40,0x30,0x40,0x3c,        // 77 w
                                                0x44,0x28,0x10,0x28,0x44,        // 78 x
                                                0x0c,0x50,0x50,0x50,0x3c,        // 79 y
                                                0x44,0x64,0x54,0x4c,0x44,        // 7a z
                                                0x00,0x08,0x36,0x41,0x00,        // 7b {
                                                0x00,0x00,0x7f,0x00,0x00,        // 7c |
                                                0x00,0x41,0x36,0x08,0x00,        // 7d }
                                                0x10,0x08,0x08,0x10,0x08,        // 7e ~
                                                0x78,0x46,0x41,0x46,0x78 };        // 7f ¦


// clear LCD
void Lcd_Clear(void){
unsigned int i;
Lcd_CMD(0x40); // Y = 0
Lcd_CMD(0xb0);
Lcd_CMD(0x10); // X = 0
Lcd_CMD(0x0);
Lcd_CMD(0xae); // disable display;
for(i=0;i<255;i++)
Lcd_DATA(0x00);
for(i=0;i<255;i++)
Lcd_DATA(0x00);
for(i=0;i<255;i++)
Lcd_DATA(0x00);
for(i=0;i<99;i++)
Lcd_DATA(0x00);
Lcd_CMD(0xaf); // enable display;
}

// init LCD
void Lcd_Init(void){
cs=0;
rst=0;
delay_ms(5);         // 5mS so says the stop watch(less than 5ms will not work)
rst=1;
Lcd_CMD(0x20); // write VOP register
Lcd_CMD(0x90);
Lcd_CMD(0xA4); // all on/normal display
Lcd_CMD(0x2F); // Power control set(charge pump on/off)
Lcd_CMD(0x40); // set start row address = 0
Lcd_CMD(0xb0); // set Y-address = 0
Lcd_CMD(0x10); // set X-address, upper 3 bits
Lcd_CMD(0x0);  // set X-address, lower 4 bits
Lcd_CMD(0xC8); // mirror Y axis (about X axis)
Lcd_CMD(0xa1); // Invert screen in horizontal axis
Lcd_CMD(0xac); // set initial row (R0) of the display
Lcd_CMD(0x07);
//Lcd_Write(CMD,0xF9); //
Lcd_CMD(0xaf); // display ON/OFF

Lcd_Clear(); // clear LCD
Lcd_CMD(0xa7); // invert display
delay_ms(100);
Lcd_CMD(0xa6); // normal display (non inverted)
delay_ms(100);
}


void Lcd_DATA(unsigned char c){
int i;


   cs=0;
   sclk=0;
   sda=1;
   sclk=1;

for(i=0;i<8;i++){
      sclk=0;
      if((c & 0x80))
            sda=1;
            else
            sda=0;
      sclk=1;
      c <<= 1;
     delay_us(10);
            }
     cs=1;
      }
      
 void Lcd_CMD(unsigned char b){
int ix;


   cs=0;
   sclk=0;
   sda=0;
   sclk=1;

for(ix=0;ix<8;ix++){
      sclk=0;
      if((b & 0x80))
            sda=1;
            else
            sda=0;
      sclk=1;
      b <<= 1;
     delay_us(10);
            }
     cs=1;
      }



void Gotoxy(char x,char y){
      Lcd_CMD((0xB0|(y&0x0F)));       // Y axis initialisation: 0100 yyyy
      Lcd_CMD((0x00|(x&0x0F)));       // X axis initialisation: 0000 xxxx ( x3 x2 x1 x0)
      Lcd_CMD((0x10|((x>>4)&0x07))); // X axis initialisation: 0010 0xxx  ( x6 x5 x4)

}

void print_char(char c)
{
   int i;


      for ( i = 0; i < 5; i++ )
        {
           if(c<0x50) {Lcd_DATA(FontLookup1[c - 0x20][i] << 1);}
           else if(c>0x4f) {Lcd_DATA(FontLookup2[c - 0x50][i] << 1);}
        }
         Lcd_DATA(0x00);
         Lcd_CMD(0xaf);
}

void main() {
   ADCON1 |= 0x0F;                      // AN pinleri dijital I/O yapılandırıldı
   CMCON  |= 7;                         // Comparators (karşılaştırıcılar) pasif edildi

TRISB=0;
PORTB=0;
Lcd_init();
delay_ms(50);

Gotoxy(0,2);
print_char('/');

Gotoxy(0,5);

print_char('^');

while(1){}

}