Pages: 1 [2]   Go Down
Author Topic: Interrupt(0) ein und ausschalten  (Read 3775 times)
0 Members and 1 Guest are viewing this topic.
0
Online Online
Faraday Member
**
Karma: 24
Posts: 3487
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Du musst unterscheiden zwischen der IDE und den Libraries. Die IDE ist im weitesten Sinne ein Editor.
Die Libraries stellen zusätzlichen Code bereit wie z.B. AttachInterrupt. Wenn Du wissen willst wie das zusammenpasst solltest Du in den Quelltext der Libraries schauen. Jede Wette, danach geht Dir ein riesen Licht auf.

Vorgehensweise:
 - nachschauen wo die Libraries im Arduino Verzeichnis liegen
 - nachschauen in welcher Library wohl AttachInterrupt liegt
 - den Quelltext durchschauen

Danach ist Dir mit hoher Wahrscheinlichkeit klar wie das zusammenpasst. Insbesondere, daß da gar nichts gaaanz anders gemacht wird. Im Gegenteil, man kann das beliebig mischen. D.h. man kann auch in nicht Arduino Projekten Arduino Libs einbinden und umgekehrt. Zumindest wenn man weiss was man tut. Das Wissen erlangt man meiner Meinung nach am schnellsten mit der oben beschriebenen Vorgehensweise smiley-wink

Gruß, Udo
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 96
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

guuuuute idee mit den libs   das stimmt.


das wir hier nix grundlegend anders machen war mir schon klar   aber bei arduino hat sich ebend einer hingesetzt und uns ne menge arbeit abgenommen indem er libs gebaut hat die alles einfach aussehen lassen smiley-wink

das sich hinter z.B. atacheInterrupt() der ganze kram versteckt den der AVR braucht is klar   aber auf die idee ,da mal in den libs zu suchen, bin i ni gekommen smiley-sad

Danke derRobert
Logged

0
Online Online
Faraday Member
**
Karma: 24
Posts: 3487
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Analyse zeigt, daß die eigentliche Arbeit in der AVR LIBC steckt. Arduino liefert dann nur noch eine weitere Verschalung. Manchmal ist die geschickt und manchmal eher suboptimal. Das wirst Du dann aber demnächst selber herausfinden. Die Libs sind nicht so groß. Bevor man 10 Abhandlungen darüber gelesen hat ist es fast immer schneller mal kurz im Code nachzuschauen.

Wie es so schön heisst "Die Wahrheit liegt im Code" smiley-wink

Gruß, Udo
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 96
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fragt mich nicht wie und warum aber EIFR=(1<<INTF0); vor atachInterrupt setzt das Flag zurück.

der Sonntag ist rum und ich hab das Problem gelöst aber ehrlich gesagt hab ich das zusammenspiel noch nicht ganz verstanden. mein heute erworbenes wissen hat geratemal gereicht um google jetzt die richtige frage zu stellen und hier raus zu kommen http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1292970203

schön das dass problem gelöst ist aber verstanden hab ich nur das der befehl ebend die wartenden triggersignale am interrupt(0) mit 1 überschreibt.

aber die schreibweise des Befehls EIFR=(1<<INTF0); passt nun garnicht zu dem was ich heute so alles lesen durfte (GIFR.INTF0 = 1....) smiley-confuse

Trotzdem danke  smiley-neutral

derRobert
Logged

0
Online Online
Faraday Member
**
Karma: 24
Posts: 3487
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Naja, das passt schon. Guckst Du hier http://www.cs.cf.ac.uk/Dave/C/node13.html.

Gruß, Udo
Logged

Check out my experiments http://blog.blinkenlight.net

Pages: 1 [2]   Go Up
Jump to: