Hey, ich habe auf einem Steckbrett einen atmega8 mit dem 7805, internem Takt und ein paar leds laufen. Habe jetzt mal den INT0 ausprobiert. Bei Interruptsignal soll eine LED aus und an gehen. das funktioniert auch. Allerdings manchmal auch wenn kein Interruptsignal anliegt. wenn ich einmal am tisch wackel kommt das zb auch. verstehe nur nich ganz wo dann das signal herkommt. Jemand ne Idee?
>Steckbrett >Allerdings manchmal auch wenn kein Interruptsignal anliegt. wenn ich >einmal am tisch wackel kommt das zb auch. verstehe nur nich ganz wo dann >das signal herkommt. Vom losen Kabel im Steckbrett?
Was ist denn die Signalquelle für INT0? Fehlt da vielleicht ein Ziehwiderstand? Gruß Dietrich
Wenn der Interrupt bei einem Wechel von 1 zu 0 ausgelöst werden soll, muss ein Pullup-WIderstand an den Interrupteingang angelegt werden, damit dieser eine definierte 1 hat, wenn dieser nicht auf 0 gezogen wird.
signal sind erstmal zum ausprobieren die 5V von einem anderen PIN. einen widerstand hab ich nicht dazwischen.
hier mal der Quelltext
--------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h> // (1)
#define INT0_vect _VECTOR(1)
int ZAHL;
ISR(INT0_vect)
{
if(ZAHL==0)
{
PORTB=0b00000111;
ZAHL=1;
}
else
{
PORTB=0b0000000;
ZAHL=0;
}
}
int main (void) {
cli();
ZAHL =0;
#define INT0 6
#define INTF0 6
#define MEINBIT5 1
DDRC = 0xFF;
DDRD = 0xFF;
DDRB = 0xFF;
PORTD=0b00000000;
PORTC=0b00000100;
PORTB=0b00000000;
MCUCR |= ((1<<ISC01) | (1<<ISC00)); // bei steigender Flanke
DDRD &= ~(1<<PD2);
PORTD &= ~(1<<PD2);
GICR |=(1<<INT0);
sei();
while(1)
{
}
return 0;
}
Hmm also es reicht schon wenn ich meine hand nur über der schaltung halte,ohne sie zu berühren. Also ich vermute der Int0 hängt in der Luft. Ist weder high noch low.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.