PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt



Exodus
08.06.2006, 10:37
Hallo

Kann mir wer bitte sagen wie ich einen interrupt programmiere, wenn z.B.:
wenn PINA, 0b00000001 eins ist?

MFG
Michi

Florian
08.06.2006, 14:18
Hallo Michi!
Du musst einen Interrupt über einen der dazugehörigen Pins auslösen, also INT0/INT1 (evtl. INT2).
Du kannst nicht einfach einen beliebigen Pin nehmen, das geht nicht, dafür gibt es ganz spezielle Pins, mit einer Interruptfähigkeit.

Viele Grüße
Florian

linux_80
08.06.2006, 21:02
Hallo,

oder man nimmt einen AVR, der das kann, zB der Mega168,
kann man erkennen, wenn die Pins u.a. die Bezeichnung PCINT haben,
dabei wird pro Port ein IRQ ausgelöst, das entsprechende Bit muss man dann selber rausfinden, falls man mehr als ein Pin pro Port als IRQ-fähig definiert hat.

Florian
08.06.2006, 21:33
Hallo linux_80!
Das wusste ich garnicht, kann das nur der M168?

Dann wäre das auch ein Lösung...

Viele Grüße
Florian

izaseba
08.06.2006, 21:56
kann das nur der M168?

Das können mehrere z.B. Tiny15, das magische Wort heißt Pinchange Interrupt.

Gruß Sebastian

Florian
08.06.2006, 22:05
Aha, sehr interessant, so habe ich heute auch nochmal was gelernt, auch wenn ich es nicht für die Klausur brauche, die ich morgen verhauen werde. ;o)

Gute Nacht
Florian

rungo
08.06.2006, 22:40
Und der ATtinny2313 hat diesen Int auch - die PortB-Pins

Florian, viel Glück bei der Klausur
Gute Nacht!

linux_80
08.06.2006, 23:18
Anscheinend wird das jetzt häufiger bei neueren AVRs mit eingebaut,
ich habs bis jetzt bei diesen gesehen:
Mega 48 / 88 / 168 / 162 / 165
Tiny 25 / 45 / 85 / 2313 / 13

und nicht alle davon haben aber alle Pins damit ausgestattet.
Beim 168er kann jeder IO-Pin einen IRQ auslösen, dazu kommt noch der bekannte INT, so könnten diese Pins sogar zwei IRQs auslösen !?

Hab mir mal die Parametric Table von Atmel rausgesucht, da gibts es sogar eine Spalte "Ext Interrupts" aber die scheint nicht besonders gut gepflegt zu sein, so kann man das nicht unbedingt auf einen Blick erkennen welcher jetzt PCINT hat oder nicht.
Hilft nur DB runterladen und Pinout ansehen.

rungo
08.06.2006, 23:38
"Hilft nur DB runterladen und Pinout ansehen."
Schnell feststellen ob ein AVR dies oder jenes hat, das kann man auch indem man sich die Include-Dateien (Devices) der verschiedenen AVRs mit einem Texteditor anschaut - hier z.B. hilft ein Blick auf die INT-Vektoren.

Florian
09.06.2006, 07:10
Sehr interessant, da muss ich glatt nochmal meine Interrupt-Platine umlayouten, mit einem neuen µC, ich habe da nämlich eine Konstruktion aus Dioden benutzt, um sowohl den IRQ auszulösen, als auch einen Pin zu belegen, ging eigentlich nicht schlecht, ist halt nur ein bischen umständlich.


Florian, viel Glück bei der Klausur
Gute Nacht!Naja, ich habe BuV schon quasi abgeschrieben! *lol*
Ich mag das Fach nicht, man muss irgendwelche komischen Formeln auswendiglernen und alles ist so gähnend langweilig! ;o)
Naja, mit einer 4 wäre ich mehr oder weniger zufrieden, aber wir werden sehen ...
Ausgleichen dürfte keine Problem sein, ist ja nur Nebenfach und überall bin ich ja sonst besser als 4 bzw. sogar 3.

Nagut, ich muss dann auch mal ...
Viele Grüße
Florian