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


von Protonmw (Gast)


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

}

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.