328P Clock help

I built and published here a 6 digit nixie clock: Six Digit Nixie Clock . It was some time ago now.

I've taken your code with a few changes but not optimised it and I've assumed the pin numbers etc. are correct. It should display "091452" across the display (but you can change that in the code).

// 6 Digit Nixie
// ATMEGA328P

#define A 18  // pin 3 on the K1551D1 Chip
#define B 2   // pin 6 on the K1551D1 Chip
#define C 3   // pin 7 on the K1551D1 Chip
#define D 19  // pin 4 on the K1551D1 Chip
// #define N1 4 // Nixie Tube 1
// #define N2 5 // Nixie Tube 2
// #define N3 6 // Nixie Tube 3
// #define N4 11 // Nixie Tube 4
// #define N5 12 // Nixie Tube 5
// #define N6 13 // Nixie Tube 6
#define UP 23  // Menu UP
#define DN 24  // Menu Down
#define MU 25  // Enter Menu
#define AL 14  // Alarm out

// anode pins - tubes numbered 0 to 5
const uint8_t anodes[6] = { 4, 5, 6, 11, 12, 13 };

// for later optimisation
uint8_t digits[10][4]{
  { 0, 0, 0, 0 },  // 0
  { 0, 0, 0, 1 },  // 1
  { 0, 0, 1, 0 },  // 2
  { 0, 0, 1, 1 },  // 3
  { 0, 1, 0, 0 },  // 4
  { 0, 1, 0, 1 },  // 5
  { 0, 1, 1, 0 },  // 6
  { 0, 1, 1, 1 },  // 7
  { 1, 0, 0, 0 },  // 8
  { 1, 0, 0, 1 }   // 9
};


// change this if required
uint8_t display[6] = { 0, 9, 1, 4, 5, 2 };  // this should appear on the display

void setup() {
  Serial.begin(115200);
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  for (uint8_t i = 0; i < 6; i++) {
    pinMode(anodes[i], OUTPUT);
  }
}

void loop() {
  static uint32_t laststrobeAtMs = 0;
  static uint8_t tube = 0;

  

  if (millis() - laststrobeAtMs > 4 ) {  // more than 5ms gives flicker
    laststrobeAtMs = millis();

    for (uint8_t i = 0; i < 6; i++) digitalWrite(anodes[i], LOW);  // all tubes off
 
    // for later optimisation
    digitalWrite(A, digits[display[tube]][3]);
    digitalWrite(B, digits[display[tube]][2]);
    digitalWrite(C, digits[display[tube]][1]);
    digitalWrite(D, digits[display[tube]][0]);

    /* 
    Serial.print ("tube ") ;
    Serial.println( tube );
    Serial.print (digits[display[tube]][3]) ;
    Serial.print (digits[display[tube]][2]) ;
    Serial.print (digits[display[tube]][1]) ;
    Serial.print (digits[display[tube]][0]) ;
    Serial.println() ;
    */ 

    digitalWrite(anodes[tube], HIGH);  // switch current tube anode on
    
    if ( ++tube >= 6) tube = 0;  // cycle to next tube

    // any other code goes here - don't block for too long
  }
}