www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik spi schnitstelle


Autor: Jochen Kühner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie muss ich den avr konfigurieren das auf der spi schnitstelle ein takt
rauskommt. mein am avr angelegtes quarz schwingt, aber auf spi kommt
kein takt!

Autor: Dirk B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Takt kommt auch nur, wenn gesendet wird..

Autor: Jochen Kühner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe aber das beispielprogramm von apetech zur ansteuerung eines 6100
displays drauf, aber es kommt kein takt!

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welcher Prozessor, welches Programm?? ächz.
Kann sein, dass hier einer "das beispielprogramm von apetech zur
ansteuerung eines 6100" zur Hand hat - ich werde mich dafür nicht
durchs Netz wühlen, und die meisten anderen auch nicht.

Autor: Axel Stab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei manchen uCs muss man den select pin (SS), der eigentlich für den
Slavebetrieb relevant ist, zwangsweise als eingang konfigurieren und
per pullup auf high ziehen. ansonsten wird zur laufzeit auf slavemode
umgeschaltet und nix geht mehr.

Autor: Jochen Kühner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab einen mega8... das würde nicht viel bringen wen ich das prg poste,
da dieses mit einer eigenen library von ihm funzt! meine nur das das
programm gehen müsste da es ja schon mehrere leute getestet haben.
wollt nur wissen welche einstellungen ich alle an meinem µC vornehemen
muss...

Autor: Dirk B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So initialisier ich die SPI. Ist zwar für Atmega 128, dürfte aber auch
beim Atmega 8 funktionieren...

    /* set port b.0 as output (chip select */
    DDRB |= _BV(PB0);
    /* MOSI and SCLK as output */
    DDRB |= _BV(PB1);
    DDRB |= BV(PB2);
    DDRB &= ~ _BV(PB3);

    /* set bitrate fclk/16 */
    SPCR |= (INT8U)_BV(SPR0);
    SPCR &= (INT8U)~ _BV(SPR1);

    /* MSB first / clock polatity = 0 / clock phase = 0 / interrupts
disabled */
    SPCR &= (INT8U)~ (_BV(DORD) | _BV(CPOL) | _BV(CPHA) | _BV(SPIE));

    /* set mastermode */
    SPCR |= (INT8U)_BV(MSTR);

    /* enable spi */
    SPCR |= (INT8U)_BV(SPE);

    /* write data to spi data register */
    SPDR = data;
    /* wait until serial transfer is complete */
    while (!(SPSR & _BV(SPIF)));

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.