Forum: Mikrocontroller und Digitale Elektronik Attiny 841 mit SPI ein Display ansteuern


von Henry (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
Mit einem Attiny 841 möchte ich ein Display DOG M163 mit SPI (5V) 
betreiben. Mit SPI habe ich bisher nicht gearbeitet und bin dabei 
totaler Neuling.
Dabei verwende ich die folgenden Pins:

Attiny 841  Name      Display
// PA4 -->  SCK/SCK   --> DOG 29
// PA6 -->  Mosi      --> DOG 28
// PB1 -->  CSB       --> DOG 38
// PB2 -->  RS        --> DOG 39

In einigen anderen Treets habe ich bereits einiges zum Attiny 841 
geschrieben, allerdings mit dem I2C Bus. Im Netz habe ich einiges an 
Erklärung zu SPI gefunden. Leider etwas zu allgemein für mich.
Kennt jemand eine gute Seite für mehr Info? Oder einiges an Beispielen 
zum Thema?

Beitrag #7101886 wurde von einem Moderator gelöscht.
von Henry (Gast)


Lesenswert?

DerEinzigeBernd schrieb im Beitrag #7101886:
> Das ist ein ST7036, dessen Datenblatt davon solltest Du Dir
> ansehen.

Die Seite habe ich mir angesehen. Du sprichst von 4 Möglichen SPI 
Verfahren.
Da brauche ich wohl mehr Grundlagen um das zu verstehen.

von c-hater (Gast)


Lesenswert?

Henry schrieb:

> Da brauche ich wohl mehr Grundlagen um das zu verstehen.

Ja, leider. Atmel hat ist beim Thema SPI auf halber Strecke liegen 
geblieben. Zum einen haben sie zwar ziemlich schicke Timing-Diagramme 
geliefert, aber nur zwei, in denen jeweils zwei Modi zusammengefaßt 
dargestellt werden. Und zum anderen haben sie nirgendwo übersichtlich 
aufgelistet, welche Kombination aus CPOL und CPHA nun welchem SPI-Mode 
entspricht.

Also irgendwie nix halbes und nix ganzes. Dem Einsteiger hilft es fast 
garnicht, die Diagramme verwirren ihn eher und der Profi bräuchte das 
ganze Gesülze nicht, sondern eigentlich nur die kleine Tabelle, die auf 
einen Blick die nötige Information liefern würde. Die Diagramme wären 
dann nur noch als Absicherung der Information aus der Tabelle nützlich.

Allerdings ist anderen dieser Mißstand schon vor Jahrzehnten 
aufgefallen, und deswegen gibt es im Netz durchaus viele Quellen, die 
die kleine Tabelle liefern, die eigentlich Atmel hätte liefern müssen.

Beitrag #7102099 wurde von einem Moderator gelöscht.
von c-hater (Gast)


Lesenswert?

DerEinzigeBernd schrieb im Beitrag #7102099:

> Meinst Du, daß das hilft?

Vielleicht hilft es dem TO dabei, auch mal auf die Idee zu kommen, 
selbst zu googeln. Damit wäre bei ihm schon viel erreicht.

von Achim H. (pluto25)


Lesenswert?

Henry schrieb:
> Da brauche ich wohl mehr Grundlagen um das zu verstehen.
Oder einfach ausprobieren. Da hier entweder keiner das Display kennt, 
oder nicht bereit ist Dir zu helfen ist das vermutlich das schnellste. 
Stundenlang im Netz suchen und dabei nicht entscheiden können ob dort 
blödsinn empfohlen wird kann recht frustrierend sein. Da sind zwei 
Fehlbrände schneller erledigt.
PS Nicht vergessen die Stromversorgung dazwischen ab zu schalten. Hat 
ein Fehlbrand es ins Nirwana geschickt kann es sein das der Richtige es 
nicht wiederbelebt. (Die 16x2LCD lassen sich so abschießen das nur ein 
Kaltstart hilft ;-)

Beitrag #7102172 wurde von einem Moderator gelöscht.
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die Kernroutine zum DOGM LCD ist so simpel, das sich die Verwendung der 
SPI Hardware so gut wie nicht lohnt:
1
// LCD connections
2
#define LCD_PORT PORTB
3
#define LCD_DIR  DDRB
4
#define LCDDATA 1
5
#define LCDCLK 2
6
#define LCDA0 3
7
#define LCDCS 0
8
#define LCD_MASK ((1<<LCDDATA)|(1<<LCDCLK)|(1<<LCDA0)|(1<<LCDCS))
9
10
// LCD routines by bit banging SPI
11
void lcd_out(const uint8_t data) {
12
uint8_t n = 8;
13
uint8_t shifter = data;
14
 LCD_PORT &= ~(1<<LCDCS);    // select LCD
15
    while (n>0) {
16
    LCD_PORT &= ~(1<<LCDCLK);  // clk lo
17
      if (shifter & 0x80) LCD_PORT |= (1<<LCDDATA);
18
     else LCD_PORT &= ~(1<<LCDDATA);
19
    shifter <<= 1;
20
      LCD_PORT |= (1<<LCDCLK);  // clk high
21
    n--;
22
    }
23
 LCD_PORT |= (1<<LCDCS);    // deselect LCD
24
}
Wie man Portpins initialisiert, ist ja sicher bekannt.

Beitrag #7102177 wurde von einem Moderator gelöscht.
von Henry (Gast)


Lesenswert?

c-hater schrieb:
> Vielleicht hilft es dem TO dabei, auch mal auf die Idee zu kommen,
> selbst zu googeln. Damit wäre bei ihm schon viel erreicht.

Leider wusste ich bis dieser Info nicht einmal das so was exestiert.
Werde dann mal auf Jagd nach der Tabelle gehen.

c-hater schrieb:
> Allerdings ist anderen dieser Mißstand schon vor Jahrzehnten
> aufgefallen, und deswegen gibt es im Netz durchaus viele Quellen, die
> die kleine Tabelle liefern, die eigentlich Atmel hätte liefern müssen.

Das ganze verwundert mich sehr.Kann mir noch jemand sagen wie die 
Tabelle heisst? Oder mehr Info dazu.

Matthias S. schrieb:
> // LCD connections
> #define LCD_PORT PORTB
> #define LCD_DIR  DDRB
> #define LCDDATA 1
> #define LCDCLK 2
> #define LCDA0 3
> #define LCDCS 0
> #define LCD_MASK ((1<<LCDDATA)|(1<<LCDCLK)|(1<<LCDA0)|(1<<LCDCS))
> // LCD routines by bit banging SPI
> void lcd_out(const uint8_t data) {
> uint8_t n = 8;
> uint8_t shifter = data;
>  LCD_PORT &= ~(1<<LCDCS);    // select LCD
>     while (n>0) {
>     LCD_PORT &= ~(1<<LCDCLK);  // clk lo
>       if (shifter & 0x80) LCD_PORT |= (1<<LCDDATA);
>      else LCD_PORT &= ~(1<<LCDDATA);
>     shifter <<= 1;
>       LCD_PORT |= (1<<LCDCLK);  // clk high
>     n--;
>     }
>  LCD_PORT |= (1<<LCDCS);    // deselect LCD
> }

Das ist schom mal ein Anfang.

Matthias S. schrieb:
> Die Kernroutine zum DOGM LCD ist so simpel, das sich die Verwendung der
> SPI Hardware so gut wie nicht lohnt:

Mit dieser Sache bringst du mich schön ins Schwitzen. Wenn die Sache so 
einfach ist, wozu dann soviel Aufwand.
Werde den Code genau ansehen. Selber habe ich sogut wie Code bisher. 
Vielleicht bis auf Titel und Angabe Frequenz. Da fehlst noch einiges an 
Grundlagen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Henry schrieb:
> Mit dieser Sache bringst du mich schön ins Schwitzen. Wenn die Sache so
> einfach ist, wozu dann soviel Aufwand.

Ich frag mich beim SPI Interface, also die Hardware im AVR, oft, wo sie 
mir Arbeit spart. Die o.a. Routine kann ich simpel an andere Pins 
anpassen und sie läuft auf jedem AVR, ob mit oder ohne SPI Hardware.
Nur eine Sache noch: Für Befehle muss man evtl. noch vor dem Ansprung 
dieser Routine einen Pin hochziehen (RS bzw. A0) und ihn danach wieder 
runtersetzen.
Läuft jedenfalls ohne Änderung mit DOGM163, DOGM128 und anderen.
Die Befehle selber sind je nach LCD Controller unterschiedlich, aber die 
Ausgaberoutine ist immer die gleiche.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

DerEinzigeBernd schrieb im Beitrag #7102172:

> 
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8495-8-bit-AVR-Microcontrollers-ATtiny441-ATtiny841_Datasheet.pdf
>
> Blickt man ins Datenblatt des Tiny841, erkennt man

...dass der Poster dieses Schwachsinns ganz erheblich gehirnamputiert 
ist. Auch im von ihm selber verlinkten Datenblatt gibt es nur die ZWEI 
Atmel-üblichen Diagramme, hier unter den Bezeichnern "Figure17-3" und 
"Figure17-4".

Das die in Wirklichkeit jeweils zwei Modi darstellen, hatte ich 
natürlich auch gesagt, Zitat:

> aber nur zwei, in denen jeweils zwei Modi zusammengefaßt
> dargestellt werden.

Beitrag #7102303 wurde von einem Moderator gelöscht.
von c-hater (Gast)


Lesenswert?

Matthias S. schrieb:

> Ich frag mich beim SPI Interface, also die Hardware im AVR, oft, wo sie
> mir Arbeit spart.

Speziell bezogen auf Displays: Immer dann, wenn man keine Diashow will, 
sondern möglichst flüssige/unmerkliche Bildwechsel. Gleichzeitig aber 
noch was anderes in "Echzeit" wahrnehmen will/muss.

So zum Einarbeiten in die Problematik folgendes Hobbyprojekt: 
implementiere einen Oszi.

Wir brauchen nicht darüber zu diskutieren, dass das (selbst bei 
optimaler Implementierung) ein recht unbrauchbares Gerät sein würde, 
nicht zu vergleichen mit einem wirklichen Oszi, selbst einem sehr 
billigen. Aber es wird dir zeigen, warum es sinnvoll ist, vorhandene 
Hardware zur Beschleunigung zu verwenden, statt in stumpfdoofer 
Arduino-Manier zu erwarten, dass es an jedem Pin gleich gut funktioniert 
und die unsäglichen Software-Ersatzlösungen auch nur annähernd brauchbar 
wären.

von c-hater (Gast)


Lesenswert?

DerEinzigeBernd schrieb im Beitrag #7102303:

> Der Hassprediger kann offensichtlich nicht lesen.
>
> DerEinzigeBernd schrieb im Beitrag #7102177:
>> Oh, ich muss mich korrigieren. Die von mir vorgefundenen Diagramme
>> beschreiben die SPI-Betriebsarten der USART.

Das hast du nachweislich mehr als eine Stunde nach meinem ursprünglichen 
Posting geschrieben, wie jeder leicht nachvollziehen kann, das war 
nämlich:

19.06.2022 14:13
Beitrag "Re: Attiny 841 mit SPI ein Display ansteuern"

Das Posting, in dem du deinen dämlichen Kommentar quasi zurückziehst 
war:

19.06.2022 15:27
Beitrag "Attiny 841 mit SPI ein Display ansteuern"

Also bist du nicht nur dumm, sondern ein bewusster Störer. Du hättest 
zwar gerne darauf hinweisen können, dass es bessere Diagramme in DB 
gibt, aber du kannst niemanden anblaffen, wenn der sagt, dass es sie 
nicht dort gibt, wo sie primär hingehören.

Die nette (fehlende) Tabelle gibt's aber übrigens auch dort nicht...

von Henry (Gast)


Angehängte Dateien:

Lesenswert?

Habe im Netz diese Tabelle gefunden. Meint ihr das?
Nach den ersten Erklärungen im Netz, arbeiten die meisten mit der Nr3.
Vorteile oder Nachteile, wieso gerade diese?
Fragen über Fragen, ich weiss.
Dann gibt es einige Begriffe die ich nicht so zuordnen kann oder nennen 
die sich einfach nur anders?

SS  CS  RS   ???
Mosi / Miso    ???

von c-hater (Gast)


Lesenswert?

Henry schrieb:
> Habe im Netz diese Tabelle gefunden. Meint ihr das?

Genau das.

> Nach den ersten Erklärungen im Netz, arbeiten die meisten mit der Nr3.

Kommt natürlich darauf an, was der Peer macht. Was ein Wunder...

Beitrag #7102358 wurde von einem Moderator gelöscht.
von Henry (Gast)


Lesenswert?

Bitte bleibt beide höflich. Euer Streit löst mein Problem nicht. 
Ansonsten können wir ja mal den Vorschlag machen eine neu Rubrik 
aufzumachen. Dachte dabei an so was wie "Ring". Dort kann man sich dann 
ausgiebig belegen.
Bitte bleibt freundlich.

von Heiner (Gast)


Lesenswert?

@Henry

Nachdem Du absolut keine Ahnung vom SPI hast, würde ich Dir empfehlen, 
erst mal mit dem MCP23S17 und dem Attiny 841 zu üben - Schalter einlesen 
und LEDs ansteuern.

Und erst wenn Du die SPI Kommunikation beherrschst, solltest Du Dich dem 
Display widmen.

Es gibt zudem auch Dokumente von Atmel mit Informationen über die SPI 
Kommunikation

von Henry (Gast)


Lesenswert?

Heiner schrieb:
> Es gibt zudem auch Dokumente von Atmel mit Informationen über die SPI
> Kommunikation

Leider habe ich diese Infos nicht gefunden. Haben jetzt wahrscheinlich 
alle einen neuen Namen bekommen.

Heiner schrieb:
> würde ich Dir empfehlen,
> erst mal mit dem MCP23S17 und dem Attiny 841 zu üben

Das ist eine gute Idee. Diesen IC als SPI habe ich nicht zu liegen.
Noch eine Frage dazu. Der Attiny841 verwendet ja die Pins PA4 und PA6 
als Ausgang für I2C und SPI. Das bedeutet, es kann nur I2C oder SPI 
verwendet werden. Beides gleichzeitig geht nicht. Korrekt?

von DerEgon (Gast)


Lesenswert?

Henry schrieb:
> Der Attiny841 verwendet ja die Pins PA4 und PA6
> als Ausgang für I2C und SPI. Das bedeutet, es kann nur I2C oder SPI
> verwendet werden. Beides gleichzeitig geht nicht. Korrekt?

Nein; die USARTs können ebenfalls für SPI-Betrieb verwendet werden. Und 
die nutzen andere Pins als die reine SPI-Hardware.
Die Pinbeschreibung im Datenblatt ist da leider sehr unübersichtlich, Du 
bist mit PA4/PA6 für SPI auch drauf reingefallen.

(Alle Pinnummern für 14p Gehäuse)

Die "reine SPI-Hardware" nutzt
MISO (Pin 13 PA0)
MOSI (Pin 12 PA1)
SS (Pin 11 PA2)
SCK (Pin 10 PA3)

Die beiden USARTs nutzen im SPI-Mode ihre jeweiligen Pins so:
TxD0 - MOSI (Pin 12 oder Pin 6 PA7)
RxD0 - MISO (Pin 11 oder Pin 5 PB2)
XCK0 - SCK (Pin 10 PA3)

TxD1 - MOSI (Pin 8 PA5)
RxD1 - MISO (Pin 9 PA4)
XCK1 - SCK (Pin 7 PA6)

Das Slave-Select-Signal gibt es bei den USARTs nicht, wenn Du das 
brauchst, musst Du das von Hand mit irgendeinem Portpin nachliefern.

Die I2C-Schnittstelle nutzt

SCL (Pin 9 PA4)
SDA (Pin 7 PA6)

Damit kannst Du SPI und I2C gleichzeitig verwenden, bei SPI kannst Du 
sogar zwischen USART0 und der SPI-Hardware wählen.

von DerEgon (Gast)


Lesenswert?

Ach ja, sieh Dir im Datenblatt genau die "Alternate Port Functions" ab 
Seite 63 an, da steht exakt, welcher Port welche andere Funktion haben 
kann.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Henry schrieb:
> Habe im Netz diese Tabelle gefunden. Meint ihr das?
SCL ist ein Signal vom I²C. Beim SPI heißt dieses Signal entweder SCK 
oder SCLK. Insoern ist die Quelle verbesserungsdüfrtig...

Ich nehme immer das Bild dort:
http://www.lothar-miller.de/s9y/categories/17-SPI

Denn sogar Atmel verwendet die Polarität für CPOL und CPHA die 
Motorola-Definitionen. Ein CPHA=CPOL=1 ergibt also SPI-Mode 3.

CPOL = 0 bedeutet, dass der Ruhepegel 0=low ist (also der Pegel, die der 
SCLK haben muss, wenn SS# auf low geht). Bei CPOL=1 ist der Ruhepegel 
also high.

Und CPHA habe ich mir so gemerkt: die Daten werden mit CPHA=0 an den 
Odd-Flanken (odd = ungerade, also 1,3,5,7,9...) übernommen. Mit CPHA 
demzufolge an den anderen (geraden) Taktflanken.

Mit diesen 2 Eselsbrücken kann ich mir in kurzer Zeit den SPI 
herknobeln.

Und der Mode ergibt sich dann als Binärwert [CPOL:CPHA].

: Bearbeitet durch Moderator
von Purzel H. (hacky)


Lesenswert?

Nach gefuehlt zuvielen Fehlschlaegen laesst man die vorgegebenen SPI 
Modi des Controllers sein und schaut sich das geforderte Timing im 
Datenblatt des Displays an. Dann bildet man das mit den einzelnen Pins 
nach.

von Henry (Gast)


Lesenswert?

Im Moment komme ich mit den verschiednen Versionen ganz schön 
durcheinander.
DerEgon schrieb:
> Die "reine SPI-Hardware" nutzt
> MISO (Pin 13 PA0)
> MOSI (Pin 12 PA1)
> SS (Pin 11 PA2)
> SCK (Pin 10 PA3)
Auf der genannten Seite steht hinter jedem Pin (PA0-PA3) den du genannt 
hast noch "alternative". Bei den anderen steht "default". Bei einigen 
Hardware Zeichnungen im Netz wird PA4-PA7 verwendet.
Welche Version sollte man den jetzt nehmen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Purzel H. schrieb:
> Nach gefuehlt zuvielen Fehlschlaegen laesst man die vorgegebenen SPI
> Modi des Controllers sein ...
> Dann bildet man das mit den einzelnen Pins nach.
Echt jetzt? Bitbanging? So bekommt man jeden MHz-Boliden langsam...

> Nach gefuehlt zuvielen Fehlschlaegen laesst man die vorgegebenen SPI
> Modi des Controllers sein und schaut sich das geforderte Timing im
> Datenblatt des Displays an.
Man schaut einfach mit dem Oszi, ob das Timing, das der Controller 
generiert, zu dem Timing passt, das der Slave im Datenblatt verlangt. 
Und wenn das passt (sind ja vom Master zum Slave nur 3 Signale), dann 
läuft der SPI.

von DerEgon (Gast)


Lesenswert?

Henry schrieb:
> Auf der genannten Seite steht hinter jedem Pin (PA0-PA3) den du genannt
> hast noch "alternative". Bei den anderen steht "default".

Datenblatt, Seite 159, Abschnitt 17.5.4 Register REMAP

von Henry (Gast)


Lesenswert?

Danke für die gute Antwort. Damit ist das Pin Mapping klar.

von Henry (Gast)


Lesenswert?

Morgen
Es gibt ja vom gleichen Hersteller den MCP23 S 17 und den MCP 23017. 
Einer ist für SPI und der andere für I2C Bus. Wenn ich die Pins 
vergleiche gibt es viele übereinstimmungen. Das bezieht sich ja auch auf 
die Register. Sehe ich das richtig?
Bei der Auswahl der Pins wurde angegeben

Belegung nach Register Auswahl und Anschluss am MCP
PA 4 - SCK - Pin 12 SCK
PA 5 - Miso -Pin 14 Miso
PA 6 - Mosi - Pin 13 Mosi
PA 7 - SS - CS ? - RS ? - Chip Selekt ? - ist das das gleiche?

Was ist Miso und Mosi?
Dann gibt es noch A0, A1 und A2. Werden damit die Adressen eingestellt, 
ähnlich wie beim I2C Bus? Sollte die "Chip Auswahl" nicht mit SS (CS 
oder Rs) erfolgen?

von Egonwalter M. (heiner1234)


Lesenswert?

Hallo Henry

MISO ==> MasterInSlaveOut   (= Signal vom Slave an den Master)
MOSI ==> MasterOutSlaveIn   (= Signal vom Master an den Slave)
SCK Clocksignal (fuer die Daten)
CS = Chip Select (wenn mehrere MCP am SPI hängen wird per CS ausgewählt, 
wer die Daten empfangen/liefern soll).

A0 .. A2 = Adresseinstellung MCP - damit kann man bis zu 8 MCP23S17 mit 
nur einem CS haben.

Die Register sind die gleichen (haste ja schon richtig erkannt).

von Henry (Gast)


Lesenswert?

Egonwalter M. schrieb:
> MISO ==> MasterInSlaveOut   (= Signal vom Slave an den Master)
> MOSI ==> MasterOutSlaveIn   (= Signal vom Master an den Slave)

Die Unsicherheit mit den Namen kommt von den Bezeichnungen am Prozessor 
und am IC:
MOSI - SI
MISO - SO
SCLK - SCK
CEO - CS (SS)

Der Nebel hebt sich. Danke

von Henry (Gast)


Lesenswert?

Sorry, noch was vergessen.
Ist zum Betrieb mit einem Prozessor ein Quarz notwendig, so 16MHz oder 
reicht der interne Oszi? (zu ungenau)?

von DerEinzigeBernd (Gast)


Lesenswert?

Ist bei SPI egal, da liefert der µC den Takt. Das ist nur bei der UART 
als asnynchrone serieller Schnittstelle (z.B. für die Kommunikation it 
einem PC) wichtig, denn da wird kein Takt mitgelifert.

von Achim H. (pluto25)


Lesenswert?

Braucht er nicht. Es wird nur entsprechend langsamer, funktioniert aber 
bis runter zu "Kippschalter" ;-)
Der Clock bestimmt die Bitübernahme, da ist es egal ob der nächste in 
1µs oder 10 Sekunden kommt.
Da es sowieso nur wenig Daten sind wird selbst mit Bit-Banging das ganze 
selbst bei 1Mhz schneller sein als man lesen kann.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

A. H. schrieb:
> Da es sowieso nur wenig Daten sind wird selbst mit Bit-Banging das ganze
> selbst bei 1Mhz schneller sein als man lesen kann.

Die DOGM LCD sind mit bis zu 20MHz ansprechbar.

von Achim H. (pluto25)


Lesenswert?

Das wären 50nS und schneller als jedes Insekt (500 Bilder pro Sekunde?) 
lesen kann. :-)
Igendwann kommen die Kristalle auch nicht mehr nach. So ab 20? Zeichen 
pro Sekunde wird es zum "Buchstabenbrei"
Schön das es es kann. Aber ausnutzen braucht man es nicht, vielleicht 
schnell raushauen damit die Cpu Zeit für wichtigeres hat. Aber wenn sie 
so in Stress gerät wäre es wieder Zeit über SPI oder Paralell nach zu 
denken.

