Forum: Mikrocontroller und Digitale Elektronik Interrupt auslösen AT91SAMXXXXX


von Tobias E. (doenges2)


Lesenswert?

Hallo,


wo genau kann ich nachlesen wie ich genau einen Interrupt durch einen
Taster auslösen kann.
Also was muß ich im AIC und PIO machen usw....und zwar mal in einem
Satz!
Weiß jemand eine Seite bei dem ich das nachlesen kann?

Gruß

Tobias

von Frank (Gast)


Lesenswert?

Datenblatt. (Ok, das ist kein richtiger Satz :))
Im groben: ISR schreiben, ISR in den AIC eintragen (Datenblatt), pin 
change interrupt im PIO controller aktivieren (Datenblatt), PIO 
controller konfigurieren (Datenblatt), Takt für PIO aktivieren 
(Datenblatt).
Alternativ kann ich dir die Beispiele von Martin Thomas ans Herz legen.

von Forino (Gast)


Lesenswert?

ich habe den gleichen problem wie du tobias.
hoffe meldet sich jemand .

gruss!

von Tobias E. (doenges2)


Lesenswert?

Hallo Frank

danke für die Antwort!
Hart du zufällig noch einen Tip wo man das noch nachlesen kann?

Martin Thomas benutzt eine lib_AT91SAM7S64_H die ich nicht kompliieren 
kann!
Ich benutzte Ecplise-yagarto-openocd-olimex(ARM-USB-OCD)-Olimex EK 
Board.

Vielleicht auch hier eine Idee?

Gruß

Tobi

von Frank (Gast)


Lesenswert?

Hm, stellt sich die Frage, warum das bei dir nicht klappt. Ich habe den 
gcc aus den sourcen kompiliert und da geht das eigentlich einwandfrei. 
Schreib doch einfach mal die Fehlermeldung.

von Tobias E. (doenges2)


Lesenswert?

Hallo,

also ich habe einfach mal die lib_AT91SAM7S64_H in mein Projekt kopiert 
und dann in meiner main folgende Zeile kopiert:

AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2 );


folgende Fehlermeldung bekam ich dann wenn ich unter Ecplise das "Build 
Project" gedrückt habe:

make -k all
.compiling
arm-elf-gcc -I./ -c -fno-common -O0 -g main.c
..linking
arm-elf-ld -v -Map main.map -Ttest123.cmd -o main.out crt.o  main.o 
button2isr.o isrsupport.o lowlevelinit.o libc.a libm.a libgcc.a
GNU ld version 2.17
main.o: In function `main':
L:\Workspace\TEST mit Pollen/main.c:22: undefined reference to 
`AT91F_PIO_ClearOutput'
make: *** [main.out] Error 1
make: Target `all' not remade because of errors.

Hoffe, du hast eine Idee!?

Gruß
Tobias

von Frank (Gast)


Lesenswert?

Was meinst du mit "kopiert"? Die Datei?
Auch mit #include eingebunden?

Auf jeden Fall ist die Funktion nicht bekannt.

von Tobias E. (doenges2)


Lesenswert?

in den gleichen Ornder kopiert.....merh nicht.

Da es ja eine header Datei sit habe ich sie nicht mit include 
eingebunden!

Kann es sein, daß der Compiler die lib_AT91SAM7S64_H nicht versteht, 
obwohl sie Ansi C entspricht, zum Beispiel weil irgendwelche 
Schlagwörter ihm nicht bekannt sind?

Gruß
Tobias

von Frank (Gast)


Lesenswert?

Du musst sie einfach mit include einbinden. Die Funktionen sind inline 
in dieser Datei programmiert. Woher soll denn der Compiler wissen, dass 
diese Datei dazugehört?
Am besten, du nimmst eines der Beispielprojekte von Martin Thomas und 
löschst die unnötigen Dinge raus.

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.