Új hozzászólás Aktív témák

  • #90088192

    törölt tag

    Hello Mindenkinek

    Segítséget szeretnek kerni, falba ütköztem, de nem értem miért.

    ../screen.c: In function 'put_pixel':
    ../screen.c:128:35: error: invalid operands to binary | (have 'int (*)(void)' and 'int')
    send_data_screen(data_read | (BASE_ADDRESS_PIXEL << x%Display_pages));

    Maga a probléma, amit addig értek(?), hogy nem lehet bináris műveletet elvégezni pointeren.

    Azt nem értem miért lett az pointer :DDD

    A program részletek amik relevánsak(Elnézést még nem kommenteltem az új szekciót mert nem működik):

    int data_read(void)
    {
    int data_in;
    DISPLAY_RS = 1;
    DISPLAY_RW = 1;
    DISPLAY_DATA_DIRECTION = 1;
    DelayUs(Hardware_delay*2);
    data_in = S_DATA_IN;
    DelayUs(Hardware_delay*4);
    DISPLAY_DATA_DIRECTION = 0;
    return(data_in);

    }

    int send_data_screen (long int Data_out) //Sends Data to the Display hardware
    {
    if(Data_out<=(Dislpay_height/Display_pages)*(Display_width/2) ) //Checks is the data length is valid
    {
    DISPLAY_EN = 0; //Turns Display Off
    DISPLAY_RS = 1; //Enables Data mode
    DelayUs(Hardware_delay);
    S_DATA_OUT = Data_out; //Insert Data to the hardware line
    strobe_E(); //Turns Display On/off
    DISPLAY_RS = 0; //Disables Data mode

    }else{
    return(1);
    }
    }
    int put_pixel(int x, int y)
    {
    if(x>=0 && x<=63 && y>=0 && y<=127)
    {
    goto_xy(x/Display_pages,y);
    send_data_screen(data_read | (BASE_ADDRESS_PIXEL << x%Display_pages));

    }else{
    return(1);
    }
    }

Új hozzászólás Aktív témák