STK500 TWI Interrupt Problem

Gast #2224161
Lesenswert?
• ▲
▼
Hi all,
Ich versuche gerade das TWI Master Beispeil(AVR315) von Atmel auf dem 
STK500 zum laufen zu kriegen. Das Beispiel ist direkt für das STK500 
programmiert und sollte doch direkt laufen? Das Problem ist nun das die 
Interrupt routine einfach immerwieder aufgerufen wird. Der mega 
"interrupted" sich quasi zu Tode bis er neustartet. Gab es das Problem 
schonmal?
Gast #2224691
Lesenswert?
• ▲
▼
Mahlzeit,

was hat das STK500 mit dem TWI zu tun? Dieses stellt bestenfalls die TWI 
Pins auf seinen Headern zur weiteren Verwendung bereit. Beschreibe mal 
deinen HW Aufbau, sprich wie sind Master und Slave miteinander 
verbunden.

MfG
Gast #2224849
Lesenswert?
• ▲
▼
So habe jetzt mal mein eigenes Programm geschrieben, habe jedoch das 
selbe Problem schon wieder. Nachdem TWIE und TWEN logisch 1 sind wird 
TWI_vect ohne Ende aufgerufen.
1
#include <avr/interrupt.h>
2
#include <avr/io.h>
3

4
ISR(TWI_vect){
5
  PORTD = !PORTD;
6
}
7
  
8
int main(void)
9
{
10
   DDRD |= (1<<PD3);
11
   TWBR = 0xA; 
12
   TWDR = 0xFF; 
13
   TWCR |= (1<<TWEN) | (1<<TWIE); 
14
   sei();
15
}
Gast #2224910
Lesenswert?
• ▲
▼
Lesen des DBs würde erstaunlich viel helfen:

> The TWINT Flag must be cleared by software by writing a logic one to it.
> Note that this flag is not automatically cleared by hardware when
> executing the interrupt routine.

Und:

> TWIE: TWI Interrupt Enable
> When this bit is written to one, and the I-bit in SREG is set, the TWI
> interrupt request will be activated for as long as the TWINT Flag is high.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.