Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > Hallo, > > > > > > > > ich habe auf meine MEGA128 Projectboard das unten aufgeführte Programm gestartet, > > > > um den externen Interrupt 7 zu testen. > > > > PE7 habe ich über eine 20cm lange Leitung mit einem 4,7KOhm an +VCC angeschlossen. > > > > > > > > Wenn ich nun meinen Lötkolben oder eine Halogenlampe mit Trafo ein und ausschalte, > > > > erhalte ich ständig Interrupts. Selbst das Reduzieren des Widerstands auf 1KOhm bracht keine Änderung. > > > > Mit der Leitung ohne Widerstand an VCC gab es keine Interrupts. > > > > > > > > Ich habe dann die Spannungsversorgung von einem Schaltnetzteil auf ein Labornetzteil gewechselt. > > > > Aber selbst mit dem Labornetzteil habe ich 2,7KOhm benötigt, damit keine Interrupts mehr kommen. > > > > > > > > Ist diese Verhalten normal? > > > > Gibt es geeignete Schaltungsmaßnahme um die Interrupts zu verhindern? > > > > > > > > Für Hilfe währe ich sehr dankbar. > > > > > > > > Hier noch ein Frage an André Helbig: > > > > > > > > Wenn man bei Deiner PCF-Ports-HS I²C-Porterweiterung die Interruptleitung mit dem Projektboard > > > > verbinden würde, hätte man dann den gleichen Effekt? > > > > > > > > > > > > Grüße Joerg > > > > > > > > > > > > > > > > #define LF 0x0A > > > > #define CR 0x0D > > > > // ExtInt Quelle definieren > > > > #define EXTINT INT_7 > > > > > > > > // 0: ein low Pegel löst einen Interrupt aus > > > > // 1: jeder Flankenwechsel löst einen Interrupt aus > > > > // 2: eine fallende Flanke löst einen Interrupt aus > > > > // 3: eine steigende Flanke löst einen Interrupt aus > > > > > > > > #define INTMODE 2 > > > > > > > > unsigned int count; > > > > > > > > void Ext_ISR(void) > > > > { > > > > byte i; > > > > int irqcnt; > > > > > > > > Msg_WriteText("Ext IRQ "); > > > > Msg_WriteInt(count); > > > > Msg_WriteChar(CR); > > > > > > > > count++; > > > > > > > > irqcnt=Irq_GetCount(EXTINT); // Interrupt Request Counter > > > > } > > > > //------------------------------------------------------------------------------ > > > > // Hauptprogramm > > > > // > > > > void main(void) > > > > { > > > > Msg_WriteText("Ext IRQ Test "); > > > > Msg_WriteInt(EXTINT); > > > > Msg_WriteChar(CR); > > > > > > > > count=0; > > > > > > > > Irq_SetVect(EXTINT,Ext_ISR); // Interrupt Service Routine definieren > > > > Ext_IntEnable(7,INTMODE); // Interrupt aktivieren > > > > > > > > > > > > > > > > while (1) > > > > { > > > > } > > > > > > > > } > > > > > > Hallo Jörg, > > > das Verhalten ist völlig normal, Eingänge sollten immer über einen Tiefpass geschalten werden > > > siehe http://de.wikipedia.org/wiki/Tiefpass > > > z.B. R=10K, c = 100nF. Bei längeren Leitungen (z.B. < 10 m) verwende ich zum Schutz noch > > > Transildioden (http://de.wikipedia.org/wiki/Transildiode) > > > > > > Viele Grüße > > > Jo > > > > Hallo Jo, > > > > vielen Dank für die Info. > > > > Der Tiefpass funktioniert aber leider nur direkt am Pfostenstecker auf dem Projektboard. > > Verbinde ich den Pfostenstecker mit einer 10cm Langen Leitung zum Lochrasterfeld, > > dann verbessert sich der Effekt, ist aber trotzdem noch vorhanden. > > > > Das RC Glied am Pfostenstecker ist doch schon eine ganz schön wilde Verdrahtung… > > > > Grüße Joerg > > > > > Hi Jörg, du kannst an beiden Enden einen Tiefpass einsetzten. Du kannst auch mit den Werten von R > und C experimentieren. Ein Oszi würde auch nützlich sein. > Viele Grüße > Jo