LiDE is working up to 1200 dpi

- fixed sensor's register setting (reg 16+)
- setup LiDE for up to 1200 DPI operation
merge-requests/1/head
Stphane Voltz 2010-06-15 06:58:29 +02:00
rodzic 6bde3c8e56
commit e48f5b2ee3
2 zmienionych plików z 24 dodań i 29 usunięć

Wyświetl plik

@ -406,14 +406,14 @@ static Genesys_Sensor Sensor[] = {
1200, /* optical resolution */ 1200, /* optical resolution */
87, /* black pixels */ 87, /* black pixels */
16, /* dummy pixels */ 16, /* dummy pixels */
0, 303,
10400, 10272,
210, 210,
200, 200,
{0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00},
/* reg 0x10 - 0x1d */ /* reg 0x10 - 0x1d */
{0x02, 0x7d, 0x02, 0x7d, 0x02, 0x7d, /* EXPR/EXPG/EXPB */ {0x01, 0xc0, 0x01, 0xc0, 0x01, 0x40, /* EXPR/EXPG/EXPB */
0x10, 0x0c, 0x00, 0xff, 0x34, 0x00, 0x02, 0x04 }, 0x10, 0x08, 0x00, 0xff, 0x34, 0x00, 0x02, 0x04 },
/* reg 0x52 - 0x5e */ /* reg 0x52 - 0x5e */
{0x03, 0x07, {0x03, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@ -794,21 +794,16 @@ static Genesys_Motor Motor[] = {
}, },
{MOTOR_CANONLIDE200, /* Canon LiDE 200 */ {MOTOR_CANONLIDE200, /* Canon LiDE 200 */
1200, 1200,
2400, 4800,
2,
1, 1,
1, { /* motor slopes */
{{{ { /* power mode 0 */
2343, /* first value of a recorded motor slope */ { 3700, 1017, 127, 0.50}, /* full step */
534, /* last value of recorded slope table */ { 3700, 1017, 127, 0.50}, /* half step */
60, { 3*2712, 3*2712, 16, 0.80}, /* quarter step 0.75*2712 */
0.8, },
}, },
{
3500,
1400,
60,
0.8,
},},},
}, },
}; };
@ -985,9 +980,9 @@ static Genesys_Model canon_lide_200_model = {
{16, 8, 0}, /* possible depths in gray mode */ {16, 8, 0}, /* possible depths in gray mode */
{16, 8, 0}, /* possible depths in color mode */ {16, 8, 0}, /* possible depths in color mode */
SANE_FIX (0.42), /* Start of scan area in mm (x) */ SANE_FIX (0.0), /* Start of scan area in mm (x) */
SANE_FIX (7.9), /* Start of scan area in mm (y) */ SANE_FIX (7.3), /* Start of scan area in mm (y) */
SANE_FIX (218.0), /* Size of scan area in mm (x) */ SANE_FIX (216.07), /* Size of scan area in mm (x) */
SANE_FIX (299.0), /* Size of scan area in mm (y) */ SANE_FIX (299.0), /* Size of scan area in mm (y) */
SANE_FIX (3.0), /* Start of white strip in mm (y) */ SANE_FIX (3.0), /* Start of white strip in mm (y) */
@ -1015,8 +1010,8 @@ static Genesys_Model canon_lide_200_model = {
DAC_CANONLIDE200, DAC_CANONLIDE200,
GPO_CANONLIDE200, GPO_CANONLIDE200,
MOTOR_CANONLIDE200, MOTOR_CANONLIDE200,
GENESYS_FLAG_ODD_EVEN_CIS /* Which flags are needed for this scanner? */ GENESYS_FLAG_SKIP_WARMUP
| GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_ODD_EVEN_CIS
| GENESYS_FLAG_OFFSET_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION
| GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_DARK_CALIBRATION
| GENESYS_FLAG_CUSTOM_GAMMA, | GENESYS_FLAG_CUSTOM_GAMMA,

Wyświetl plik

@ -2362,10 +2362,10 @@ gl847_set_lamp_power (Genesys_Device * dev,
0x03) 0x03)
| REG03_LAMPPWR); | REG03_LAMPPWR);
r = sanei_genesys_get_address (regs, 0x10); for (i = 0; i < 6; i++)
for (i = 0; i < 6; i++, r++)
{ {
r->value = dev->sensor.regs_0x10_0x1d[i]; r = sanei_genesys_get_address (dev->calib_reg, 0x10+i);
r->value = dev->sensor.regs_0x10_0x1d[i];
} }
r = sanei_genesys_get_address (regs, 0x19); r = sanei_genesys_get_address (regs, 0x19);
r->value = 0x50; r->value = 0x50;
@ -2377,9 +2377,9 @@ gl847_set_lamp_power (Genesys_Device * dev,
0x03) 0x03)
& ~REG03_LAMPPWR); & ~REG03_LAMPPWR);
r = sanei_genesys_get_address (regs, 0x10); for (i = 0; i < 6; i++)
for (i = 0; i < 6; i++, r++)
{ {
r = sanei_genesys_get_address (dev->calib_reg, 0x10+i);
r->value = 0x00; r->value = 0x00;
} }
r = sanei_genesys_get_address (regs, 0x19); r = sanei_genesys_get_address (regs, 0x19);
@ -3769,7 +3769,7 @@ gl847_led_calibration (Genesys_Device * dev)
dev->sensor.regs_0x10_0x1d[4] = (expb >> 8) & 0xff; dev->sensor.regs_0x10_0x1d[4] = (expb >> 8) & 0xff;
dev->sensor.regs_0x10_0x1d[5] = expb & 0xff; dev->sensor.regs_0x10_0x1d[5] = expb & 0xff;
for (i = 0; i < 6; i++, r++) for (i = 0; i < 6; i++)
{ {
r = sanei_genesys_get_address (dev->calib_reg, 0x10+i); r = sanei_genesys_get_address (dev->calib_reg, 0x10+i);
r->value = dev->sensor.regs_0x10_0x1d[i]; r->value = dev->sensor.regs_0x10_0x1d[i];