Forum: Mikrocontroller und Digitale Elektronik Probleme mit Bootloader und Interrupt


von Andreas K. (andyk)


Lesenswert?

Hallo,

ich habe ein sehr seltsames Problem mit dem 1-wire Bootloader Fastboot 
von Peter Dannegger und einem external Interrupt auf dem Attiny84.
Zum Aufbau:
An PA1 hängt der 1-wire Bootloader. Funktioniert soweit auch 
einwandfrei.
An PA7 habe ich einen Taster gegen VCC angeschlossen, PA7 mit 22k nach 
GND gezogen.
Bei dem 1-wire Programmierkabel handelt es sich um diese Konstruktion: 
Beitrag "Re: UART Bootloader ATtiny13 - ATmega644"

Jetzt versuche ich mit folgendem Initialisierungscode den Interrupt zu 
enablen:

init()
{
MCUCR = ( (1<<ISC00) | (1<<ISC01) ); // the rising edge of INT0 
generates an interrupt request
PCMSK0 = (1<<PCINT7); // Any pin change at int7 generates an interrupt
GIMSK = (1<<INT0) | (1<<PCIE0);    // enable Int0 and int7 interrupt
sei();   // enable interrupts
}

Meine main besteht im Moment noch aus dem Aufruf der init-funktion und 
einer leeren For-Schleife.
In der ISR lasse ich im Moment noch eine LED blinken, damit ich direkt 
sehe wann die Funktion aufgerufen wird. Wird natürlich später nicht so 
sein!

ISR(PCINT0_vect)
{
cli();
uint8_t i = 0;
for(i=0;i<6;i++)
{
LEDport ^= (1<<LEDpin); // LED auf PA6
_delay_ms(100);
}
sei();
}

Das Problem ist nun: So lange das 1-wire Programmierkabel angesteckt 
ist, wird der Interrupt nicht angesprungen. Ziehe ich es ab, 
funktioniert alles wie gewünscht.
Was ist da los?

Danke
Andreas

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
Noch kein Account? Hier anmelden.