4Bit,8Bit - FastIO for enable pin

This commit is contained in:
flo
2012-01-29 06:51:40 +01:00
parent 17955fa641
commit d6d9e90306
2 changed files with 11 additions and 7 deletions
+6 -6
View File
@@ -120,7 +120,9 @@ void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t en
_rs_pin = rs;
_rw_pin = rw;
_enable_pin = enable;
_enable_bit = fio_pinToBit(enable);
_enable_register = fio_pinToInputRegister(enable);
// Initialize data pins for FastIO
_data_bits[0] = fio_pinToBit(d0);
@@ -151,8 +153,6 @@ void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t en
pinMode(_rw_pin, OUTPUT);
}
pinMode(_enable_pin, OUTPUT);
// Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS
// -------------------------------------------------------------------------
if (fourbitmode)
@@ -191,7 +191,7 @@ void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize)
// Now we pull both RS and R/W low to begin commands
digitalWrite(_rs_pin, LOW);
digitalWrite(_enable_pin, LOW);
fio_digitalWrite_LOW(_enable_register,_enable_bit);
if (_rw_pin != 255)
{
@@ -286,9 +286,9 @@ void LiquidCrystal::pulseEnable(void)
{
// There is no need for the delays, since the digitalWrite operation
// takes longer.
digitalWrite(_enable_pin, HIGH);
fio_digitalWrite_HIGH(_enable_register, _enable_bit);
waitUsec(1); // enable pulse must be > 450ns
digitalWrite(_enable_pin, LOW);
fio_digitalWrite_SWITCH(_enable_register, _enable_bit);
waitUsec(40); // commands need > 37us to settle
}
+5 -1
View File
@@ -129,8 +129,12 @@ private:
uint8_t _rs_pin; // LOW: command. HIGH: character.
uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD.
uint8_t _enable_pin; // activated by a HIGH pulse.
// Enable pin - activated by a HIGH pulse.
fio_bit _enable_bit;
fio_register _enable_register;
// data pins
fio_bit _data_bits[8];
fio_register _data_registers[8];
};