Forum: Mikrocontroller und Digitale Elektronik Funktionen durch Funktion "ausschalten"


von Beginner (Gast)


Lesenswert?

Hallo,

kann man in der Programmiersprache C durch eine Funktion andere 
Funktionen unterbinden. Ich hatte mit das so vorgestellt, dass z.B. an 
einem PIN vom µC eine Spannung anliegt und solange das der Fall ist soll 
eine bestimmte Funktion aufgerufen werden. Außerdem sollen in diesem 
Zustand alle anderen Funktionen außer Kraft gesetzt werden, sodass 
nichts die Funktion stören kann kein Interrupt oder ähnliches. Erst wenn 
die Bedingung keine Spannung am PIN xy des µC gegeben ist dürfen 
Interrupts und andere Funktionen wieder arbeiten.


Ist in C sowas möglich gibt es da ein bestimmtest Schlüsselwort?

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

Das kommt ganz auf deinen µC an. Welcher ist es denn?

Bei AVRs könnte man das mit PinChange-Interrupts und CLI/SEI machen.


Gruß
Jonathan

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Beginner schrieb:

> Ist in C sowas möglich gibt es da ein bestimmtest Schlüsselwort?

Ja: Schreibe die Aufrufe in einen if-Block.

von Thomas E. (thomase)


Lesenswert?

Beginner schrieb:
> Ist in C sowas möglich gibt es da ein bestimmtest Schlüsselwort?
Ja, nein.

z.B. so:
1
int main(void)
2
{
3
  Initialize();
4
5
  while(1)
6
  {
7
    cli();
8
    while(Spannung)
9
    {
10
      //Tu dies...
11
    }
12
    sei();
13
    while(!Spannung)
14
    {
15
      //Tu jenes...
16
    }
17
  }
18
}

mfg.

von Willi S. aus M. (Gast)


Lesenswert?

nutz doch einfach den reset-pin... mit Spannung, keine Funktion, ohne 
normale Funktion...

von Ralph (Gast)


Lesenswert?

Möglich ? JA

ein Schlüsselwort? NEIN

Du wirst dir das selbst "zusammenbauen" müssen.
Mit Bedingten Verzweigungen.
IF   SWICTH   ......
und Interruptsperren.
Je nach µC und Compiler können das SLI() und CLI() sein, oder auch 
andere Befehle.

von Stefan Noack (Gast)


Lesenswert?

Beginner schrieb:
> Ich hatte mit das so vorgestellt, dass z.B. an
> einem PIN vom µC eine Spannung anliegt und solange das der Fall ist soll
> eine bestimmte Funktion aufgerufen werden. Außerdem sollen in diesem
> Zustand alle anderen Funktionen außer Kraft gesetzt werden, sodass
> nichts die Funktion stören kann kein Interrupt oder ähnliches. Erst wenn
> die Bedingung keine Spannung am PIN xy des µC gegeben ist dürfen
> Interrupts und andere Funktionen wieder arbeiten.

Könnte man über einen Interrupt lösen, der bei Signal am Pin auslöst 
einfach keine anderen Interrupts mehr zulässt bis das Signal wieder weg 
ist. Manche Controller haben sogar einen Non-Maskable Interrupt, den 
kann man dann auch nicht ausschalten.

von Dumpf Nilp (Gast)


Lesenswert?

Und was soll das Ganze ?

von Peter D. (peda)


Lesenswert?

Beginner schrieb:
> Ist in C sowas möglich gibt es da ein bestimmtest Schlüsselwort?

Sogar mehrere.
Bedingungen werden mit if, while oder for abgetestet.

Du mußt Dir nur erstmal einen Programmablaufplan aufmalen, dann kannst 
Du einfach danach das Programm schreiben.

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.