Komisches Verhalten und Frage zu Interrupts

OP Persönliche Seite #2608064
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.