mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI im Master-mode, pinkontrolle


Autor: Marcus_1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
void init_SPI (void)
{
        DDRB |= 0b00101111; //PB0(CS_DAC1), PB1(DAC2), PB2(CS_AD), PB3 (MOSI), PB5 (SCK) als Ausgang
        clear_bit(DDRB, 4); //PB4 (MISO) als Eingang
        
        PORTB = 0; // Alle Pullups aus
        PINB =0;
        //CS_AD auf high ziehen, funzt auch
        set_bit(PORTB, CS_AD);
        
        
        // SPI  aktivieren, auf Master schalten;
        set_bit (SPCR, MSTR);
        set_bit (SPCR, SPE);
        
        //SPI- clock select ist auf 0 -> Clock bei FCPU/4
 
        // Interrupt einschalten
        set_bit(SPCR, SPIE); //<------ab hier kann ich nichts mehr an PB2 ändern, der Pin bleibt High
 
} // Ende void init_SPI (void)
 
ISR (TIMER1_COMPA_vect) //ISR OCR-Compare match
{
        clear_bit (PORTB, CS_AD); // CSAD aktiv<---------- geht nicht, Pin bleibt high
        // 0x00 -> Channel 1 select
        SPDR = 0x00; //SPI anstoßen
        set_bit(status, HIBYTE);
        
        //--> Highbyte speichern und Lowbyte holen macht ISR-SPI
}
"
When the SPI is configured as a Master (MSTR in SPCR is set), the user 
can determine the
direction of the SS pin.
If SS is configured as an output, the pin is a general output pin which 
does not affect the SPI
system. Typically, the pin will be driving the SS pin of the SPI Slave.
"

Autor: Marcus_1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, verklickt, ich wollte noch mehr dazuschreiben, leider kann man es 
nicht bearbeiten...

Auch wenn ich set_bit(PORTB, CS_AD); rausnehme geht es nicht:
In dem Moment wo ich SPE im SPCR setze zieht er PB2 (CS_AD) hoch auf 
5Volt, völlig unbeeindruckt von allen weiteren Schreibversuchen, obwohl 
er als Ausgang gesetz ist.
Ich steuere damti den Chipselect eines AD-Wandlers an, was natürlich 
schlecht geht, wenn ich ihn nicht runterziehen kann...

Autor: Marcus_1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat sich erledigt, da war ein fehler in de Beschaltung...

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.