[SOLVED] Trying to combine large font and time with no RTC

As the title states, I’m trying to combine the large numbers font made by Hifiduino (https://downloadcode.wordpress.com/page/1/) and the crossroads clock that gets time set by buttons and does not rely on a RTC module. I am a complete noob when it comes to this, but I have read as much as I can figure out and have hit a wall. Anyone that could figure out what I’m doing wrong would have my gratitude.

[code]

/*
  A set of custom made large numbers for a 16x2 LCD using the
  LiquidCrystal librabry. Works with displays compatible with the
  Hitachi HD44780 driver.

  The Cuicuit:
  LCD RS pin to D12
  LCD Enable pin to D10
  LCD D4 pin to D5
  LCD D5 pin to D4
  LCD D6 pin to D3
  LCD D7 pin to D2
  LCD Vee tied to a pot to control brightness
  LCD Vss and R/W tied to ground
  LCD Vcc to +5V


  Made by Michael Pilcher
  2/9/2010
*/

// include the library
#include <LiquidCrystal.h>
#include <Time.h>
#include <TimeLib.h>


// initialize the interface pins
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);
const int backlight = 13;
const int buttonHr = 7; //digital pin used as hour adjustment input
const int buttonMin = 8; //digital pin used as min adjustment input

int secs = 0;
int secs2 = 0;
int mins = -1;
int hrs = 0;


int milliDivSecs = 1000;
int milliDivMins = 60000;
int milliDivHrs = 360000;

unsigned long prevmillis = 0;

int interval = 1000;
int x = 0;
pinMode(backlight, OUTPUT);
pinMode(buttonHr, INPUT);
pinMode(buttonMin, INPUT);
digitalWrite(backlight, HIGH);
lcd.begin(16, 2); //set number of cols and rows

//print out LCD clock duisplay
lcd.setCursor(5, 0);
lcd.print("12:00:00 AM");

Serial.begin(9600);
}


// the 8 arrays that form each segment of the custom numbers
byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte UMB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte LMB[8] =
{
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};



void setup()
{
  // assignes each segment a write number
  lcd.createChar(8, LT);
  lcd.createChar(1, UB);
  lcd.createChar(2, RT);
  lcd.createChar(3, LL);
  lcd.createChar(4, LB);
  lcd.createChar(5, LR);
  lcd.createChar(6, UMB);
  lcd.createChar(7, LMB);

  // sets the LCD's rows and colums:
  lcd.begin(0, 2);

}

void custom0O()
{ // uses segments to build the number 0
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom1()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(255);
}

void custom2()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(7);
}

void custom3()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom4()
{
  lcd.setCursor(x, 0);
  lcd.write(3);
  lcd.write(4);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void custom5()
{
  lcd.setCursor(x, 0);
  lcd.write(255);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom6()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom7()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(8);
}

void custom8()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom9()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void loop() {

  unsigned long currmillis = millis();

  //detect button pressing
  if (digitalRead(buttonHr) == HIGH) {
    delay(25);
    hrs = hrs + 1;
    updateHrs();

    //update AMPM on button press
    if (hrs == 12) {
      updateAMPM();
    }

    delay(400);
  }
  if (digitalRead(buttonMin) == HIGH) {
    delay(25);
    mins = mins + 1;
    //Serial.println(mins);
    updateMin();
    delay(400);
  }

  if (currmillis - prevmillis > 999) {
    //lcd.clear();
    prevmillis = currmillis;
    if (secs < 10) {
      lcd.setCursor(12, 0);
      lcd.print(secs);
      lcd.setCursor(11, 0);
      lcd.print(0);
    }
    else {
      lcd.setCursor(11, 0);
      lcd.print(secs);
    }

    //display minutes
    if (secs == 0) {
      mins = mins + 1;
      updateMin();
    }


    //get new seconds from system time
    secs = (millis() / milliDivSecs) % 60; // divide by 1000 and mod by 60 gives seconds from milliseconds

  }

}

//update min function
//calls the update am apm funciton and the update hours functions.
void updateMin() {
  if (mins > 59) {
    hrs = hrs + 1;
    updateHrs();  //update hours then
    if (hrs == 11 && mins > 59) {
      updateAMPM();
    }
    mins = 0;  //reset mins

    lcd.setCursor(8, 0);
    lcd.print("00");
  }
  if (mins < 10) {
    lcd.setCursor(9, 0);
  }
  else {
    lcd.setCursor(8, 0);
  }
  lcd.print(mins);
}

//update hour function
void updateHrs() {
  //display hours - needs fixing for am pm

  if (hrs > 12) {
    //reset to 1
    hrs = 1;
  }
  if (hrs < 10) {
    lcd.setCursor(5, 0);
    lcd.print(" ");
    lcd.setCursor(6, 0);
  }
  else {
    lcd.setCursor(5, 0);
  }
  lcd.print(hrs);

}

void updateAMPM() {
  if (isAM) {
    isAM = false;
    lcd.setCursor(14, 0);
    lcd.print("PM");
  }
  else {
    isAM = true;
    lcd.setCursor(14, 0);
    lcd.print("AM");
  }
}

[/code]

The first thing that I noticed is this code:

int milliDivMins = 60000;
int milliDivHrs = 360000;

An int cannot hold 60000 or 360000 on an Arduino.

Perhaps you intended long instead of int ?

Thanks, still learning to code, using this as my way of learning. I keep getting an error of "LCD_Large_char_scroll:49: error: expected constructor, destructor, or type conversion before '(' token pinMode(backlight, OUTPUT);^" errors, as well as "53: error: 'lcd' does not name a type" quite a bit. Is there a resource that I could look to to learn what I'm doing wrong?

I don't see that errored text anywhere in the code you shared. Where ia this LCD-Large thing? Is that the actual code that got those errors?

/*
  Clock without RTC module using a set of custom made large numbers for a 16x2 LCD using the
  LiquidCrystal librabry. Works with displays compatible with the Hitachi HD44780 driver.

  The Curcuit:
  LCD RS pin to D12
  LCD Enable pin to D10
  LCD D4 pin to D5
  LCD D5 pin to D4
  LCD D6 pin to D3
  LCD D7 pin to D2
  LCD Vee with resistor in line
  LCD Vss and R/W tied to ground
  LCD Vcc to +5V
  LCD A pin to D13

  Made by Michael Pilcher
  2/9/2010

  Edited by Jon Jones
  8/17/16
*/

// include the library
#include <LiquidCrystal.h>
#include <Time.h>
#include <TimeLib.h>
#include <Wire.h>

// initialize the interface pins
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);
const int backlight = 13;
const int buttonHr = 7; //digital pin used as hour adjustment input
const int buttonMin = 8; //digital pin used as min adjustment input


int secs = 0;
int secs2 = 0;
int mins = -1;
int hrs = 0;
boolean isAM = true;

int milliDivSecs = 1000;
long milliDivMins = 60000;
long milliDivHrs = 360000;

unsigned long prevmillis = 0;

int interval = 1000;
int x = 0;



// the 8 arrays that form each segment of the custom numbers
byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte UMB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte LMB[8] =
{
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};



void setup()
{
  pinMode(backlight, OUTPUT);
  pinMode(buttonHr, INPUT);
  pinMode(buttonMin, INPUT);
  digitalWrite(backlight, HIGH);
  lcd.begin(16, 2); //set number of cols and rows

  //print out LCD clock display
  lcd.setCursor(5, 0);
  lcd.print("12:00:00 AM");

  Serial.begin(9600);
}
void define()
{
  // assignes each segment a write number
  lcd.createChar(8, LT);
  lcd.createChar(1, UB);
  lcd.createChar(2, RT);
  lcd.createChar(3, LL);
  lcd.createChar(4, LB);
  lcd.createChar(5, LR);
  lcd.createChar(6, UMB);
  lcd.createChar(7, LMB);

  // sets the LCD's rows and colums:
  lcd.begin(0, 2);

}

void custom0O()
{ // uses segments to build the number 0
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom1()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(255);
}

void custom2()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(7);
}

