C Atmega8 mit SPI Olimex Mod-Led8x8

ibishello

Neues Mitglied
26. Dez. 2011
6
0
1
63
Sprachen
Hallo zusammen.

Wer hat schon ein Olimex Mod-Led8x8 über den SPI angesteuert.
Möchte Buchsztaben und Zahlen ausgeben.
Wenn ich aber den Charakter 65 mitgebe passiert nichts.
Was mache ich falsch.

Grüsse Ibishelo

Code:
#include <avr/io.h>
void InitSPI(void)
{
DDRB = (1<<PB4)|(1<<PB5) | (1<<PB7);     // Set MOSI , SCK , and SS output
SPCR = ( (1<<SPE)|(1<<MSTR) | (1<<SPR1) |(1<<SPR0));    // Enable SPI, Master, set clock rate fck/128  
}

void WriteByteSPI(unsigned char byte)
{
        
SPDR = byte;                    //Load byte to Data register
while(!(SPSR & (1<<SPIF)));     // Wait for transmission complete 

}

char ReadByteSPI(char addr)
{
    SPDR = addr;                    //Load byte to Data register
    while(!(SPSR & (1<<SPIF)));     // Wait for transmission complete 
    addr=SPDR;
    return addr;
}



int main (void) {

InitSPI();
WriteByteSPI(65);

    return 0;
}
 
Hallo Ibishelo,

das Modul kenne ich nicht und kann dir hier leider nicht direkt helfen.

Was mir aber aufgefallen ist, in main() fehlt eine Hauptschleife.

Noch ein Hinweis: Du nutzt HardwareSPI, bei den kleineren AVR-Mikrocontrollern werden MISO und MOSI auch für ISP-Programmierung verwendet. Wenn du hier einen Programmer angeschlossen hast, könnte es Probleme geben. Das hängt dann vom verwendeten Programmer ab.

Werden denn andere Zahlen/Buchstaben richtig dargestellt?

Dirk :ciao:
 
Hallo Dirk.

Danke für Deine Antwort.

Ich kann senden was ich will. Es werden nur LED angesteuert gemäss dem Binärcode..
Das mit der Endlosschleife im Hauptprogramm ist mir bekannt aber Danke für den Hinweis.
Das Mod-Led8x8 besteht aus 8 mal 8Led die über einen 74HC595d angesteuert werden.
Wenn Du möchtst die Adresse www.olimex.com

Grüsse Ibishello
 
Hallo Ibishello,

das Display verfügt lediglich über zwei Seriell-Parallel-Wandler (mit latch) und einen Linear-Treiber für Spalten/Zeilen, es hat keinen Dekoder, kein 8x8Bit Speicher und erledigt nicht selber das Multiplexen.

Du musst dir eine Tabelle anlegen, in der du Buchstaben, Ziffern und Zeichen definierst.

Auf der Webseite ist ein C-Beispiel für TI MSP430, dieses kannst du als Vorlage nehmen.

Dirk :ciao:
 
Hallo Dirk.

Danke für den Typ.
Bin in "HArdware" nicht der "Hirsch".

Grüsse Ibishello
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)