Função não funciona

Olá

alguém saberia me dizer por qual motivo a função teste() não está sendo executada?

byte botao = 2; //
byte led = 13;
boolean estado = LOW;

void setup(){
pinMode(botao, INPUT);
digitalWrite(botao, HIGH);
pinMode(led, OUTPUT);

}
void loop(){

if(digitalRead(botao) == LOW){
void teste();
}
}

void teste() {
estado = !estado;
digitalWrite(led, estado);
delay(500);
}

Obrigado
Marcelo

Falha minha ...desculpem

if(digitalRead(botao) == LOW){
void teste();

if(digitalRead(botao) == LOW){
teste();

Usando void está a anular a função verdadeira re-declarando-a.

void é para a declarar, para chamar a função é apenas

teste();

void loop(){

if(digitalRead(botao) == LOW){
teste();
}
}

void teste() {
estado = !estado;
digitalWrite(led, estado);
delay(500);
}