Forum: Mikrocontroller und Digitale Elektronik implicit Declariation in einer Interrupt Routine


von Chris T. (chris0086)


Lesenswert?

Hallo Leute,
ich bekomme eine Fehlermeldung  undefined reference to `Set_Direction'
in der Interruptroutine obwohl es am Anfang der Datei auch einen 
Funktionsprototypen gibt:
1
void SET_Direction(void)
2
{
3
  if ( PIND & (1<<PIND3) )
4
    {
5
            USART_Transmit('1');
6
            Richtung = 1;
7
    }
8
    else
9
    {
10
            USART_Transmit('0');
11
            Richtung = 0;
12
    }
13
}
14
ISR (INT1_vect)
15
{
16
  Set_Direction(); <-- Hier Fehler implicit declaration of function 'Set_Direction'
17
}

Ich sehe aber nicht woran das liegt?

von Peter II (Gast)


Lesenswert?

Chris tian schrieb:
> Ich sehe aber nicht woran das liegt?

müsste richtig sein.
Wenn es nicht geht wird der Fehler woanders im Quellcode sein.

Ein Funktionsaufruf in der ISR macht die ISR recht langsam, weil dafür 
alle Register gesichert werden müssen.

von (prx) A. K. (prx)


Lesenswert?

Chris tian schrieb:
> void SET_Direction(void)
>   Set_Direction(); <-- Hier Fehler implicit declaration of function

Fällt dir da nichts auf?

von isidor (Gast)


Lesenswert?

A. K. schrieb:
> Chris tian schrieb:
>> void SET_Direction(void)
>>   Set_Direction(); <-- Hier Fehler implicit declaration of function
>
> Fällt dir da nichts auf?

Vieleicht muss man es noch deutlicher schreiben:
1
void SET_Direction(void)
2
     Set_Direction(); <-- Hier Fehler implicit declaration of function

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.