K dispozici je sice i hex, ale ten je pro displej 4*16 a já mám 4*20 na kterém jsou texty divně posunuté. A to je druhý dotaz. Stačí změnit jen v řádcích, kde je As String * 16 na *20 aby se zobrazování upravilo?
Tohle je jen část kódu, celý asi nemá smysl dávat, je to dost dlouhé.
'---------------------------------------'
' Project: Level and distance gauge '
' Author: Joerg Trautmann '
' Create date: 10.09.2014 '
' Version: 2.4 '
'---------------------------------------'
' Basic settings for Atmega8
$regfile "m8Adef.dat"
$crystal = 16000000 'Frequency: 16 Mhz
$hwstack = 128
$swstack = 128
$framesize = 128
' Activate Pullups
Set Portb.1
Set Portb.2
Set Portd.0
Set Portd.1
Set Portd.6
Set Portd.7
' Config ports as input/output
Config Portb.1 = Input 'Next key
Config Portb.2 = Input 'Return key
Config Portd.0 = Input '- key
Config Portd.1 = Input '+ key
Config Portd.2 = Output 'US module trigger
Config Portd.3 = Input 'US-module echo
Config Portd.6 = Output 'Define portD6 as output for LED
Config Portd.7 = Output 'Define portD7 as output for Relay
' Constants for Port set and Pin request
Const On = 1 'Port high
Const Off = 0 'Port low
Const Pressed = 0 'Pin low
'--------------------------------------------------
' Define alias assignments for better understanding
' Input
Next_key Alias Pinb.1
Return_key Alias Pinb.2
Minus_key Alias Pind.0
Plus_key Alias Pind.1
Echo_in Alias Pind.3
' Ouput
Trigger_out Alias Portd.2
Led Alias Portd.6
Relay Alias Portd.7
'--------------------------------------------------
' Set port status
Trigger_out = Off 'Set trigger off
Led = Off 'Set LED off
Relay = Off 'Set relay off
' LCD configuration
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , Rs = Portc.5 , E = Portc.4
Initlcd : Display On : Cursor Off : Cls
' Declare procedures
Declare Sub Init()
Declare Sub Generate_tank_number_entries()
Declare Sub Calibrate_tank(level As Single)
Declare Sub Calculate_level()
Declare Sub Gauge_distance()
Declare Sub Set_box_width_and_divisor()
Declare Sub Display_distance()
Declare Sub Display_level()
Declare Sub Level_watchdog()
Declare Sub Select_level_alarm_type()
Declare Sub Select_level_alarm_value()
Declare Sub Displaytext(byval Line1_text As String , Byval Line2_text As String , Byval Line3_text As String , Byval Line4_text As String )
' Variables for displaying text
Dim Line1_text As String * 16
Dim Line2_text As String * 16
Dim Line3_text As String * 16
Dim Line4_text As String * 16
' Variables for displaying level as bargraph
Dim Bargraph_character As String * 1
Dim Bargraph As String * 16
Dim Bargraph_level As String * 16
Dim Bargraph_value As Byte