Javascript: muestra el número creciente cada segundo

Estoy tratando de hacer algo en el que muestro un número incrementado diferente cada segundo, pero simplemente no puedo hacer lo correcto con setInterval.

Esto es lo que tengo

function counter() { var i = 0; while ( i < 100 ) { // This block will be executed 100 times. setInterval(console.log( 'Currently at ' + i ), 1000); i++; // Increment i } } // End 

Pero lo que obtengo es el console.log disparando 100 veces, luego repitiendo.

Gracias por toda la ayuda.

Micro

Cuando crea un setInterval una vez, llamará automáticamente a la función (primer argumento) cada 1000 milisegundos (segundo argumento). Por lo tanto, no es necesario que lo haga en el interior, solo ponga el incremento de i dentro de la función (primer argumento).

 function counter() { var i = 0; // This block will be executed 100 times. setInterval(function(){ if (i == 100) clearInterval(this); else console.log( 'Currently at ' + (i++) ); }, 1000); } // End 

setInterval

Actualización 1

 function counter() { var i = 0; var funcNameHere = function(){ if (i == 100) clearInterval(this); else console.log( 'Currently at ' + (i++) ); }; // This block will be executed 100 times. setInterval(funcNameHere, 7000); funcNameHere(); } // End 
 var iter = 0; function counter() { console.log('show at ' + (iter++)); setTimeout(counter, 1000); } counter(); 
  var i=0; var timer; function increement() { if(i<100) { console.log( 'Currently at ' + i ) } else { clearInterval(timer); } i++; } timer = setInterval(function() {increement()}, 1000); 

http://jsfiddle.net/pfq7a5n3/