Formatiere das mal so, dass man es auch lesen kann. Wo ist deine ISR?
Und um welchen Mikrocontroller geht es überhaupt? An welchen Pin ist die
LED wie angeschlossen? An welchen Pin ist dein Taster wie angeschlossen?
Zeige mal einen Schaltplan und Foto vom Aufbau.
Gegenfrage: Was wollen Sie mit einem Interrupt ohne ISR anstellen? Was
ist mit den anderen Fragen?
Ich kann hier nur empfehlen, erst einmal die Grundlagen ohne diese HAL
Bibliothek zu lernen. ISR kann man notfalls googeln.
Für den Anfang ist zum Beispiel diese Anleitung gut:
http://www.pomad.fr/node/2
Wenn das zu kompliziert ist, vielleicht besser mit einem AVR
Mikrocontroller anfangen. Da kommt man schneller rein.
http://stefanfrings.de/mikrocontroller_buch/index.html
In der IDE zu Deinem MC sollte es doch bestimmt ein Beispielverzeichnis
geben, wo man leicht das korrekte Aufsetzen eines Interrupthandlers
entnehmen kann.
Abgesehen davon kann man sich auch fragen, warum professionelle
Tastenabfragen absichtlich den externen Interrupt nicht benutzen
(Stichwort Entprellen).
Läuft auf Deinem MC ein OS, weil Du dem Main Argumente übergibst?
Navid M. schrieb:> ich möchte eine LED mit Interrupt umschalten. Aber das geht nicht.
Natürlich geht das. Du machst nur irgendetwas falsch, wobei der
Interrupt genau genommen selber nicht irgendetwas umschalten kann. Aber
in der Routine, die nach Auftreten des Interrupts ausgeführt wird, lässt
sich der erforderliche Programmteil gut unterbringen.
Teo D. schrieb:> Da denk lieber..... Wie viel Haar, wollen wir spalten?! ;)
Dann sei du doch bitte so nett und erkläre dem TO, wie er seine LED mit
Interrupt aber ohne ISR ansteuern kann. Ich fühle mich dazu nicht
imstande.
Die Frage sollte ein deutlicher Hinweis sein, dass er da etwas wichtiges
vergessen hat. Wenn er nicht weiss, dass er die ISR vergessen hat, weiss
er nicht, was ein Interrupt ist. Und solange er das nicht weiss, sollte
er noch nicht anfangen, entsprechende Quelltexte zu schreiben oder zu
kopieren.
Stefan ⛄ F. schrieb:> Wenn er nicht weiss, dass er die ISR vergessen hat, weiss> er nicht, was ein Interrupt ist. Und solange er das nicht weiss, sollte> er noch nicht anfangen, entsprechende Quelltexte zu schreiben oder zu> kopieren.
Kinder fangen das Fahrradfahren an, ohne dessen Fahrphysik
verstanden/studiert zu haben.
Du möchtest sagen, dass alle Kinder falsch handeln.
Oder andersrum:
Wenn man immer nur das tun würde, was man schon kann und weiß, dann
würde es keine Entwicklung geben.
Liebster stefanus ist das dein Ziel, des runter machens?
Andere in der Entwicklung bremsen?
Du siehst, ich bin immer noch auf der Suche nach deinen Motiven!
Arduino Fanboy D. schrieb:> Liebster stefanus ist das dein Ziel, des runter machens?
Nein, das war nicht beabsichtigt. Ich wollte nur auf den Fehler
hinweisen ohne fiesen Hintergedanken.
Navid M. schrieb:> ich möchte eine LED mit Interrupt umschalten. Aber das geht nicht.
Doch, das geht schon, aber man muss es richtig machen.
1. Ein Taster ist als Interrupt-Quelle ungeeignet. Bei jedem Tastendruck
sendet der 3 oder 4 (oder 10) Interrupts, weil er prellt. Daß Taster
nicht per (flankengetriggertem) Interrupt ausgewertet werden dürfen,
weiss jedes Kind.
2. Wenn ein Interrupt auf PinChange ausgelöst wird (durch irgendien
andere Quelle als deinen Taster, z.B. einen NE555 als Taktgeber oder
Entprellschaltung), dann muss auch irgendein damit verknüpfter Code
irgendetwas tun. Dieser Code heisst Interrupt (Service) Routine. Die
fehlt bei dir komplett.
Also: Grundlagen lernen.
MaWin schrieb:> Daß Taster> nicht per (flankengetriggertem) Interrupt ausgewertet werden dürfen,> weiss jedes Kind...
Ich ergänze: weiss jedes Kind, dass auf mikrocontroller.net aufmerksam
mit liest.
Für erste Versuche mit Interrupts finde ich die Iddee aber gar nicht so
falsch, diese zunächst manuell auszulösen. Wenn er die LED in der ISR
toggelt, wird er das Problem des Prellens auch direkt bemerken und sich
dann damit weiter befassen (hoffentlich).
Stefan ⛄ F. schrieb:> ohne fiesen Hintergedanken.
Ja, dass du da nicht bewusst drüber nachdenkst, ist mir schon klar!
Das ist offensichtlich ein lang trainierter und unreflektiert
ablaufender Automatismus. (denn sonst würdest du ja nicht dauernd das
Gegenteil behaupten, wenn man dich drauf anspricht)
Dennoch scheint das irgendeins deiner Bedürfnisse zu befriedigen.
Aber ich finde das noch heraus, worum es sich dreht!
Da mache dir nur keine übertriebenen Hoffnungen.
Arduino Fanboy D. schrieb:> Dennoch scheint das irgendeins deiner Bedürfnisse zu befriedigen.
Oder die Unfähigkeit, angemessen zu kommunizieren. Rate mal, warum ich
Programmierer geworden sein könnte und nicht z.B. Verkäufer.
Arduino Fanboy D. schrieb:> Kinder fangen das Fahrradfahren an, ohne dessen Fahrphysik> verstanden/studiert zu haben.
Sie fangen aber damit an, indem sie schauen, wie andere es machen.
D.h. nicht mit Lenker hinten oder Räder oben.
Ob und was an dem Code nicht wie gewünscht funktioniert, kann ich
natürlich nicht einschätzen, da ich weder Chip noch Toolchain kenne.
Es ist allerdings schon sehr beeindruckend, welche riesen Menge Zeugs
dafür initialisiert werden muß.
Falls irgendeine Vorlage verwendet wurde, wäre es sinnvoll, diese zu
verlinken. Vielleicht stehen da irgendwelche Erläuterungen.
Ich würde erstmal ohne Interrupt versuchen, eine LED zum Leuchten zu
bringen.
Also Taste ein-> LED ein, Taste aus -> LED aus.
Peter D. schrieb:> Arduino Fanboy D. schrieb:>> Kinder fangen das Fahrradfahren an, ohne dessen Fahrphysik>> verstanden/studiert zu haben.>> Sie fangen aber damit an, indem sie schauen, wie andere es machen.> D.h. nicht mit Lenker hinten oder Räder oben.
Ich weiß es noch wie Gestern!
Dein erstes Spielzeug Fahrrad hast du unter lautem "Da! Da! Da!"
Geschrei, immer wieder auf den Boden geknallt, bis es in Fetzen gegangen
ist.
Wie Gestern!