Lionic
03.10.2005, 17:02
Hallo mitsammen, dies ist mein erster Besuch und gleich schon mit einer Frage :(
Ich nutze den PORTB.
es kommt mir vor, als würde sofort nach dem Einschalten ein IRQ
auftreten, und auch danach in sehr kurzen abständen (10ms?).
Ich habe eine LED angehängt und die scheint zeitweise zu flackern (für
ein paar Sekunden) dann leuchtet sie wieder durchgehend (auch wieder
ein paar Sekunden).
der Code ist folgender:
#include <avr/io.h>
#include <avr/interrupt.h> // sei()
#include <avr/signal.h> // SIGNAL
#define XTAL 1000000
int ab = 0x00;
int main(void) {
// configure all PortB bits as output
DDRB = 0xff;
PORTB = 0x00;
//configure the external interrupt
GICR |= (1<<INT0);
MCUCR |= (1<<ISC00) | (1<<ISC01);
// enable interrupts
sei();
while(1);
return 0;
}
SIGNAL (SIG_INTERRUPT0) {
if (ab == 0x00)
{
PORTB = 0xff;
ab = 0xff;
}
else
{
PORTB = 0x00;
ab = 0x00;
}
}
Nun zur eigentlichen Frage: warum ist das so? Ein IRQ sollte doch erst
bei Überschreiten eines gewissen Pegels auftreten .. oder? - Mein
Multimeter zeigt eigentlich schöne 0,00V (Low) und 4,3V (High) an.
Das Ganze hängt an einem FT245 - kann hier das Problem liegen?
Ich nutze den PORTB.
es kommt mir vor, als würde sofort nach dem Einschalten ein IRQ
auftreten, und auch danach in sehr kurzen abständen (10ms?).
Ich habe eine LED angehängt und die scheint zeitweise zu flackern (für
ein paar Sekunden) dann leuchtet sie wieder durchgehend (auch wieder
ein paar Sekunden).
der Code ist folgender:
#include <avr/io.h>
#include <avr/interrupt.h> // sei()
#include <avr/signal.h> // SIGNAL
#define XTAL 1000000
int ab = 0x00;
int main(void) {
// configure all PortB bits as output
DDRB = 0xff;
PORTB = 0x00;
//configure the external interrupt
GICR |= (1<<INT0);
MCUCR |= (1<<ISC00) | (1<<ISC01);
// enable interrupts
sei();
while(1);
return 0;
}
SIGNAL (SIG_INTERRUPT0) {
if (ab == 0x00)
{
PORTB = 0xff;
ab = 0xff;
}
else
{
PORTB = 0x00;
ab = 0x00;
}
}
Nun zur eigentlichen Frage: warum ist das so? Ein IRQ sollte doch erst
bei Überschreiten eines gewissen Pegels auftreten .. oder? - Mein
Multimeter zeigt eigentlich schöne 0,00V (Low) und 4,3V (High) an.
Das Ganze hängt an einem FT245 - kann hier das Problem liegen?