mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik externe Interrupts( Ansprechverhalten im INT1 ändern)


Autor: Reinhold Bruder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde!

ich verwende die Externen Interrupts. Der INT1 löst bei einer postiven 
Flanke aus(1mal)... dann möchte ich im Interrupt das Ansprechverhalten 
auf negative Flanken umstellen.



SIGNAL (SIG_INTERRUPT1)
{
........
EICRA|= (1<<ISC11)|(0<<ISC10); //INT1 löst bei jeder pos. Flanke aus
.....
}//ende INT1


int main
{........
// irgendwo in INIT
EIMSK|= (1<<INT1);//aktiviere INT1
EICRA|= (1<<ISC11)|(1<<ISC10); //INT1 löst bei jeder positiven Flanke 
aus
sei();
.......
}

was mache ich falsch?

denn beim ersten Durchlauf wird das Ansprechverhalten(negative Fl. löst 
INT1 aus) nicht geändert?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
statt
 EICRA|= (1<<ISC11)|(0<<ISC10); 

verwendest du den Zeile
 EICRA&= (1<<ISC11)|(0<<ISC10); 

durch die log. ODER Verkünpfung ändert du das Verhalten nicht

Autor: Jojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
morgen!

ich wollte nicht extra ein neues thema aufmachen, und ich glaube, daß 
meine frage ganz schnell geklärt werden kann. hab irgendwie n brett vor 
kopf!

mein aufbau ist einfach: fototransistor mit collector an int0 und 
emitter auf gnd. das soll dann auf steigende flanken ansprechen (wenn 
was in den fototransi bedeckt). tut es auch, aber nur mit nem externen 
pullup. wie kann ich mit den externen interrupts die internen pullups 
benutzen oder geht das nicht? hab das entsprechende ddr auf 0 (eingang) 
und den port auf 1 (normalerweise pullups an).

würde mich über eine schnelle lösung freuen :)

danke und viele grüße,
Jojo

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mal, der Fototransistor wird nicht hochohmig genug. Das kann 
durch Resthelligkeit, Reststrom oder andere "Dreckeffekte" passieren.
Einfach mal messen!

Autor: Jojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi nochmal und danke für die Antwort!

Also gemessen hab ich schon. Durchgeschaltet messe ich über dem 
IR-Fototransistor 0,3-0,5 V und sperrend volle 5V. Müsste von den Werten 
her also reichen, um High und Low Pegel zu erkennen. Tut es ja auch. Wie 
gesagt, mit externem Pullup funktioniert das ja auch super. Wenn er 
nicht verdeckt wird hab ich low-level an dem Pin, und wenn was 
dazwischen kommt wird er hochohmig genug, daß high erkannt wird (mit nem 
ext. Pullup von 0,5k). Ich weiß, daß das zu wenig ist, aber ich hatte 
grad nix anderes griffbereit ;) ...
Bei offen gelassenem Pin (der dann ja eigentlich durch den internen 
Pullup high-level haben sollte) werden außerdem unvorhersehbar 
Interrupts ausgelöst. Das verstärkt meinen verdacht, daß der interne 
Pullup nicht aktiviert ist...

Ich wollte meine Schaltung auch nicht zu eurem Problem machen :) . Ich 
wollte nur wissen, wie/ob ich die internen Pull-Ups benutzen kann, wenn 
der Pin für externe Interrupts benutzt werden soll. Laut Datenblatt 
sollten die internen Pullups 20-50k haben. Aber wenn ich vom 
Interrupt-Pin nach Vcc messe ist der Widerstand außerhalb des messbaren 
Bereichs.

Danke nochmal und vG,
Jojo

Autor: Jojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich konnte im Datenblatt dazu nichts finden... werden die internen 
Pullups automatisch zu- oder weggeschaltet, wenn man das 
Ansprechverhalten der Interrupts ändert? Mein Interrupt soll ja auf 
steigende Flanken ansprechen. Werden da die internen Pullups vielleicht 
automatisch deaktiviert? Weil die machen ja am meisten Sinn, wenn der 
Interrupt auf fallende Flanken ansprechen soll... grübel 

VG

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jojo wrote:
> Werden da die internen Pullups vielleicht
> automatisch deaktiviert?
Nein. Es gibt nur ganz wenige Peripheriefunktionen, deren Aktivierung 
die Einstellungen von PORTx bzw. DDRx überschreibt, und die 
Interrupt-Eingänge zählen nicht dazu.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich konnte im Datenblatt dazu nichts finden... werden die internen
>Pullups automatisch zu- oder weggeschaltet, wenn man das
>Ansprechverhalten der Interrupts ändert?

nein

>Weil die machen ja am meisten Sinn, wenn der
>Interrupt auf fallende Flanken ansprechen soll... grübel

quatsch

die Flanke ist dem Pullup (Portpin) völlich egal.

Autor: Jojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar ist dem Pullup die Flanke egal, das ist schon klar. Aber einer der 
ersten Gedanken "könnte" ja sein: warum soll der Pullup aktiviert sein, 
wenn der auf positive Flanken ansprechen soll, weil der ist dann ja 
immer high... War ja auch nur ein Gedanke, weil es halt nicht so 
funktioniert, wie ich es mir vorgestellt habe.
Aber ok, wenn die Pullups nicht durch das Einstellen der Interrupts 
verändert werden bin ich schon mal weiter... danke erstmal!

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jojo wrote:
> Klar ist dem Pullup die Flanke egal, das ist schon klar. Aber einer der
> ersten Gedanken "könnte" ja sein: warum soll der Pullup aktiviert sein,
> wenn der auf positive Flanken ansprechen soll, weil der ist dann ja
> immer high...
Bitte was? Bei einem Open-Collector-Ausgang oder einem normalen 
Schalter/Taster ist es völlig wurscht, ob der eine fallende oder eine 
steigende Flanke erzeugen soll. Er braucht in beiden Fällen ein 
definiertes Potenzial in beiden Zuständen.

Autor: Jojo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist klar! darum war ich verwundert, DASS es nicht funktioniert hat. Aber 
wie gesagt, ist geklärt und damit ist auch gut.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.