Interrupt Signal

Gast #2387960
Lesenswert?

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?
Gast #2387965
Lesenswert?

>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?
Gast #2387973
Lesenswert?

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.
Gast #2388023
Lesenswert?

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;

}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren