www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Max7219-Programm geht nicht


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

}

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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://stefan-buchgeher.info/elektronik/max7219/ma...

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

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.