Forum: Mikrocontroller und Digitale Elektronik C167 Interrupt funktioniert nicht


von Nikolas A. (pirelli-niko)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich werde grade verrückt, da der compiler ständig an der ISR vom Timer 2 
rummeckert und ich nicht weiß warum!? (Außerdem muss ich das morgen früh 
um 8 abgeben :))
Hat von euch jemand eine Ahnung was da falsch ist?
Fehler bringt das Tasking EDE was ich benutze keinen brauchbaren...
Vielen Dank!

Gruß Niko.

von Jochen M. (taschenbuch)


Lesenswert?

>>Ich werde grade verrückt, da der compiler ständig an der ISR vom Timer 2
>>rummeckert und ich nicht weiß warum!

Wie überaus nützlich...

...dass Du zwar ausgiebig auf die Uhrzeit des Abgebens der Arbeit 
eingehst,
was hier so ziemlich NIEMANDEN weiterbringt.

...dafür aber KEIN WORT darüber verlierst, WAS GENAU der compiler 
meckert!

Sorry, keine Hilfe möglich!

Jochen Müller

von Peter D. (peda)


Lesenswert?

Ich vermute mal, die Fehlermeldung könnte sein, der MC hat keine 136 
Interruptvectoren.


Peter

von Nikolas A. (pirelli-niko)


Lesenswert?

Jochen Müller wrote:
>>>Ich werde grade verrückt, da der compiler ständig an der ISR vom Timer 2
>>>rummeckert und ich nicht weiß warum!
>
> Wie überaus nützlich...
>
> ...dass Du zwar ausgiebig auf die Uhrzeit des Abgebens der Arbeit
> eingehst,
> was hier so ziemlich NIEMANDEN weiterbringt.
>
> ...dafür aber KEIN WORT darüber verlierst, WAS GENAU der compiler
> meckert!
>
> Sorry, keine Hilfe möglich!
>
> Jochen Müller
Wie schon geschrieben, bringt der Compiler keinen nützlichen Fehler, 
d.h. sobald die Interrupt Routine drin ist meckert er an so ziemlich 
jeder folgenden Zeile ("syntax error, expecting declaration"), was er 
ohne die Routine nicht tut (0 Errors).

@Peter: den Interrupt Vektor hab ich aus der zugehörigen Tabelle aus dem 
Datenblatt. ("Vector Loaction")

von Mark de Jong (Gast)


Lesenswert?

Hallo Nikolas,

Versuch es mal mit der interrupt trap nummer 0x22 anstatt der interrupt 
vector adresse.

Grüße Mark,

von Nikolas A. (pirelli-niko)


Lesenswert?

Hallo Mark!

Dankeschön für die Antwort, doch leider brachte die Änderung keine 
Besserung.

Gruß Niko.

von Peter D. (peda)


Lesenswert?

Nikolas A. wrote:

> Wie schon geschrieben, bringt der Compiler keinen nützlichen Fehler,
> d.h. sobald die Interrupt Routine drin ist meckert er an so ziemlich
> jeder folgenden Zeile ("syntax error, expecting declaration"), was er
> ohne die Routine nicht tut (0 Errors).

Das ist nur ein Tüpfelchen mehr an Informationen, aber immer noch völlig 
ungenügend.

Du willst Hilfe, sagst aber nichts, warum?

Zu einer Fehlermeldung gehört immer der exakte Wortlaut mit 
Zeilennnummer !!!

Erst dann kann man feststellen, ob die Fehlermeldung nützlich ist.


> @Peter: den Interrupt Vektor hab ich aus der zugehörigen Tabelle aus dem
> Datenblatt. ("Vector Loaction")

Auf Wischiwaschi kann man eben nur Vermutungen äußern.


Peter

von TManiac (Gast)


Lesenswert?

Hi,

Hast du dir mal angeschaut wie Interserviceroutinen für Tasking aussehen 
müssen? Auch wenn es zu spät für deinen Abgabetermin ist, lernen soll 
man trotzdem.

Der Funktionskopf muss so aussehen:
1
_interrupt(0x22) _using(_LEVEL_?) void GPT2_viT2(void)

Interuptnummer und Level musst nach selber ergänzen. Und der Name der 
Funktion ist eigentlich egal.

Schnappt dir mal DAvE und lass dir den Funktionsrumpf erstellen.

Und an solche "Sag mal den genauen Fehler, sonst kann man nicht helfen".
Wer keine Ahnung von dem Compiler und/oder dem Controller hat soll die 
Klappe halten. Es ist absolut unnütz.

von Jochen M. (taschenbuch)


Lesenswert?

>>Und an solche "Sag mal den genauen Fehler, sonst kann man nicht helfen".
>>Wer keine Ahnung von dem Compiler und/oder dem Controller hat soll die
>>Klappe halten. Es ist absolut unnütz.

DAS IST DÄMLICHER, DUMMER UND PAMPIGER DUMMSINN!!!!!!!!!!!
BIST DU DUMM?

Wenn er Compilerfehler meldet, und Hilfe will...
...dann wird man ja wohl mal nach dem Fehlerterxt fragen dürfen!

Das hat weder was mit dem Compiler zu tun, noch mit Kentnissen des 
Prozessors. Was laberst Du hier für einen dummen Quatsch?


Jochen Müller

von Nikolas A. (pirelli-niko)


Lesenswert?

TManiac wrote:
> Der Funktionskopf muss so aussehen:
>
1
_interrupt(0x22) _using(_LEVEL_?) void GPT2_viT2(void)
>
> Interuptnummer und Level musst nach selber ergänzen. Und der Name der
> Funktion ist eigentlich egal.

Genau das war der Fehler! Hab ich zum Glück auch noch rausgefunden, aber 
trotzdem danke für die (hilfreiche) Antwort.
Das "_using(LEVEL?)" kann man meiner Erfahrung nach auch weglassen.

von TManiac (Gast)


Lesenswert?

@Jochen
>DAS IST DÄMLICHER, DUMMER UND PAMPIGER DUMMSINN!!!!!!!!!!!
>BIST DU DUMM?

Nein bin ich nicht. Den Fehler findet man auch ohne jegliche 
Fehlermeldungsbeschreibung. Und ich fand es nur in höchsten Maße frech 
ihm zu schreiben dass man nicht helfen kann solange er keine genaue 
Fehlerbeschreibung liefert.
Kennst du den Kontroller oder irgend einen von Infineon? Wenn ja so 
wüsstest du, dass sich die Compiler Tasking und Keil gerade im Santax 
der ISRs unterscheiden. Und wenn geschrieben wird, dass der Fehler durch 
das Einfügen einer ISR verusacht wird, so schau ich doch erst einmal in 
den Code. Und seine Formulierung der Interruptroutine sah sehr nach 
Pseudo-Code (entschuldige Nikolas) aus.

Und aus der Berufserfahrung heraus kann ich behaupten, wenn der Compiler 
unsinnige Fehler liefert, dann fehlt irgend wo etwas.

Ach und pampig ist es alles in Großbuchstaben zu schreiben und die Leute 
hier ANZUBRÜLLEN. Ich bin dermaßen froh, das das Internet noch 
Text-basiert ist. Bis zum Ende eines Textes hat man seine Stimmung 
wieder unter Kontrolle und lächhelt eher über die Dummheit der anderen.

Bleibt Locker da draußen in der einsamen Welt.
TManiac

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.