1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#########################################################################################
# Package HiPi::Interface::EPaper::Waveshare::EPD250X122
# Description : Control Monochrome Epaper Displays
# Copyright : Copyright (c) 2018 Mark Dootson
# License : This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#########################################################################################
package HiPi::Interface::EPaper::Waveshare::EPD250X122;
#########################################################################################
use strict;
use warnings;
use parent qw( HiPi::Interface::EPaper::TypeA );
use HiPi qw( :rpi :spi :epaper );
use Carp;
__PACKAGE__->create_accessors( qw( ) );
our $VERSION ='0.81';
sub _create {
my( $class, %params ) = @_;
$params{device_width} = 122;
$params{device_height} = 250;
$params{offsetx} = 6;
$params{is_tri_colour} = 0;
$params{frame_1_bpp} = EPD_FRAME_BPP_1;
$params{frame_2_bpp} = EPD_FRAME_BPP_1;
$params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
$params{frame_2_type} = EPD_FRAME_TYPE_UNUSED;
$params{frame_1_invert} = 0;
$params{frame_2_invert} = 0;
$params{rotation} //= 90;
$params{border_control} = EPD_BORDER_POR;
$params{can_partial} = 1;
$params{busy_state} = RPI_HIGH;
$params{driver_ouput_control_bytes} = [
( $params{device_height} -1 ) & 0xFF,
(($params{device_height} -1 ) >> 8) & 0xFF,
0x00, # // GD = 0; SM = 0; TB = 0;
];
$params{booster_soft_start_control_bytes} = [ 0xD7, 0xD6, 0x9D ];
$params{vcom_register_bytes} = [ 0xA8 ];
$params{dummy_line_period_bytes} = [ 0x1A ];
$params{gate_time_bytes} = [ 0x08 ];
$params{data_entry_mode_bytes} = [ 0x03 ];
$params{lut_full} = [
0x22, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x11,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00
];
$params{lut_partial} = [
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
];
my $self = $class->SUPER::_create( %params );
return $self;
}
1;
__END__
|