Komisches Verhalten und Frage zu Interrupts

OP Persönliche Seite #2608064
Lesenswert?

Hallo,

ich programmiere derzeit einen mega8 mit avrdude. Dabei hatte/habe ich 
folgende Probleme:
(1)
Einmal kam es zum folgenden Phänomen:

1. Überspielen des Programms auf den AVR
2. AVR startete das Programm immer wieder nach ca. 0,5 Sekunden von 
vorne, auch wenn der PC nicht verbunden war. Des Weiteren schaltete der 
AVR ein an PD3 (INT1) angeschlossenes Relais immer wieder ein und aus.
3. Nochmaliges Überspielen des gleichen Programms
4. selber Fehler
5. Kappen der Versorgungsspannung des AVR
6. Wieder herstellen der Versorgungsspannung
7. Programm läuft ohne Probleme

--> Zum Programm: Das habe ich nicht mehr im Original, aber ich bin 
SICHER, dass es da keine Fehler gab. Sonst hätte das Programm ja auch 
nach Wiederherstellung der Versorgungsspannung nicht funktioniert.

(2)

Weder PD2 (INT0) noch PD3 (INT1) kann ich als Eingang / Ausgang 
ansteuern. Ich will die Pins einfach ganz normal, ohne Interruptfunktion 
ansprechen. Muss man da irgendein Register setzen, damit sie als normale 
Pins funktionieren?

(3)

Ich verwende die UART Bibliothek von Peter Fleury. In dieser steht:
1
#define UART0_TRANSMIT_INTERRUPT  SIG_USART0_DATA
2
#define UART0_RECEIVE_INTERRUPT   SIG_USART0_RECV
3
SIGNAL(UART0_TRANSMIT_INTERRUPT)
4
{...}
5
SIGNAL(UART0_RECEIVE_ITERRUPT)
6
{...}

Ich wollte das mal zu ISR ändern, doch was steht dann in den Klammern? 
Dazu gibt es ja die folgende Anleitung:
>SIGNAL durch ISR ersetzen
>Name des Interrupt-Vektors anpassen (SIG_* durch entsprechendes *_vect)
>Im Datenblatt wird der Vektor mit TIMER2 COMP bezeichnet. Die Bezeichnung in der 
avr-libc entspricht dem Namen im Datenblatt, Leerzeichen werden durch Unterstriche 
(_) ersetzt und ein _vect angehängt

Im Datenblatt steht:

USART, RXC | USART, Rx Complete
USART, TXC | USART, Tx Complete

Also müsste das dann ISR(USART,_RXC_vect) heißen?

Danke, cmf

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