Forum: Mikrocontroller und Digitale Elektronik Kann man in interrupt routine floating point rechnung durchführen (PIC)


von Thomas (Gast)


Lesenswert?

hallo!

ist es sinnvoll in interrupt routine floating point rechnung 
durchführen, wenn nicht warum? oder muss man solchen rechnungen in der 
hauptroutine erledigen?

danke thomas

von Ber (Gast)


Lesenswert?

He,
ISR sollten so kurz wie möglich sein, für deine Anwendung würde ich in 
der ISR ein Flag setzen, im Hauptprogramm abfragen und dort die 
Berechnung durchführen.
Kommt aber darauf an wie schnell der Interrupt kommt, welche 
Berechnung(en) durchgeführt werden sollen etc..

von Johnny B. (johnnyb)


Lesenswert?

Wenn Du sonst keine Interrupts hast die zeitkritisch sind, dann kannst 
Du darin floats berechnen solange Du willst.
Kommt halt immer auf das "Gesamtdesign" Deiner Firmware an.

Aber...
Dass alle sagen, man soll möglichst wenig Zeit in Interrupts verbringen 
kommt daher, dass manche Firmware sehr lange (meist länger als man 
denkt) gepflegt und erweitert wird. Hat man dann nicht von Anfang an 
solche Dinge berücksichtigt, kommt man früher oder später immer wieder 
zum Punkt an dem nichts mehr richtig funktioniert und man mühsam die 
Ursachen finden muss.
Beachtet man es von Anfang an und programmiert "sauber", dann lässt sich 
eine Firmware meist ohne grosse Probleme erweitern und anpassen, ohne 
jedes mal alles auf den Kopf stellen zu müssen.

von Falk B. (falk)


Lesenswert?

Siehe Interrupt

von Thomas (Gast)


Lesenswert?

@ Ber
danke für schnelle antwort, es muss einen wert für timer0 ausgerechnet 
werden, der dann später wiederum interrupt auslöst u.s.w, bis dann eine 
abbruch bedienug kommt, also das ganze quasi rekursiv ruft sich selbst 
auf. ich weiss nicht wo ich die berechnung platzieren soll (in ISR oder 
in Hauptroutine) damit das ganze funktioniert? mache ich das in 
hauptroutine, kann sein, dass interrupt diese an einer stelle 
unterbricht wo noch kein neuen wert für timer0 ausgerechnet wurde und 
timer0 wird dann noch mal mit dem altem wert geladen, aber dein tipp mit 
dem flag in ISR und der abfrage in der hauptroutine finde ich gut, muss 
gleich ausprobieren ;)

von P. S. (Gast)


Lesenswert?

Wenn du so programmierst, wie schreibst, wird das sowieso nichts. Tip: 
Sortiere erst mal deine Gedanken. Dann schreibe sauber und 
nachvollziehbar auf, was du machen willst. Und dann mach dich an die 
Realisierung.

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.