Interrupt routine runs but then causes reset of whole code

My uno is fine, this problem is on my nano. when the interrupt on pin 2 is triggered, it runs, and it even goes back to the main loop for a few seconds, but then seems to reset the board.
My computer seems to lose the NANO when I activate the interrupt, then finds it again( could this be causing the reset?) But then why does the computer lose connection? how can I stop it?

Beats me.
What does the code look like?

My car didn't start this morning.
Any idea why?
BTW, it's a white car.

was that sas? about your car?
/ the setup routine runs once when you press reset:
volatile int digitCounter=0;
volatile int N = LOW; /Allows code to skip while loop only after interrupt has happened, because N will be high/
volatile int Cycle=0; /Variable counts through 'mag size' array e.g. 12,18,25 etc./
int B ={35,25,18,15,12};
int voltageControl;
const int interuptpin = 2; /Interupt pin/ Cycle button/

void setup() {
// initialize serial communication at 9600 bits per second:

//int digitCounter=23;
pinMode (7,OUTPUT);
pinMode (6,OUTPUT);
pinMode (5,OUTPUT);
pinMode (4,OUTPUT);
pinMode (3,OUTPUT);
pinMode (2,OUTPUT);
pinMode (8,OUTPUT);
pinMode (9,OUTPUT);
int B ={35,25,18,15,12};
pinMode (interuptpin, INPUT_PULLUP); /Setting up Interrupt pin/
attachInterrupt(digitalPinToInterrupt(interuptpin), blink, RISING); /Setting up Interrupt pin, blink is the interrupt program/

digitCounter=B[Cycle]; /* Sets first displayed digit to first number in 'mag size' array*/

voltageControl = analogRead(A0);


// ----------------------------------------------------------------------------------------------------------------------------------
void loop() {
int B ={35,25,18,15,12};
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:

int seg1[4][40]= {{0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1},
int seg2[2][40]= {{0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1},

digitalWrite(3,seg1[0][digitCounter]); /D0/
digitalWrite(4,seg1[1][digitCounter]); /D1/
digitalWrite(5,seg1[2][digitCounter]); /D2/
digitalWrite(6,seg1[3][digitCounter]); /D3/

digitalWrite(7,seg2[0][digitCounter]); /D0/
digitalWrite(8,seg2[1][digitCounter]); /D1/

if (digitCounter == -1){
digitCounter = 18;}
while(analogRead(A0) > (voltageControl-15) & N == LOW) {};
N = LOW;
delay(50); // delay in between reads for stability

void blink(){
int B ={35,25,18,15,12};
if ((digitCounter+ 1) == B[Cycle])

{if (Cycle == 4){Cycle=0;}
else {Cycle++;}
else {}
digitCounter = B[Cycle];

Please read "How to use this forum" and post the code properly, using code tags.

Sounds like this is board dependent if it works with Uno but not with Nano. Drawing too much current? Nano might have has a different voltage regulator compared to Uno.