Forum: Mikrocontroller und Digitale Elektronik Max7219-Programm geht nicht


von Gast (Gast)


Lesenswert?

Wo ist der Fehler im Programm weil nichts auf den Displays erscheint


//----------------------------------------------------------------------
// Titel     : Laufschrift auf den Segmenten des MAX7219
//----------------------------------------------------------------------
// Funktion  : Laufschrift
// Schaltung : ...
//----------------------------------------------------------------------
// Prozessor : ATmega8
// Takt     : 3.6864 MHz
// Sprache   : C
// Datum     : 06.04.09
// Version   : Version 1.0
// Autor     : Markus Ziegerer
//----------------------------------------------------------------------
#define  F_CPU 3686400// Taktferquenz des myAVR-Boards
#include  <avr\io.h>    // AVR Register und Konstantendefinitionen
#include   <util\delay.h>  // Bibliothek mit Warteroutinen
#include <stdlib.h>//AVR Register und Konstantendefinitionen
//----------------------------------------------------------------------
void uebertragung(char, char);

//----------------------------------------------------------------------
void Low()
{

  PORTB &= ~(1 << PB2);  //Bit auf 0 setzen
}

//----------------------------------------------------------------------
void High()
{
  PORTB |= (1 << PB2);   //Bit auf 1 setzen
}

//----------------------------------------------------------------------
void Port(void)
{

  DDRB = (1<<PB2)|(1<<PB3)|(1<<PB5);    //ganzen Port deklarieren

  SPCR = (1<<SPE)|(1<<MSTR);
  PORTB |= (1 << PB5)|(1 << PB2);     //Bit auf 1 setzen bei beiden 
Ports
}

//----------------------------------------------------------------------
void uebertragung(char addr, char data)
{

  SPDR = addr;                              //adresse in Datenregister
  while(!(SPSR & (1<<SPIF)));              //warten bis bits übertragen 
sind

  SPDR = data;                            //daten in Datenregister
  while(!(SPSR & (1<<SPIF)));            //warten bis bits übertragen 
sind
}

//----------------------------------------------------------------------
void test(void)
{
  Low();                          //Aufruf von Low

  uebertragung(0x00,0x05);//6 Digits
  uebertragung(0x0c,0x01);//Kein Shutdown
  uebertragung(0x0f,0x00);//Kein Displaytest
  uebertragung(0x09,0xff);//Decodemode für alle Digits
  uebertragung(0x0a,0x02);//Die Helligkeit der Digits wird hier 
eingestellt
  uebertragung(0x01,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x01,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x02,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x03,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x04,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x05,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x00);//Zahl 0
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x01);//Zahl 1
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x02);//Zahl 2
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x03);//Zahl 3
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x04);//Zahl 4
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x05);//Zahl 5
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x06);//Zahl 6
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x07);//Zahl 7
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x08);//Zahl 8
  _delay_ms(5000);//5000ms warten
  uebertragung(0x06,0x09);//Zahl 9
  _delay_ms(5000);//5000ms warten

  High();                 //Aufruf von High
}

//----------------------------------------------------------------------

int main ()       //Hauptprogramm, startet bei Power ON und Reset

{

  Port();    //Aufruf von Port
  test();     //Aufruf von test

}

//----------------------------------------------------------------------

von ... .. (docean) Benutzerseite


Lesenswert?

http://stefan-buchgeher.info/elektronik/max7219/max7219_dot_matrix_kap3.html#Kap3

low() und high() stehen falsch (müssen in uebertragung()

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.