-
        

Ergebnis 1 bis 2 von 2

Thema: SPI stört Int0/Int1

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2006
    Beiträge
    5

    SPI stört Int0/Int1

    Anzeige

    Hallo zusammen,

    ich steuere über Hardware-SPI eines Atmega32 ein S65 Display an.
    Jedoch scheint die SPI-Ansteuerung den Int0 oder Int1 zustören.

    Hier ein einfaches Beispiel:

    Im Hauptprogramm wird ständig Daten an SPI gesendet:
    Code:
    int main(void) {
    	while(1)
    	{
    		SPDR = 0b11110000;
    	}
    }
    In ISR von Int0 wird über UART ein Zeichen gesendet:

    Code:
    SIGNAL (SIG_INTERRUPT0)
    {
    	uart_putc('1');
    }
    Int0 ist so eingestellt, dass bei steigender Flanke ein Interrupt ausgelöst wird.

    Ich löse einen Interrupt aus in dem ich Int0-Eingang auf High mache, es kommt das Zeichen "1" an. Bis hier ist alles soweit richtig. Wenn ich den Int0-Eingang wieder auf low mache. Empfange ich über den UART zwei oder "1" Zeichen. Obwohl das gar nicht sein darf, dann nur bei steigender Flanke soll ein Interrupt stattfinden.
    Tue ich aber im Hauptprogramm die Senderei von SPI entfernen:

    Code:
    SPDR = 0b11110000;
    Dann funktioniert alles einwandfrei. Heißt: Wenn In0-Eingang auf High ist, wird nur einmal das Zeichen "1" gesendet und beim Low machen passiert nichts.

    Bin ratlos warum das so ist.

    Bitte um Hilfe.

    Vielen Dank!

    MFG

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Erste Vermutung: Schalter entprellt?
    Zweite Vermutung: liegen die kabeln weit genug auseinander?, eventuell schon mal mit Alufolie geschirmt?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •