static void
omap_set_lcd_mode(int w, int h)
{
    uint32 DISPC = DISPC_BASE;
    unsigned int i;
    struct video_mode *m;

    dprintf("omap3: set_lcd_mode %d,%d\n", w, h);

    for (i = 0; i < sizeof(modes) / sizeof(modes[0]); i++) {
        if (w <= modes[i].width
                && h <= modes[i].height)
            goto found;
    }
    i -= 1;
found:
    m = &modes[i];

    dprintf("omap3: found mode[%s]\n", m->name);

    setreg(DISPC, DISPC_SIZE_LCD, (m->width - 1) | ((m->height - 1) << 16));
    setreg(DISPC, DISPC_TIMING_H, m->dispc_timing_h);
    setreg(DISPC, DISPC_TIMING_V, m->dispc_timing_v);

    modreg(DISPC, DISPC_DIVISOR, 0xffff, m->dispc_divisor);
    modaddr(CM_CLKSEL_DSS, 0xffff, m->dss_divisor);

    // Tell hardware to update, and wait for it
    modreg(DISPC, DISPC_CONTROL,
           DISPC_GOLCD,
           DISPC_GOLCD);

    while ((readreg(DISPC, DISPC_CONTROL) & DISPC_GOLCD))
        ;
}
static void
omap_attach_framebuffer(addr_t data, int width, int height, int depth)
{
    uint32 DISPC = DISPC_BASE;
    uint32 gsize = ((height - 1) << 16) | (width - 1);

    dprintf("omap3: attach bitmap (%d,%d) to screen\n", width, height);

    setreg(DISPC, DISPC_GFX_BA0, (uint32)data);
    setreg(DISPC, DISPC_GFX_BA1, (uint32)data);
    setreg(DISPC, DISPC_GFX_POSITION, 0);
    setreg(DISPC, DISPC_GFX_SIZE, gsize);
    setreg(DISPC, DISPC_GFX_FIFO_THRESHOLD, (0x3ff << 16) | 0x3c0);
    setreg(DISPC, DISPC_GFX_ROW_INC, 1);
    setreg(DISPC, DISPC_GFX_PIXEL_INC, 1);
    setreg(DISPC, DISPC_GFX_WINDOW_SKIP, 0);
    setreg(DISPC, DISPC_GFX_ATTRIBUTES, DISPC_GFXFORMAT_RGB16
           | DISPC_GFXBURSTSIZE_16x32 | DISPC_GFXENABLE);

    // Tell hardware to update, and wait for it
    modreg(DISPC, DISPC_CONTROL, DISPC_GOLCD, DISPC_GOLCD);

    while ((readreg(DISPC, DISPC_CONTROL) & DISPC_GOLCD))
        ;
}
Ejemplo n.º 3
0
int main(){system("color 2f");
           system("cls");
           int  i=20,con=0;  
           char opc,cadena[i][4][30];
           for(int q=0;q==0;){ 
                  printf("*******************************************************************************\n\t\t\t\tSUPER AGENDA 2011\n");
                  printf("*******************************************************************************\n\n");
                  printf("1) INGRESAR NUEVO REGISTRO\n2) BORRAR REGISTRO\n3) VER AGENDA \n4) VER REGISTRO\n5) MODIFICAR REGISTRO\n6) BORRAR AGENDA\n7) SALIR\n ");
                  printf("\nSELECCIONE UNA OPCION: ");
                  opc=getche();
                  system("cls");
                  switch(opc){
                        case '1':con=nuevoreg(cadena,i,con);break;
                        case '2':con=boreg(cadena,i,con);break; 
                        case '3':verag(cadena,i,con);break;
                        case '4':verreg(cadena,i,con);break;
                        case '5':modreg(cadena,i,con);break;
                        case '6':con=borag(con);break;
                        case '7':salir();break;
                        default:printf("\aOPCION INVALIDA\n\n");}}}