void custom3()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom4()
{
  lcd.setCursor(x, 0);
  lcd.write(3);
  lcd.write(4);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void custom5()
{
  lcd.setCursor(x, 0);
  lcd.write(255);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom6()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom7()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(8);
}

void custom8()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom9()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void customA()
{

}
void loop() {

  unsigned long currmillis = millis();

  //detect button pressing
  if (digitalRead(buttonHr) == HIGH) {
    delay(25);
    hrs = hrs + 1;
    updateHrs();

    //update AMPM on button press
    if (hrs == 12) {
      updateAMPM();
    }

    delay(400);
  }
  if (digitalRead(buttonMin) == HIGH) {
    delay(25);
    mins = mins + 1;
    //Serial.println(mins);
    updateMin();
    delay(400);
  }

  if (currmillis - prevmillis > 999) {
    //lcd.clear();
    prevmillis = currmillis;
    if (secs < 10) {
      lcd.setCursor(12, 0);
      lcd.print(secs);
      lcd.setCursor(11, 0);
      lcd.print(0);
    }
    else {
      lcd.setCursor(11, 0);
      lcd.print(secs);
    }

    //display minutes
    if (secs == 0) {
      mins = mins + 1;
      updateMin();
    }


    //get new seconds from system time
    secs = (millis() / milliDivSecs) % 60; // divide by 1000 and mod by 60 gives seconds from milliseconds

  }

}

//update min function
//calls the update am apm funciton and the update hours functions.
void updateMin() {
  if (mins > 59) {
    hrs = hrs + 1;
    updateHrs();  //update hours then
    if (hrs == 11 && mins > 59) {
      updateAMPM();
    }
    mins = 0;  //reset mins

    lcd.setCursor(8, 0);
    lcd.print("00");
  }
  if (mins < 10) {
    lcd.setCursor(9, 0);
  }
  else {
    lcd.setCursor(8, 0);
  }
  lcd.print(mins);
}

//update hour function
void updateHrs() {
  //display hours - needs fixing for am pm

  if (hrs > 12) {
    //reset to 1
    hrs = 1;
  }
  if (hrs < 10) {
    lcd.setCursor(5, 0);
    lcd.print(" ");
    lcd.setCursor(6, 0);
  }
  else {
    lcd.setCursor(5, 0);
  }
  lcd.print(hrs);

}

void updateAMPM() {
  if (isAM) {
    isAM = false;
    lcd.setCursor(14, 0);
    lcd.print("PM");
  }
  else {
    isAM = true;
    lcd.setCursor(14, 0);
    lcd.print("AM");
  }
}

Here is the code I have as of this moment, after working through errors. What I get now when compiling is:

In function ‘void updateAMPM()’:

Large_font_clock:383: error: cannot resolve overloaded function ‘isAM’ based on conversion to type ‘bool’

if (isAM) {

^

Large_font_clock:384: error: overloaded function with no contextual type information

isAM = false;

^

Large_font_clock:389: error: overloaded function with no contextual type information

isAM = true;

^

Using library LiquidCrystal at version 1.0.5 in folder: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
Using library Time-master at version 1.5 in folder: C:\Users\Jon\Documents\Arduino\libraries\Time-master
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
exit status 1
cannot resolve overloaded function ‘isAM’ based on conversion to type ‘bool’

Looking at the Time library you are using, isAM and isPM are both functions that return an unsigned 8 bit int.

uint8_t isAM() { // returns true if time now is AM
  return !isPM(now()); 
}

uint8_t isAM(time_t t) { // returns true if given time is AM
  return !isPM(t);  
}

uint8_t isPM() { // returns true if PM
  return isPM(now()); 
}

uint8_t isPM(time_t t) { // returns true if PM
  return (hour(t) >= 12); 
}

You were using isAM and isPM as variables. You can not overwrite a function as a variable…

I have done this…it compiles without errors. Replaced your use of isAM and isPM with the functions isAM() and isPM().

/*
  Clock without RTC module using a set of custom made large numbers for a 16x2 LCD using the
  LiquidCrystal librabry. Works with displays compatible with the Hitachi HD44780 driver.

  The Curcuit:
  LCD RS pin to D12
  LCD Enable pin to D10
  LCD D4 pin to D5
  LCD D5 pin to D4
  LCD D6 pin to D3
  LCD D7 pin to D2
  LCD Vee with resistor in line
  LCD Vss and R/W tied to ground
  LCD Vcc to +5V
  LCD A pin to D13

  Made by Michael Pilcher
  2/9/2010

  Edited by Jon Jones
  8/17/16
*/

// include the library
#include <LiquidCrystal.h>
#include <Time.h>
#include <TimeLib.h>
#include <Wire.h>

// initialize the interface pins
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);
const int backlight = 13;
const int buttonHr = 7; //digital pin used as hour adjustment input
const int buttonMin = 8; //digital pin used as min adjustment input


int secs = 0;
int secs2 = 0;
int mins = -1;
int hrs = 0;
//boolean isAM = true;

int milliDivSecs = 1000;
long milliDivMins = 60000;
long milliDivHrs = 360000;

unsigned long prevmillis = 0;

int interval = 1000;
int x = 0;



// the 8 arrays that form each segment of the custom numbers
byte LT[8] =
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte UMB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte LMB[8] =
{
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};



void setup()
{
  
  pinMode(backlight, OUTPUT);
  pinMode(buttonHr, INPUT);
  pinMode(buttonMin, INPUT);
  digitalWrite(backlight, HIGH);
  lcd.begin(16, 2); //set number of cols and rows

  //print out LCD clock display
  lcd.setCursor(5, 0);
  lcd.print("12:00:00 AM");

  Serial.begin(9600);
}
void define()
{
  // assignes each segment a write number
  lcd.createChar(8, LT);
  lcd.createChar(1, UB);
  lcd.createChar(2, RT);
  lcd.createChar(3, LL);
  lcd.createChar(4, LB);
  lcd.createChar(5, LR);
  lcd.createChar(6, UMB);
  lcd.createChar(7, LMB);

  // sets the LCD's rows and colums:
  lcd.begin(0, 2);

}

void custom0O()
{ // uses segments to build the number 0
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(4);
  lcd.write(5);
}

void custom1()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(255);
}

