STM32 Interrupt 2 Taster erkennen

OP #5266854
Lesenswert?
• ▲
▼
Hallo ich bin recht neue in der Programmierwelt und versuche grade die 
einfachsten dinge zu realisieren.

Dazu habe ich zwei Taster die beide ein High Signal haben. Sobald einer 
davon ein Low Signal bekommt soll der Interrupt beginnen.

Übersicht
S1 = 1
S2 = 1

Wenn S1 || S2 = 0 --> Interrupt

Ich habe mir ein paar Artikeln angeguckt viele waren ehr auf Englisch 
aber wirklich ne Idee habe ich jetzt nicht.
Gast #5266916
Lesenswert?
• ▲
▼
Als Neuling sind Interrupts eine Nummer zu gross. Mach erst mal 
Basis-Sachen wie Portabfrage ohne Interrrupt.

Und Englisch ist die Standard-Sprache. Ohne die geht gar nichts. Ich 
dachte, das würde auf jeder Schule gelehrt ...
Gast #5266922
Lesenswert?
• ▲
▼
The F. schrieb:
> Hallo ich bin recht neue in der Programmierwelt und versuche grade die
> einfachsten dinge zu realisieren.

Die einfachsten Dinge sind beim STM erst mal den Prozessor
überhaupt zum Laufen zu bringen, den Takt richtig einzustellen.
Dann kann man daran gehen einen Port richtig zu initialisieren
und eine LED zum Leuchten oder Blinken zu bewegen.

PittyJ schrieb:
> Als Neuling sind Interrupts eine Nummer zu gross.

Sehr richtig. Es sein denn man will den fünften Schritt vor
dem ersten tun.
OP #5266939
Lesenswert?
• ▲
▼
> Die einfachsten Dinge sind beim STM erst mal den Prozessor
> überhaupt zum Laufen zu bringen, den Takt richtig einzustellen.
> Dann kann man daran gehen einen Port richtig zu initialisieren
> und eine LED zum Leuchten oder Blinken zu bewegen.

Das habe ich schon ausprobiert, ich habe erfolgreich den Port als 
Ausgang initialisiert und auch angesteuert. Durch die Delay Funktion 
habe ich dann auch noch ein Lauflicht erstellt.
OP #5267910
Lesenswert?
• ▲
▼
> Ein Treffer z.B. hier
>
> https://stm32f4-discovery.net/2014/08/stm32f4-external-interrupts-tutorial/

Solche Bespiele habe ich schon gesehen. Bei mir hakt es ab den Punkt wo 
ich sage ok der PD0 Port soll das tun.

In deinem Beispiel nimmt er den PD0 Port als Interrupt und initialisiert 
ihn als Input. Aber wo sagt er jetzt genau was passieren soll wenn PD0 
ein High oder Low Signal bekommt? Oder wird das in die main einfach 
geschrieben und er erkennt ihn sofort als Interrupt?

Quasi so:

...
main ()
{
    if (PD0 == HIGH/Low)
        {
            ...
        }
}

void Configure_PD0(void)
{
...
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.