mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny 2313 - Problem mit USIPF


Autor: Protonmw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

ich habe einen Attiny 2313 als Schnittstelle zwischen PC und einem I2C 
Bus. Eine LED soll dabei eine Datenübertragung anzeigen. Die geht auch 
an - aber nie wieder aus. Woran könnte das liegen? Hier mal der Code:

//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////


#include <avr/io.h>
#include <avr/interrupt.h>



//////////////////////////////////////////////////////////////////
// MAIN //////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////

int main(){

  // Initialisierung ///////////////////////////////////////////

  cli();      // Interrupts für Initialisierung AUS

  // Ausgänge setzen
  DDRA  = 0b00000011;  // PortA0 und PortA1 Ausgang
  DDRB  = 0b01000000;  // LED(PB6) Ausgang
  DDRD  = 0b00000000;  // PortD alle Eingang
  PORTA = 0b00000000;  //
  PORTB = 0b01000000;  // LED HIGH(aus)
  PORTD = 0b00000000;     //

  USICR = 0b10100000; // Bit7 Start Condition InterruptEnable
          // Bit5 Two-wire mode ohne Overflow

  sei();        // Interrupts AN

  // Initialisierung beendet ///////////////////////////////////

  // Hauptschleife /////////////////////////////////////////////

  while(1){
    PORTA = PIND;
    if(USISR & (1<<USIPF)){
      PORTB |= 0b01000000; // LED aus
      USISR |= 0b00100000; // Stop flag reset
    }
  }
  return 0;
}


//////////////////////////////////////////////////////////////////
// INTERRUPT-Routinen ////////////////////////////////////////////
//////////////////////////////////////////////////////////////////


ISR(USI_START_vect){

  PORTB &=0b10111111;  // LED an

}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.