void custom2()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(7);
}

void custom3()
{
  lcd.setCursor(x, 0);
  lcd.write(6);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom4()
{
  lcd.setCursor(x, 0);
  lcd.write(3);
  lcd.write(4);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void custom5()
{
  lcd.setCursor(x, 0);
  lcd.write(255);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(7);
  lcd.write(7);
  lcd.write(5);
}

void custom6()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom7()
{
  lcd.setCursor(x, 0);
  lcd.write(1);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(x + 1, 1);
  lcd.write(8);
}

void custom8()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom9()
{
  lcd.setCursor(x, 0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x + 2, 1);
  lcd.write(255);
}

void customA()
{

}
void loop() {

  unsigned long currmillis = millis();

  //detect button pressing
  if (digitalRead(buttonHr) == HIGH) {
    delay(25);
    hrs = hrs + 1;
    updateHrs();

    //update AMPM on button press
    if (hrs == 12) {
      updateAMPM();
    }

    delay(400);
  }
  if (digitalRead(buttonMin) == HIGH) {
    delay(25);
    mins = mins + 1;
    //Serial.println(mins);
    updateMin();
    delay(400);
  }

  if (currmillis - prevmillis > 999) {
    //lcd.clear();
    prevmillis = currmillis;
    if (secs < 10) {
      lcd.setCursor(12, 0);
      lcd.print(secs);
      lcd.setCursor(11, 0);
      lcd.print(0);
    }
    else {
      lcd.setCursor(11, 0);
      lcd.print(secs);
    }

    //display minutes
    if (secs == 0) {
      mins = mins + 1;
      updateMin();
    }


    //get new seconds from system time
    secs = (millis() / milliDivSecs) % 60; // divide by 1000 and mod by 60 gives seconds from milliseconds

  }

}

//update min function
//calls the update am apm funciton and the update hours functions.
void updateMin() {
  if (mins > 59) {
    hrs = hrs + 1;
    updateHrs();  //update hours then
    if (hrs == 11 && mins > 59) {
      updateAMPM();
    }
    mins = 0;  //reset mins

    lcd.setCursor(8, 0);
    lcd.print("00");
  }
  if (mins < 10) {
    lcd.setCursor(9, 0);
  }
  else {
    lcd.setCursor(8, 0);
  }
  lcd.print(mins);
}

//update hour function
void updateHrs() {
  //display hours - needs fixing for am pm

  if (hrs > 12) {
    //reset to 1
    hrs = 1;
  }
  if (hrs < 10) {
    lcd.setCursor(5, 0);
    lcd.print(" ");
    lcd.setCursor(6, 0);
  }
  else {
    lcd.setCursor(5, 0);
  }
  lcd.print(hrs);

}

void updateAMPM() {
  if (isAM()) {
    
    lcd.setCursor(14, 0);
    lcd.print("PM");
  }
  else {
    
    lcd.setCursor(14, 0);
    lcd.print("AM");
  }
}

Thanks, the clock is working now! I greatly appreciate your help. Now to just figure out how to get the font size change to take.