Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Sign in / Register
Toggle navigation
Lulzbot TAZ 1.0 Marlin Firmware
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Insights
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Security & Compliance
Security & Compliance
Dependency List
Packages
Packages
List
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kevin Cole
Lulzbot TAZ 1.0 Marlin Firmware
Commits
14e1a712
Unverified
Commit
14e1a712
authored
Feb 08, 2019
by
Kevin Cole
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- "Clone"
http://download.lulzbot.com/TAZ/1.0/software/current/firmware/
parents
Changes
72
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
72 changed files
with
3261 additions
and
0 deletions
+3261
-0
Marlin-12v.cpp.hex
Marlin-12v.cpp.hex
+0
-0
Marlin.tar.bz2
Marlin.tar.bz2
+0
-0
Marlin/ArduinoAddons/Arduino_0.xx/Gen6/boards.txt
Marlin/ArduinoAddons/Arduino_0.xx/Gen6/boards.txt
+35
-0
Marlin/ArduinoAddons/Arduino_0.xx/Gen7/boards.txt
Marlin/ArduinoAddons/Arduino_0.xx/Gen7/boards.txt
+101
-0
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/boards.txt
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/boards.txt
+99
-0
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/programmers.txt
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/programmers.txt
+20
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.cpp
...ns/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.cpp
+309
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.h
...dons/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.h
+104
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/LiquidCrystal/keywords.txt
...oAddons/Arduino_0.xx/libraries/LiquidCrystal/keywords.txt
+37
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/SPI.cpp
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/SPI.cpp
+61
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/SPI.h
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/SPI.h
+70
-0
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/keywords.txt
Marlin/ArduinoAddons/Arduino_0.xx/libraries/SPI/keywords.txt
+37
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.cpp
...s/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.cpp
+310
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.h
...ons/Arduino_1.x.x/libraries/LiquidCrystal/LiquidCrystal.h
+106
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/LiquidCrystal/keywords.txt
...Addons/Arduino_1.x.x/libraries/LiquidCrystal/keywords.txt
+37
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.cpp
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.cpp
+66
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.h
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/SPI/SPI.h
+70
-0
Marlin/ArduinoAddons/Arduino_1.x.x/libraries/SPI/keywords.txt
...in/ArduinoAddons/Arduino_1.x.x/libraries/SPI/keywords.txt
+37
-0
Marlin/ArduinoAddons/Arduino_1.x.x/sanguino/boards.txt
Marlin/ArduinoAddons/Arduino_1.x.x/sanguino/boards.txt
+63
-0
Marlin/Marlin/COPYING
Marlin/Marlin/COPYING
+0
-0
Marlin/Marlin/Configuration.h
Marlin/Marlin/Configuration.h
+0
-0
Marlin/Marlin/ConfigurationStore.cpp
Marlin/Marlin/ConfigurationStore.cpp
+244
-0
Marlin/Marlin/ConfigurationStore.h
Marlin/Marlin/ConfigurationStore.h
+22
-0
Marlin/Marlin/Configuration_adv.h
Marlin/Marlin/Configuration_adv.h
+0
-0
Marlin/Marlin/LCD Menu Tree.pdf
Marlin/Marlin/LCD Menu Tree.pdf
+0
-0
Marlin/Marlin/LiquidCrystalRus.cpp
Marlin/Marlin/LiquidCrystalRus.cpp
+0
-0
Marlin/Marlin/LiquidCrystalRus.h
Marlin/Marlin/LiquidCrystalRus.h
+129
-0
Marlin/Marlin/Makefile
Marlin/Marlin/Makefile
+0
-0
Marlin/Marlin/Marlin.h
Marlin/Marlin/Marlin.h
+203
-0
Marlin/Marlin/Marlin.ino
Marlin/Marlin/Marlin.ino
+42
-0
Marlin/Marlin/MarlinSerial.cpp
Marlin/Marlin/MarlinSerial.cpp
+322
-0
Marlin/Marlin/MarlinSerial.h
Marlin/Marlin/MarlinSerial.h
+184
-0
Marlin/Marlin/Marlin_main.cpp
Marlin/Marlin/Marlin_main.cpp
+0
-0
Marlin/Marlin/Menu Plans.xlsx
Marlin/Marlin/Menu Plans.xlsx
+0
-0
Marlin/Marlin/Sd2Card.cpp
Marlin/Marlin/Sd2Card.cpp
+0
-0
Marlin/Marlin/Sd2Card.h
Marlin/Marlin/Sd2Card.h
+242
-0
Marlin/Marlin/Sd2PinMap.h
Marlin/Marlin/Sd2PinMap.h
+0
-0
Marlin/Marlin/SdBaseFile.cpp
Marlin/Marlin/SdBaseFile.cpp
+0
-0
Marlin/Marlin/SdBaseFile.h
Marlin/Marlin/SdBaseFile.h
+0
-0
Marlin/Marlin/SdFatConfig.h
Marlin/Marlin/SdFatConfig.h
+121
-0
Marlin/Marlin/SdFatStructs.h
Marlin/Marlin/SdFatStructs.h
+0
-0
Marlin/Marlin/SdFatUtil.cpp
Marlin/Marlin/SdFatUtil.cpp
+79
-0
Marlin/Marlin/SdFatUtil.h
Marlin/Marlin/SdFatUtil.h
+49
-0
Marlin/Marlin/SdFile.cpp
Marlin/Marlin/SdFile.cpp
+0
-0
Marlin/Marlin/SdFile.h
Marlin/Marlin/SdFile.h
+55
-0
Marlin/Marlin/SdInfo.h
Marlin/Marlin/SdInfo.h
+0
-0
Marlin/Marlin/SdVolume.cpp
Marlin/Marlin/SdVolume.cpp
+0
-0
Marlin/Marlin/SdVolume.h
Marlin/Marlin/SdVolume.h
+0
-0
Marlin/Marlin/cardreader.cpp
Marlin/Marlin/cardreader.cpp
+0
-0
Marlin/Marlin/cardreader.h
Marlin/Marlin/cardreader.h
+0
-0
Marlin/Marlin/createTemperatureLookupMarlin.py
Marlin/Marlin/createTemperatureLookupMarlin.py
+0
-0
Marlin/Marlin/create_speed_lookuptable.py
Marlin/Marlin/create_speed_lookuptable.py
+0
-0
Marlin/Marlin/fastio.h
Marlin/Marlin/fastio.h
+0
-0
Marlin/Marlin/language.h
Marlin/Marlin/language.h
+0
-0
Marlin/Marlin/motion_control.cpp
Marlin/Marlin/motion_control.cpp
+0
-0
Marlin/Marlin/motion_control.h
Marlin/Marlin/motion_control.h
+0
-0
Marlin/Marlin/pins.h
Marlin/Marlin/pins.h
+0
-0
Marlin/Marlin/planner.cpp
Marlin/Marlin/planner.cpp
+0
-0
Marlin/Marlin/planner.h
Marlin/Marlin/planner.h
+0
-0
Marlin/Marlin/speed_lookuptable.h
Marlin/Marlin/speed_lookuptable.h
+0
-0
Marlin/Marlin/stepper.cpp
Marlin/Marlin/stepper.cpp
+0
-0
Marlin/Marlin/stepper.h
Marlin/Marlin/stepper.h
+0
-0
Marlin/Marlin/temperature.cpp
Marlin/Marlin/temperature.cpp
+0
-0
Marlin/Marlin/temperature.h
Marlin/Marlin/temperature.h
+0
-0
Marlin/Marlin/thermistortables.h
Marlin/Marlin/thermistortables.h
+0
-0
Marlin/Marlin/ultralcd.cpp
Marlin/Marlin/ultralcd.cpp
+0
-0
Marlin/Marlin/ultralcd.h
Marlin/Marlin/ultralcd.h
+0
-0
Marlin/Marlin/ultralcd_implementation_hitachi_HD44780.h
Marlin/Marlin/ultralcd_implementation_hitachi_HD44780.h
+0
-0
Marlin/Marlin/watchdog.cpp
Marlin/Marlin/watchdog.cpp
+0
-0
Marlin/Marlin/watchdog.h
Marlin/Marlin/watchdog.h
+0
-0
Marlin/README.md
Marlin/README.md
+0
-0
README.md
README.md
+7
-0
No files found.
Marlin-12v.cpp.hex
0 → 100644
View file @
14e1a712
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Marlin.tar.bz2
0 → 100644
View file @
14e1a712
File added
Marlin/ArduinoAddons/Arduino_0.xx/Gen6/boards.txt
0 → 100644
View file @
14e1a712
##############################################################
Generation_Series.name=Gen6 & Gen6 Deluxe
Generation_Series.upload.protocol=stk500
Generation_Series.upload.maximum_size=63488
Generation_Series.upload.speed=38400
Generation_Series.bootloader.low_fuses=0xFF
Generation_Series.bootloader.high_fuses=0xDC
Generation_Series.bootloader.extended_fuses=0xFD
Generation_Series.bootloader.path=atmega644p
Generation_Series.bootloader.file=ATmegaBOOT_644P.hex
Generation_Series.bootloader.unlock_bits=0x3F
Generation_Series.bootloader.lock_bits=0x0F
Generation_Series.build.mcu=atmega644p
Generation_Series.build.f_cpu=16000000L
Generation_Series.build.core=arduino
##############################################################
Sanguinololu.name=Sanguinololu 1.2 and above
Sanguinololu.upload.protocol=stk500
Sanguinololu.upload.maximum_size=63488
Sanguinololu.upload.speed=38400
Sanguinololu.bootloader.low_fuses=0xFF
Sanguinololu.bootloader.high_fuses=0xDC
Sanguinololu.bootloader.extended_fuses=0xFD
Sanguinololu.bootloader.path=atmega644p
Sanguinololu.bootloader.file=ATmegaBOOT_644P.hex
Sanguinololu.bootloader.unlock_bits=0x3F
Sanguinololu.bootloader.lock_bits=0x0F
Sanguinololu.build.mcu=atmega644p
Sanguinololu.build.f_cpu=16000000L
Sanguinololu.build.core=arduino
Marlin/ArduinoAddons/Arduino_0.xx/Gen7/boards.txt
0 → 100644
View file @
14e1a712
##############################################################
Gen7-644-16.name=Gen7 with ATmega644 and 16 MHz
Gen7-644-16.upload.protocol=stk500v2
Gen7-644-16.upload.maximum_size=63488
Gen7-644-16.upload.speed=115200
Gen7-644-16.bootloader.low_fuses=0xF7
Gen7-644-16.bootloader.high_fuses=0xD4
Gen7-644-16.bootloader.extended_fuses=0xFD
Gen7-644-16.bootloader.path=Gen7
Gen7-644-16.bootloader.file=bootloader-644-16MHz.hex
Gen7-644-16.bootloader.unlock_bits=0x3F
Gen7-644-16.bootloader.lock_bits=0x0F
Gen7-644-16.build.mcu=atmega644
Gen7-644-16.build.f_cpu=16000000L
Gen7-644-16.build.core=arduino
##############################################################
Gen7-644-20.name=Gen7 with ATmega644 and 20 MHz
Gen7-644-20.upload.protocol=stk500v2
Gen7-644-20.upload.maximum_size=63488
Gen7-644-20.upload.speed=115200
Gen7-644-20.bootloader.low_fuses=0xF7
Gen7-644-20.bootloader.high_fuses=0xD4
Gen7-644-20.bootloader.extended_fuses=0xFD
Gen7-644-20.bootloader.path=Gen7
Gen7-644-20.bootloader.file=bootloader-644-20MHz.hex
Gen7-644-20.bootloader.unlock_bits=0x3F
Gen7-644-20.bootloader.lock_bits=0x0F
Gen7-644-20.build.mcu=atmega644
Gen7-644-20.build.f_cpu=20000000L
Gen7-644-20.build.core=arduino
##############################################################
Gen7-644P-16.name=Gen7 with ATmega644P and 16 MHz
Gen7-644P-16.upload.protocol=stk500v2
Gen7-644P-16.upload.maximum_size=63488
Gen7-644P-16.upload.speed=115200
Gen7-644P-16.bootloader.low_fuses=0xF7
Gen7-644P-16.bootloader.high_fuses=0xD4
Gen7-644P-16.bootloader.extended_fuses=0xFD
Gen7-644P-16.bootloader.path=Gen7
Gen7-644P-16.bootloader.file=bootloader-644P-16MHz.hex
Gen7-644P-16.bootloader.unlock_bits=0x3F
Gen7-644P-16.bootloader.lock_bits=0x0F
Gen7-644P-16.build.mcu=atmega644p
Gen7-644P-16.build.f_cpu=16000000L
Gen7-644P-16.build.core=arduino
##############################################################
Gen7-644P-20.name=Gen7 with ATmega644P and 20 MHz
Gen7-644P-20.upload.protocol=stk500v2
Gen7-644P-20.upload.maximum_size=63488
Gen7-644P-20.upload.speed=115200
Gen7-644P-20.bootloader.low_fuses=0xF7
Gen7-644P-20.bootloader.high_fuses=0xD4
Gen7-644P-20.bootloader.extended_fuses=0xFD
Gen7-644P-20.bootloader.path=Gen7
Gen7-644P-20.bootloader.file=bootloader-644P-20MHz.hex
Gen7-644P-20.bootloader.unlock_bits=0x3F
Gen7-644P-20.bootloader.lock_bits=0x0F
Gen7-644P-20.build.mcu=atmega644p
Gen7-644P-20.build.f_cpu=20000000L
Gen7-644P-20.build.core=arduino
##############################################################
Gen7-1284p-16.name=Gen7 with ATmega1284 and 16 MHz
Gen7-1284p-16.upload.protocol=stk500v2
Gen7-1284p-16.upload.maximum_size=129024
Gen7-1284p-16.upload.speed=115200
Gen7-1284p-16.bootloader.low_fuses=0xF7
Gen7-1284p-16.bootloader.high_fuses=0xD4
Gen7-1284p-16.bootloader.extended_fuses=0xFD
Gen7-1284p-16.bootloader.path=Gen7
Gen7-1284p-16.bootloader.file=bootloader-1284P-16MHz.hex
Gen7-1284p-16.bootloader.unlock_bits=0x3F
Gen7-1284p-16.bootloader.lock_bits=0x2F
Gen7-1284p-16.build.mcu=atmega1284p
Gen7-1284p-16.build.f_cpu=16000000L
Gen7-1284p-16.build.core=arduino
##############################################################
Gen7-1284p-20.name=Gen7 with ATmega1284 and 20 MHz
Gen7-1284p-20.upload.protocol=stk500v2
Gen7-1284p-20.upload.maximum_size=129024
Gen7-1284p-20.upload.speed=115200
Gen7-1284p-20.bootloader.low_fuses=0xF7
Gen7-1284p-20.bootloader.high_fuses=0xD4
Gen7-1284p-20.bootloader.extended_fuses=0xFD
Gen7-1284p-20.bootloader.path=Gen7
Gen7-1284p-20.bootloader.file=bootloader-1284P-16MHz.hex
Gen7-1284p-20.bootloader.unlock_bits=0x3F
Gen7-1284p-20.bootloader.lock_bits=0x2F
Gen7-1284p-20.build.mcu=atmega1284p
Gen7-1284p-20.build.f_cpu=20000000L
Gen7-1284p-20.build.core=arduino
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/boards.txt
0 → 100644
View file @
14e1a712
##############################################################
sanguino.name=Sanguino
sanguino.upload.protocol=stk500
sanguino.upload.maximum_size=63488
sanguino.upload.speed=38400
sanguino.bootloader.low_fuses=0xFF
sanguino.bootloader.high_fuses=0xDC
sanguino.bootloader.extended_fuses=0xFD
sanguino.bootloader.path=atmega644p
sanguino.bootloader.file=ATmegaBOOT_644P.hex
sanguino.bootloader.unlock_bits=0x3F
sanguino.bootloader.lock_bits=0x0F
sanguino.build.mcu=atmega644p
sanguino.build.f_cpu=16000000L
sanguino.build.core=arduino
##############################################################
atmega644.name=Sanguino W/ ATmega644P
atmega644.upload.protocol=stk500
atmega644.upload.maximum_size=63488
atmega644.upload.speed=57600
atmega644.bootloader.low_fuses=0xFF
atmega644.bootloader.high_fuses=0x9A
atmega644.bootloader.extended_fuses=0xFF
atmega644.bootloader.path=atmega
atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex
#atmega644.bootloader.file=ATmegaBOOT_644P.hex
atmega644.bootloader.unlock_bits=0x3F
atmega644.bootloader.lock_bits=0x0F
atmega644.build.mcu=atmega644p
atmega644.build.f_cpu=16000000L
atmega644.build.core=arduino
##############################################################
atmega12848m.name=Sanguino W/ ATmega1284p 8mhz
atmega12848m.upload.protocol=stk500
atmega12848m.upload.maximum_size=131072
atmega12848m.upload.speed=19200
atmega12848m.bootloader.low_fuses=0xFD
atmega12848m.bootloader.high_fuses=0x9A
atmega12848m.bootloader.extended_fuses=0xFF
atmega12848m.bootloader.path=atmega
atmega12848m.bootloader.file=ATmegaBOOT_168_atmega1284p_8m.hex
atmega12848m.bootloader.unlock_bits=0x3F
atmega12848m.bootloader.lock_bits=0x0F
atmega12848m.build.mcu=atmega1284p
atmega12848m.build.f_cpu=8000000L
atmega12848m.build.core=arduino
##############################################################
atmega1284.name=Sanguino W/ ATmega1284p 16mhz
atmega1284.upload.protocol=stk500
atmega1284.upload.maximum_size=131072
atmega1284.upload.speed=57600
atmega1284.bootloader.low_fuses=0xFF
atmega1284.bootloader.high_fuses=0x9A
atmega1284.bootloader.extended_fuses=0xFF
atmega1284.bootloader.path=atmega
atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex
atmega1284.bootloader.unlock_bits=0x3F
atmega1284.bootloader.lock_bits=0x0F
atmega1284.build.mcu=atmega1284p
atmega1284.build.f_cpu=16000000L
atmega1284.build.core=arduino
##############################################################
atmega1284s.name=Sanguino W/ ATmega1284p 20mhz
atmega1284s.upload.protocol=stk500
atmega1284s.upload.maximum_size=131072
atmega1284s.upload.speed=57600
atmega1284s.bootloader.low_fuses=0xFF
atmega1284s.bootloader.high_fuses=0x9A
atmega1284s.bootloader.extended_fuses=0xFF
atmega1284s.bootloader.path=atmega
atmega1284s.bootloader.file=ATmegaBOOT_168_atmega1284p.hex
atmega1284s.bootloader.unlock_bits=0x3F
atmega1284s.bootloader.lock_bits=0x0F
atmega1284s.build.mcu=atmega1284p
atmega1284s.build.f_cpu=20000000L
atmega1284s.build.core=arduino
#
Marlin/ArduinoAddons/Arduino_0.xx/Sanguino/programmers.txt
0 → 100644
View file @
14e1a712
avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1
avrispmkii.name=AVRISP mkII
avrispmkii.communication=usb
avrispmkii.protocol=stk500v2
usbtinyisp.name=USBtinyISP
usbtinyisp.protocol=usbtiny
parallel.name=Parallel Programmer
parallel.protocol=dapa
parallel.force=true
# parallel.delay=200
arduinoisp.name=Arduino as ISP
arduinoisp.communication=serial
arduinoisp.protocol=stk500v1
arduinoisp.speed=19200
Marlin/ArduinoAddons/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.cpp
0 → 100644
View file @
14e1a712
#include "LiquidCrystal.h"
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#include "WProgram.h"
// When the display powers up, it is configured as follows:
//
// 1. Display clear
// 2. Function set:
// DL = 1; 8-bit interface data
// N = 0; 1-line display
// F = 0; 5x8 dot character font
// 3. Display on/off control:
// D = 0; Display off
// C = 0; Cursor off
// B = 0; Blinking off
// 4. Entry mode set:
// I/D = 1; Increment by 1
// S = 0; No shift
//
// Note, however, that resetting the Arduino doesn't reset the LCD, so we
// can't assume that its in that state when a sketch starts (and the
// LiquidCrystal constructor is called).
LiquidCrystal
::
LiquidCrystal
(
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
)
{
init
(
0
,
rs
,
rw
,
enable
,
d0
,
d1
,
d2
,
d3
,
d4
,
d5
,
d6
,
d7
);
}
LiquidCrystal
::
LiquidCrystal
(
uint8_t
rs
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
)
{
init
(
0
,
rs
,
255
,
enable
,
d0
,
d1
,
d2
,
d3
,
d4
,
d5
,
d6
,
d7
);
}
LiquidCrystal
::
LiquidCrystal
(
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
)
{
init
(
1
,
rs
,
rw
,
enable
,
d0
,
d1
,
d2
,
d3
,
0
,
0
,
0
,
0
);
}
LiquidCrystal
::
LiquidCrystal
(
uint8_t
rs
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
)
{
init
(
1
,
rs
,
255
,
enable
,
d0
,
d1
,
d2
,
d3
,
0
,
0
,
0
,
0
);
}
void
LiquidCrystal
::
init
(
uint8_t
fourbitmode
,
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
)
{
_rs_pin
=
rs
;
_rw_pin
=
rw
;
_enable_pin
=
enable
;
_data_pins
[
0
]
=
d0
;
_data_pins
[
1
]
=
d1
;
_data_pins
[
2
]
=
d2
;
_data_pins
[
3
]
=
d3
;
_data_pins
[
4
]
=
d4
;
_data_pins
[
5
]
=
d5
;
_data_pins
[
6
]
=
d6
;
_data_pins
[
7
]
=
d7
;
pinMode
(
_rs_pin
,
OUTPUT
);
// we can save 1 pin by not using RW. Indicate by passing 255 instead of pin#
if
(
_rw_pin
!=
255
)
{
pinMode
(
_rw_pin
,
OUTPUT
);
}
pinMode
(
_enable_pin
,
OUTPUT
);
if
(
fourbitmode
)
_displayfunction
=
LCD_4BITMODE
|
LCD_1LINE
|
LCD_5x8DOTS
;
else
_displayfunction
=
LCD_8BITMODE
|
LCD_1LINE
|
LCD_5x8DOTS
;
begin
(
16
,
1
);
}
void
LiquidCrystal
::
begin
(
uint8_t
cols
,
uint8_t
lines
,
uint8_t
dotsize
)
{
if
(
lines
>
1
)
{
_displayfunction
|=
LCD_2LINE
;
}
_numlines
=
lines
;
_currline
=
0
;
// for some 1 line displays you can select a 10 pixel high font
if
((
dotsize
!=
0
)
&&
(
lines
==
1
))
{
_displayfunction
|=
LCD_5x10DOTS
;
}
// SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
// according to datasheet, we need at least 40ms after power rises above 2.7V
// before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50
delayMicroseconds
(
50000
);
// Now we pull both RS and R/W low to begin commands
digitalWrite
(
_rs_pin
,
LOW
);
digitalWrite
(
_enable_pin
,
LOW
);
if
(
_rw_pin
!=
255
)
{
digitalWrite
(
_rw_pin
,
LOW
);
}
//put the LCD into 4 bit or 8 bit mode
if
(
!
(
_displayfunction
&
LCD_8BITMODE
))
{
// this is according to the hitachi HD44780 datasheet
// figure 24, pg 46
// we start in 8bit mode, try to set 4 bit mode
write4bits
(
0x03
);
delayMicroseconds
(
4500
);
// wait min 4.1ms
// second try
write4bits
(
0x03
);
delayMicroseconds
(
4500
);
// wait min 4.1ms
// third go!
write4bits
(
0x03
);
delayMicroseconds
(
150
);
// finally, set to 4-bit interface
write4bits
(
0x02
);
}
else
{
// this is according to the hitachi HD44780 datasheet
// page 45 figure 23
// Send function set command sequence
command
(
LCD_FUNCTIONSET
|
_displayfunction
);
delayMicroseconds
(
4500
);
// wait more than 4.1ms
// second try
command
(
LCD_FUNCTIONSET
|
_displayfunction
);
delayMicroseconds
(
150
);
// third go
command
(
LCD_FUNCTIONSET
|
_displayfunction
);
}
// finally, set # lines, font size, etc.
command
(
LCD_FUNCTIONSET
|
_displayfunction
);
// turn the display on with no cursor or blinking default
_displaycontrol
=
LCD_DISPLAYON
|
LCD_CURSOROFF
|
LCD_BLINKOFF
;
display
();
// clear it off
clear
();
// Initialize to default text direction (for romance languages)
_displaymode
=
LCD_ENTRYLEFT
|
LCD_ENTRYSHIFTDECREMENT
;
// set the entry mode
command
(
LCD_ENTRYMODESET
|
_displaymode
);
}
/********** high level commands, for the user! */
void
LiquidCrystal
::
clear
()
{
command
(
LCD_CLEARDISPLAY
);
// clear display, set cursor position to zero
delayMicroseconds
(
2000
);
// this command takes a long time!
}
void
LiquidCrystal
::
home
()
{
command
(
LCD_RETURNHOME
);
// set cursor position to zero
delayMicroseconds
(
2000
);
// this command takes a long time!
}
void
LiquidCrystal
::
setCursor
(
uint8_t
col
,
uint8_t
row
)
{
int
row_offsets
[]
=
{
0x00
,
0x40
,
0x14
,
0x54
};
if
(
row
>
_numlines
)
{
row
=
_numlines
-
1
;
// we count rows starting w/0
}
command
(
LCD_SETDDRAMADDR
|
(
col
+
row_offsets
[
row
]));
}
// Turn the display on/off (quickly)
void
LiquidCrystal
::
noDisplay
()
{
_displaycontrol
&=
~
LCD_DISPLAYON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
void
LiquidCrystal
::
display
()
{
_displaycontrol
|=
LCD_DISPLAYON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
// Turns the underline cursor on/off
void
LiquidCrystal
::
noCursor
()
{
_displaycontrol
&=
~
LCD_CURSORON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
void
LiquidCrystal
::
cursor
()
{
_displaycontrol
|=
LCD_CURSORON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
// Turn on and off the blinking cursor
void
LiquidCrystal
::
noBlink
()
{
_displaycontrol
&=
~
LCD_BLINKON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
void
LiquidCrystal
::
blink
()
{
_displaycontrol
|=
LCD_BLINKON
;
command
(
LCD_DISPLAYCONTROL
|
_displaycontrol
);
}
// These commands scroll the display without changing the RAM
void
LiquidCrystal
::
scrollDisplayLeft
(
void
)
{
command
(
LCD_CURSORSHIFT
|
LCD_DISPLAYMOVE
|
LCD_MOVELEFT
);
}
void
LiquidCrystal
::
scrollDisplayRight
(
void
)
{
command
(
LCD_CURSORSHIFT
|
LCD_DISPLAYMOVE
|
LCD_MOVERIGHT
);
}
// This is for text that flows Left to Right
void
LiquidCrystal
::
leftToRight
(
void
)
{
_displaymode
|=
LCD_ENTRYLEFT
;
command
(
LCD_ENTRYMODESET
|
_displaymode
);
}
// This is for text that flows Right to Left
void
LiquidCrystal
::
rightToLeft
(
void
)
{
_displaymode
&=
~
LCD_ENTRYLEFT
;
command
(
LCD_ENTRYMODESET
|
_displaymode
);
}
// This will 'right justify' text from the cursor
void
LiquidCrystal
::
autoscroll
(
void
)
{
_displaymode
|=
LCD_ENTRYSHIFTINCREMENT
;
command
(
LCD_ENTRYMODESET
|
_displaymode
);
}
// This will 'left justify' text from the cursor
void
LiquidCrystal
::
noAutoscroll
(
void
)
{
_displaymode
&=
~
LCD_ENTRYSHIFTINCREMENT
;
command
(
LCD_ENTRYMODESET
|
_displaymode
);
}
// Allows us to fill the first 8 CGRAM locations
// with custom characters
void
LiquidCrystal
::
createChar
(
uint8_t
location
,
uint8_t
charmap
[])
{
location
&=
0x7
;
// we only have 8 locations 0-7
command
(
LCD_SETCGRAMADDR
|
(
location
<<
3
));
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
write
(
charmap
[
i
]);
}
}
/*********** mid level commands, for sending data/cmds */
inline
void
LiquidCrystal
::
command
(
uint8_t
value
)
{
send
(
value
,
LOW
);
}
inline
void
LiquidCrystal
::
write
(
uint8_t
value
)
{
send
(
value
,
HIGH
);
}
/************ low level data pushing commands **********/
// write either command or data, with automatic 4/8-bit selection
void
LiquidCrystal
::
send
(
uint8_t
value
,
uint8_t
mode
)
{
digitalWrite
(
_rs_pin
,
mode
);
// if there is a RW pin indicated, set it low to Write
if
(
_rw_pin
!=
255
)
{
digitalWrite
(
_rw_pin
,
LOW
);
}
if
(
_displayfunction
&
LCD_8BITMODE
)
{
write8bits
(
value
);
}
else
{
write4bits
(
value
>>
4
);
write4bits
(
value
);
}
}
void
LiquidCrystal
::
pulseEnable
(
void
)
{
digitalWrite
(
_enable_pin
,
LOW
);
delayMicroseconds
(
1
);
digitalWrite
(
_enable_pin
,
HIGH
);
delayMicroseconds
(
1
);
// enable pulse must be >450ns
digitalWrite
(
_enable_pin
,
LOW
);
delayMicroseconds
(
100
);
// commands need > 37us to settle
}
void
LiquidCrystal
::
write4bits
(
uint8_t
value
)
{
for
(
int
i
=
0
;
i
<
4
;
i
++
)
{
pinMode
(
_data_pins
[
i
],
OUTPUT
);
digitalWrite
(
_data_pins
[
i
],
(
value
>>
i
)
&
0x01
);
}
pulseEnable
();
}
void
LiquidCrystal
::
write8bits
(
uint8_t
value
)
{
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
pinMode
(
_data_pins
[
i
],
OUTPUT
);
digitalWrite
(
_data_pins
[
i
],
(
value
>>
i
)
&
0x01
);
}
pulseEnable
();
}
Marlin/ArduinoAddons/Arduino_0.xx/libraries/LiquidCrystal/LiquidCrystal.h
0 → 100644
View file @
14e1a712
#ifndef LiquidCrystal_h
#define LiquidCrystal_h
#include <inttypes.h>
#include "Print.h"
// commands
#define LCD_CLEARDISPLAY 0x01
#define LCD_RETURNHOME 0x02
#define LCD_ENTRYMODESET 0x04
#define LCD_DISPLAYCONTROL 0x08
#define LCD_CURSORSHIFT 0x10
#define LCD_FUNCTIONSET 0x20
#define LCD_SETCGRAMADDR 0x40
#define LCD_SETDDRAMADDR 0x80
// flags for display entry mode
#define LCD_ENTRYRIGHT 0x00
#define LCD_ENTRYLEFT 0x02
#define LCD_ENTRYSHIFTINCREMENT 0x01
#define LCD_ENTRYSHIFTDECREMENT 0x00
// flags for display on/off control
#define LCD_DISPLAYON 0x04
#define LCD_DISPLAYOFF 0x00
#define LCD_CURSORON 0x02
#define LCD_CURSOROFF 0x00
#define LCD_BLINKON 0x01
#define LCD_BLINKOFF 0x00
// flags for display/cursor shift
#define LCD_DISPLAYMOVE 0x08
#define LCD_CURSORMOVE 0x00
#define LCD_MOVERIGHT 0x04
#define LCD_MOVELEFT 0x00
// flags for function set
#define LCD_8BITMODE 0x10
#define LCD_4BITMODE 0x00
#define LCD_2LINE 0x08
#define LCD_1LINE 0x00
#define LCD_5x10DOTS 0x04
#define LCD_5x8DOTS 0x00
class
LiquidCrystal
:
public
Print
{
public:
LiquidCrystal
(
uint8_t
rs
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
);
LiquidCrystal
(
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
);
LiquidCrystal
(
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
);
LiquidCrystal
(
uint8_t
rs
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
);
void
init
(
uint8_t
fourbitmode
,
uint8_t
rs
,
uint8_t
rw
,
uint8_t
enable
,
uint8_t
d0
,
uint8_t
d1
,
uint8_t
d2
,
uint8_t
d3
,
uint8_t
d4
,
uint8_t
d5
,
uint8_t
d6
,
uint8_t
d7
);
void
begin
(
uint8_t
cols
,
uint8_t
rows
,
uint8_t
charsize
=
LCD_5x8DOTS
);
void
clear
();
void
home
();
void
noDisplay
();
void
display
();
void
noBlink
();
void
blink
();
void
noCursor
();
void
cursor
();
void
scrollDisplayLeft
();
void
scrollDisplayRight
();
void
leftToRight
();
void
rightToLeft
();
void
autoscroll
();
void
noAutoscroll
();
void
createChar
(
uint8_t
,
uint8_t
[]);
void
setCursor
(
uint8_t
,
uint8_t
);
virtual
void
write
(
uint8_t
);
void
command
(
uint8_t
);
private:
void
send
(
uint8_t
,
uint8_t
);
void
write4bits
(
uint8_t
);
void
write8bits
(
uint8_t
);
void
pulseEnable
();
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.
uint8_t
_data_pins
[
8
];
uint8_t
_displayfunction
;
uint8_t
_displaycontrol
;
uint8_t
_displaymode
;
uint8_t
_initialized
;
uint8_t
_numlines
,
_currline
;
};