von Egonwalter M. (heiner1234)


Lesenswert?

Henry schrieb:
> Sorry, noch was vergessen.
> Ist zum Betrieb mit einem Prozessor ein Quarz notwendig, so 16MHz oder
> reicht der interne Oszi? (zu ungenau)?

Wenn Du NUR den MCP23S17 am Controller betreiben willst, würde ich 
sagen, dass der interne Oszi reicht (Du wirst ja eh' nur 1 Byte/Zyklus 
übertragen werden - 1 Byte LEDs - Ausgabe, 1 Byte Schalter - Eingabe).

Willst Du aber mehr Peripherie anschließen (Display + I2C Geräte + 
nutzen des USART zum Datenausgeben per PC - Stichwort "debuggen"), dann 
würde ich schon einen externen Quarz anschließen.

von DerEinzigeBernd (Gast)


Lesenswert?

A. H. schrieb:
> Das wären 50nS und schneller als jedes Insekt (500 Bilder pro Sekunde?)
> lesen kann. :-)

Wenn man Graphik ausgeben möchte, und kein reines Textdisplay à la 
HD44780 betreiben will, kann ein hoher Takt durchaus sinnvoll sein.

Allerdings, das Display des Threadstarters ist ein reines Textdisplay, 
mit maximal 48 Zeichen ...

Da kann dann ein hoher Takt den Sinn haben, daß man das komplette 
Display ohne große Warterei in einem Rutsch beschreiben kann und dann 
bis zur nächsten Komplettbeschreiberei viel Zeit zur Verfügung hat.

Ob man's wirklich braucht? Wohl eher nicht so.

von Henry (Gast)


Lesenswert?

Stimmt, ist ein Textdisplay. Soll auch nur Text anzeigen und vielleicht 
ein paar Sonderzeichen. HD44780 verwende ich auch, sowie verschiedene 
Graphikdisplays und TFTs.
Mir kommt es bei diesem Display und dem MCP 23S17 auf den SPI Bus an. Da 
ich ihn zum ersten mal verwende möchte ich verstehen wie man ihn nutzt.
Daher muss ich soviel fragen und hoffe auf eure Hilfe und Erklärung.

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.