Modfied SMeter and CAT
This commit is contained in:
parent
e961cd8ac9
commit
12984486a6
27
VersionInfo.txt
Normal file
27
VersionInfo.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
This file will guide you to change the source code file.
|
||||||
|
For Windows-based Arduino IDE users, the directory name and the Main source file name must be the same.
|
||||||
|
You do not need to learn github to download .hex files or source code that I release.
|
||||||
|
However, if you want to see what I'm doing right now, you should use the github homepage.
|
||||||
|
|
||||||
|
You do not need to learn git to suggest source code. If you give me an e-mail, I will correct it at any time.
|
||||||
|
If you have not joined the BITX Group, join group. There will be discussions on various topics every day.
|
||||||
|
I am getting a lot of hints from the group.
|
||||||
|
|
||||||
|
Ian KD8CEC
|
||||||
|
kd8cec@gmail.com
|
||||||
|
==================================================================
|
||||||
|
Files modified in Version1.074 Beta
|
||||||
|
|
||||||
|
1.Delted Files.
|
||||||
|
|
||||||
|
2.Added Files
|
||||||
|
|
||||||
|
3.Modified Files
|
||||||
|
- ubitx_20.ino
|
||||||
|
- ubitx_ui.ino
|
||||||
|
- cat_libs.ino
|
||||||
|
- ubitx.h
|
||||||
|
- ubitx_eemap.h
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -31,8 +31,8 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
#define printLineF1(x) (printLineF(1, x))
|
|
||||||
#define printLineF2(x) (printLineF(0, x))
|
#include "ubitx.h"
|
||||||
|
|
||||||
//for broken protocol
|
//for broken protocol
|
||||||
#define CAT_RECEIVE_TIMEOUT 500
|
#define CAT_RECEIVE_TIMEOUT 500
|
||||||
@ -654,7 +654,7 @@ void SetIFSValue(void)
|
|||||||
//void CatRxStatus(byte fromType)
|
//void CatRxStatus(byte fromType)
|
||||||
void CatRxStatus(void) //for remove warning
|
void CatRxStatus(void) //for remove warning
|
||||||
{
|
{
|
||||||
byte sMeterValue = 1;
|
byte sMeterValue = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
http://www.ka7oei.com/ft817_meow.html
|
http://www.ka7oei.com/ft817_meow.html
|
||||||
@ -667,6 +667,33 @@ void CatRxStatus(void) //for remove warning
|
|||||||
Bit 7 is 0 if there is a signal present, or 1 if the receiver is squelched.
|
Bit 7 is 0 if there is a signal present, or 1 if the receiver is squelched.
|
||||||
*/
|
*/
|
||||||
// The lower 4 bits (0-3) of this byte indicate the current S-meter reading. 00 refers to an S-Zero reading, 04 = S4, 09 = S9, 0A = "10 over," 0B = "20 over" and so on up to 0F.
|
// The lower 4 bits (0-3) of this byte indicate the current S-meter reading. 00 refers to an S-Zero reading, 04 = S4, 09 = S9, 0A = "10 over," 0B = "20 over" and so on up to 0F.
|
||||||
|
//0~8
|
||||||
|
switch (scaledSMeter)
|
||||||
|
{
|
||||||
|
case 8 : sMeterValue = 0x0B;
|
||||||
|
break;
|
||||||
|
case 7 : sMeterValue = 0x0A;
|
||||||
|
break;
|
||||||
|
case 6 : sMeterValue = 0x09;
|
||||||
|
break;
|
||||||
|
case 5 : sMeterValue = 0x07;
|
||||||
|
break;
|
||||||
|
case 4 : sMeterValue = 0x05;
|
||||||
|
break;
|
||||||
|
case 3 : sMeterValue = 0x04;
|
||||||
|
break;
|
||||||
|
case 2 : sMeterValue = 0x02;
|
||||||
|
break;
|
||||||
|
case 1 : sMeterValue = 0x01;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
sMeterValue = (scaledSMeter * 2) -1;
|
||||||
|
if (sMeterValue > 0)
|
||||||
|
sMeterValue--;
|
||||||
|
*/
|
||||||
|
|
||||||
CAT_BUFF[0] = sMeterValue & 0b00001111;
|
CAT_BUFF[0] = sMeterValue & 0b00001111;
|
||||||
SendCatData(1);
|
SendCatData(1);
|
||||||
}
|
}
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
#define EXTEND_KEY_GROUP1 //MODE, BAND(-), BAND(+), STEP
|
#define EXTEND_KEY_GROUP1 //MODE, BAND(-), BAND(+), STEP
|
||||||
//#define EXTEND_KEY_GROUP2 //Numeric (0~9), Point(.), Enter //Not supported in Version 1.0x
|
//#define EXTEND_KEY_GROUP2 //Numeric (0~9), Point(.), Enter //Not supported in Version 1.0x
|
||||||
|
|
||||||
#define ENABLE_FACTORYALIGN
|
//#define ENABLE_FACTORYALIGN
|
||||||
//#define ENABLE_ADCMONITOR //Starting with Version 1.07, you can read ADC values directly from uBITX Manager. So this function is not necessary.
|
#define ENABLE_ADCMONITOR //Starting with Version 1.07, you can read ADC values directly from uBITX Manager. So this function is not necessary.
|
||||||
|
|
||||||
extern byte I2C_LCD_MASTER_ADDRESS; //0x27 //if Set I2C Address by uBITX Manager, read from EEProm
|
extern byte I2C_LCD_MASTER_ADDRESS; //0x27 //if Set I2C Address by uBITX Manager, read from EEProm
|
||||||
extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
||||||
@ -149,6 +149,9 @@ extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
|||||||
extern unsigned long frequency;
|
extern unsigned long frequency;
|
||||||
extern byte WsprMSGCount;
|
extern byte WsprMSGCount;
|
||||||
extern byte sMeterLevels[9];
|
extern byte sMeterLevels[9];
|
||||||
|
extern int currentSMeter; //ADC Value for S.Meter
|
||||||
|
extern byte scaledSMeter; //Calculated S.Meter Level
|
||||||
|
|
||||||
extern byte KeyValues[16][3]; //Set : Start Value, End Value, Key Type, 16 Set (3 * 16 = 48)
|
extern byte KeyValues[16][3]; //Set : Start Value, End Value, Key Type, 16 Set (3 * 16 = 48)
|
||||||
|
|
||||||
extern void printLine1(const char *c);
|
extern void printLine1(const char *c);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// So I put + in the sense that it was improved one by one based on Original Firmware.
|
// So I put + in the sense that it was improved one by one based on Original Firmware.
|
||||||
// This firmware has been gradually changed based on the original firmware created by Farhan, Jack, Jerry and others.
|
// This firmware has been gradually changed based on the original firmware created by Farhan, Jack, Jerry and others.
|
||||||
|
|
||||||
#define FIRMWARE_VERSION_INFO F("+v1.073")
|
#define FIRMWARE_VERSION_INFO F("+v1.074")
|
||||||
#define FIRMWARE_VERSION_NUM 0x02 //1st Complete Project : 1 (Version 1.061), 2st Project : 2
|
#define FIRMWARE_VERSION_NUM 0x02 //1st Complete Project : 1 (Version 1.061), 2st Project : 2
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -182,6 +182,10 @@ byte line2DisplayStatus = 0; //0:Clear, 1 : menu, 1: DisplayFrom Idle,
|
|||||||
char lcdMeter[17];
|
char lcdMeter[17];
|
||||||
byte sMeterLevels[9];
|
byte sMeterLevels[9];
|
||||||
|
|
||||||
|
//Current ADC Value for S.Meter, and S Meter Level
|
||||||
|
int currentSMeter = 0;
|
||||||
|
byte scaledSMeter = 0;
|
||||||
|
|
||||||
byte I2C_LCD_MASTER_ADDRESS; //0x27 //if Set I2C Address by uBITX Manager, read from EEProm
|
byte I2C_LCD_MASTER_ADDRESS; //0x27 //if Set I2C Address by uBITX Manager, read from EEProm
|
||||||
byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
||||||
|
|
||||||
|
@ -708,19 +708,15 @@ void DisplayMeter(byte meterType, byte meterValue, char drawPosition)
|
|||||||
|
|
||||||
LCD_SetCursor(drawPosition, lineNumber);
|
LCD_SetCursor(drawPosition, lineNumber);
|
||||||
|
|
||||||
//for (int i = 0; i <26; i++) //meter 5 + +db 1 = 6
|
|
||||||
LCD_Write(lcdMeter[0]);
|
LCD_Write(lcdMeter[0]);
|
||||||
LCD_Write(lcdMeter[1]);
|
LCD_Write(lcdMeter[1]);
|
||||||
|
LCD_Write(lcdMeter[2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
byte testValue = 0;
|
|
||||||
char checkCount = 0;
|
char checkCount = 0;
|
||||||
char checkCountSMeter = 0;
|
char checkCountSMeter = 0;
|
||||||
|
|
||||||
int currentSMeter = 0;
|
|
||||||
byte scaledSMeter = 0;
|
|
||||||
|
|
||||||
void idle_process()
|
void idle_process()
|
||||||
{
|
{
|
||||||
//space for user graphic display
|
//space for user graphic display
|
||||||
@ -740,23 +736,17 @@ void idle_process()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//EX for Meters
|
|
||||||
/*
|
|
||||||
DisplayMeter(0, testValue++, 7);
|
|
||||||
if (testValue > 30)
|
|
||||||
testValue = 0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
//S-Meter Display
|
//S-Meter Display
|
||||||
if (((displayOption1 & 0x08) == 0x08 && (sdrModeOn == 0)) && (++checkCountSMeter > SMeterLatency))
|
if (((displayOption1 & 0x08) == 0x08 && (sdrModeOn == 0)) && (++checkCountSMeter > SMeterLatency))
|
||||||
{
|
{
|
||||||
int newSMeter;
|
int newSMeter;
|
||||||
|
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||||
newSMeter = analogRead(ANALOG_SMETER);
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
//Faster attack, Slower release
|
//Faster attack, Slower release
|
||||||
currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10) / 4;
|
//currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10) / 4;
|
||||||
|
currentSMeter = newSMeter;
|
||||||
|
|
||||||
scaledSMeter = 0;
|
scaledSMeter = 0;
|
||||||
for (byte s = 8; s >= 1; s--) {
|
for (byte s = 8; s >= 1; s--) {
|
||||||
@ -766,7 +756,7 @@ void idle_process()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DisplayMeter(0, scaledSMeter, 14);
|
DisplayMeter(0, scaledSMeter, 13);
|
||||||
checkCountSMeter = 0; //Reset Latency time
|
checkCountSMeter = 0; //Reset Latency time
|
||||||
} //end of S-Meter
|
} //end of S-Meter
|
||||||
|
|
||||||
|
@ -583,17 +583,13 @@ void DisplayMeter(byte meterType, byte meterValue, char drawPosition)
|
|||||||
LCD_Write('S');
|
LCD_Write('S');
|
||||||
|
|
||||||
LCD_Write(':');
|
LCD_Write(':');
|
||||||
for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6
|
for (int i = 0; i < 7; i++)
|
||||||
LCD_Write(lcdMeter[i]);
|
LCD_Write(lcdMeter[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
byte testValue = 0;
|
|
||||||
char checkCount = 0;
|
char checkCount = 0;
|
||||||
|
|
||||||
int currentSMeter = 0;
|
|
||||||
byte scaledSMeter = 0;
|
|
||||||
char checkCountSMeter = 0;
|
char checkCountSMeter = 0;
|
||||||
|
|
||||||
char beforeKeyType = -1;
|
char beforeKeyType = -1;
|
||||||
@ -676,12 +672,13 @@ void idle_process()
|
|||||||
int newSMeter;
|
int newSMeter;
|
||||||
displaySDRON = 0;
|
displaySDRON = 0;
|
||||||
|
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin
|
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||||
newSMeter = analogRead(ANALOG_SMETER);
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
//Faster attack, Slower release
|
//Faster attack, Slower release
|
||||||
//currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10);
|
//currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10);
|
||||||
currentSMeter = (currentSMeter * 3 + newSMeter * 7) / 10; //remarked becaused of have already Latency time
|
//currentSMeter = (currentSMeter * 3 + newSMeter * 7) / 10; //remarked becaused of have already Latency time
|
||||||
|
currentSMeter = newSMeter;
|
||||||
|
|
||||||
scaledSMeter = 0;
|
scaledSMeter = 0;
|
||||||
for (byte s = 8; s >= 1; s--) {
|
for (byte s = 8; s >= 1; s--) {
|
||||||
|
@ -642,90 +642,16 @@ void DisplayMeter(byte meterType, byte meterValue, char drawPosition)
|
|||||||
if (meterType == 0 || meterType == 1 || meterType == 2)
|
if (meterType == 0 || meterType == 1 || meterType == 2)
|
||||||
{
|
{
|
||||||
drawMeter(meterValue);
|
drawMeter(meterValue);
|
||||||
//int lineNumber = 0;
|
|
||||||
//if ((displayOption1 & 0x01) == 0x01)
|
|
||||||
//lineNumber = 1;
|
|
||||||
|
|
||||||
LCD_SetCursor(drawPosition, 2);
|
LCD_SetCursor(drawPosition, 2);
|
||||||
LCD_Write('S');
|
LCD_Write('S');
|
||||||
LCD_Write(':');
|
LCD_Write(':');
|
||||||
for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6
|
for (int i = 0; i < 7; i++) //meter 5 + +db 1 = 6
|
||||||
LCD_Write(lcdMeter[i]);
|
LCD_Write(lcdMeter[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//meterType : 0 = S.Meter, 1 = Forward Power Meter, 2 = SWR Meter
|
|
||||||
void DisplayMeter(byte meterType, int meterValue, char drawPosition)
|
|
||||||
{
|
|
||||||
|
|
||||||
#ifdef OPTION_SKINNYBARS //We want skinny meter bars with more text/numbers
|
|
||||||
memcpy(&(line2Buffer[drawPosition]), " ", 8); //Blank that section of 8 characters first
|
|
||||||
if (meterType == 0) { //SWR meter
|
|
||||||
drawMeter(meterValue); //Only 2 characters
|
|
||||||
line2Buffer[drawPosition] = 'S';
|
|
||||||
byte sValue = round((float)meterValue * 1.5); //6 bars available only to show 9 S values
|
|
||||||
sValue = sValue > 9 ? 9 : sValue; //Max S9
|
|
||||||
line2Buffer[drawPosition + 1] = '0' + sValue; //0 to 9
|
|
||||||
memcpy(&(line2Buffer[drawPosition + 2]), lcdMeter, 2); //Copy the S-Meter bars
|
|
||||||
//Add the +10, +20, etc...
|
|
||||||
if (meterValue > 6) {
|
|
||||||
//We are over S9
|
|
||||||
line2Buffer[drawPosition + 4] = '+';
|
|
||||||
line2Buffer[drawPosition + 5] = '0' + meterValue - 6; //1,2,3 etc...
|
|
||||||
line2Buffer[drawPosition + 6] = '0';
|
|
||||||
}
|
|
||||||
} else if (meterType == 1) { //Forward Power
|
|
||||||
drawMeter(round((float)meterValue / 40)); //4 watts per bar
|
|
||||||
//meterValue contains power value x 10 (one decimal point)
|
|
||||||
line2Buffer[drawPosition] = 'P';
|
|
||||||
meterValue = meterValue > 999 ? 999 : meterValue; //Limit to 99.9 watts!!!!
|
|
||||||
//Remove decimal value and divide by 10
|
|
||||||
meterValue = round((float)meterValue / 10);
|
|
||||||
if (meterValue < 10) {
|
|
||||||
line2Buffer[drawPosition + 1] = ' ';
|
|
||||||
line2Buffer[drawPosition + 2] = '0' + meterValue; //0 to 9
|
|
||||||
} else {
|
|
||||||
line2Buffer[drawPosition + 1] = '0' + meterValue / 10;
|
|
||||||
line2Buffer[drawPosition + 2] = '0' + (meterValue - ((meterValue / 10) * 10));
|
|
||||||
}
|
|
||||||
line2Buffer[drawPosition + 3] = 'W';
|
|
||||||
memcpy(&(line2Buffer[drawPosition + 4]), lcdMeter, 2); //Copy the S-Meter bars
|
|
||||||
} else { //SWR
|
|
||||||
drawMeter((int)(((float)meterValue - 21) / 100)); //no bar = < 1.2, then 1 bar = 1.2 to 2.2, 2 bars = 2.2 to 3.2, etc...
|
|
||||||
//meterValue contains SWR x 100 (two decimal point)
|
|
||||||
memcpy(&(line2Buffer[drawPosition]), "SWR", 3);
|
|
||||||
meterValue = round((float)meterValue / 10); //We now have swr x 10 (1 decimal point)
|
|
||||||
if (meterValue < 100) { //10 to 99, no decimal point
|
|
||||||
//Draw the decimal value
|
|
||||||
line2Buffer[drawPosition + 3] = '0' + meterValue / 10;
|
|
||||||
line2Buffer[drawPosition + 4] = '.';
|
|
||||||
line2Buffer[drawPosition + 5] = '0' + (meterValue - ((meterValue / 10) * 10));
|
|
||||||
} else {
|
|
||||||
memcpy(&(line2Buffer[drawPosition + 3]), "10+", 3); //over 10
|
|
||||||
}
|
|
||||||
memcpy(&(line2Buffer[drawPosition + 6]), lcdMeter, 2); //Copy the S-Meter bars
|
|
||||||
}
|
|
||||||
#else //We want fat bars, easy to read, with less text/numbers
|
|
||||||
//Serial.print("In displaymeter, meterValue: "); Serial.println(meterValue);
|
|
||||||
drawMeter(meterValue);
|
|
||||||
//Always line 2
|
|
||||||
char sym = 'S';
|
|
||||||
if (meterType == 1) sym = 'P';
|
|
||||||
else if (meterType == 2) sym = 'R'; //For SWR
|
|
||||||
line2Buffer[drawPosition] = sym;
|
|
||||||
memcpy(&(line2Buffer[drawPosition + 1]), lcdMeter, 7);
|
|
||||||
#endif //OPTION_SKINNYBARS
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
byte testValue = 0;
|
|
||||||
char checkCount = 0;
|
char checkCount = 0;
|
||||||
|
|
||||||
int currentSMeter = 0;
|
|
||||||
//int sMeterLevels[] = {0, 5, 17, 41, 74, 140, 255, 365, 470};
|
|
||||||
byte scaledSMeter = 0;
|
|
||||||
char checkCountSMeter = 0;
|
char checkCountSMeter = 0;
|
||||||
|
|
||||||
//execute interval : 0.25sec
|
//execute interval : 0.25sec
|
||||||
@ -769,10 +695,12 @@ void idle_process()
|
|||||||
int newSMeter;
|
int newSMeter;
|
||||||
|
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin
|
//VK2ETA S-Meter from MAX9814 TC pin
|
||||||
newSMeter = analogRead(ANALOG_SMETER);
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
//Faster attack, Slower release
|
//Faster attack, Slower release
|
||||||
currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10);
|
//currentSMeter = (newSMeter > currentSMeter ? ((currentSMeter * 3 + newSMeter * 7) + 5) / 10 : ((currentSMeter * 7 + newSMeter * 3) + 5) / 10);
|
||||||
|
//currentSMeter = ((currentSMeter * 7 + newSMeter * 3) + 5) / 10;
|
||||||
|
currentSMeter = newSMeter;
|
||||||
|
|
||||||
scaledSMeter = 0;
|
scaledSMeter = 0;
|
||||||
for (byte s = 8; s >= 1; s--) {
|
for (byte s = 8; s >= 1; s--) {
|
||||||
|
@ -95,7 +95,7 @@ void initMeter(){
|
|||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
tmpbytes[i] = pgm_read_byte(p_metes_bitmap + i + 48);
|
tmpbytes[i] = pgm_read_byte(p_metes_bitmap + i + 48);
|
||||||
LCD_CreateChar(6, tmpbytes);
|
LCD_CreateChar(7, tmpbytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -128,13 +128,23 @@ void drawMeter(int needle)
|
|||||||
{
|
{
|
||||||
#ifdef OPTION_SKINNYBARS
|
#ifdef OPTION_SKINNYBARS
|
||||||
//Fill buffer with growing set of bars, up to needle value
|
//Fill buffer with growing set of bars, up to needle value
|
||||||
|
lcdMeter[0] = 0x20;
|
||||||
|
lcdMeter[1] = 0x20;
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
if (needle > i)
|
if (needle > i)
|
||||||
lcdMeter[i / 3] = byte(i + 1); //Custom characters above
|
lcdMeter[i / 3] = byte(i + 1); //Custom characters above
|
||||||
else if (i == 1 || i == 4) {
|
//else if (i == 1 || i == 4) {
|
||||||
lcdMeter[i / 3] = 0x20; //blank
|
// lcdMeter[i / 3] = 0x20; //blank
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (needle > 7) {
|
||||||
|
lcdMeter[2] = byte(7); //Custom character "++"
|
||||||
|
} else if (needle > 6) {
|
||||||
|
lcdMeter[2] = '+'; //"+"
|
||||||
|
} else lcdMeter[2] = 0x20;
|
||||||
|
|
||||||
|
|
||||||
#else //Must be "fat" bars
|
#else //Must be "fat" bars
|
||||||
//Fill buffer with growing set of bars, up to needle value
|
//Fill buffer with growing set of bars, up to needle value
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
@ -143,11 +153,13 @@ void drawMeter(int needle)
|
|||||||
else
|
else
|
||||||
lcdMeter[i] = 0x20; //blank
|
lcdMeter[i] = 0x20; //blank
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needle > 7) {
|
if (needle > 7) {
|
||||||
lcdMeter[6] = byte(7); //Custom character "++"
|
lcdMeter[6] = byte(7); //Custom character "++"
|
||||||
} else if (needle > 6) {
|
} else if (needle > 6) {
|
||||||
lcdMeter[6] = 0x2B; //"+"
|
lcdMeter[6] = '+'; //"+"
|
||||||
} else lcdMeter[6] = 0x20;
|
} else lcdMeter[6] = 0x20;
|
||||||
|
|
||||||
#endif //OPTION_FATBARS
|
#endif //OPTION_FATBARS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user