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?
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
Beginner schrieb: > Ist in C sowas möglich gibt es da ein bestimmtest Schlüsselwort? Ja: Schreibe die Aufrufe in einen if-Block.
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.
nutz doch einfach den reset-pin... mit Spannung, keine Funktion, ohne normale Funktion...
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.