www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Code umschreiben in AVR oder ist dieser Code kompatibel


Autor: pfoste (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Max7219 soll damit angesteuert werden vielleicht gibt es hier auch 
Beispielprogramme nur noch keine gefunden.




Programm für CCS

Wie  muss der Code aussehen in AVR  hab davon keine Ahnung.

Routine AUSGABE():
void AUSGABE(char adresse,char wert)
{
char x;
// Bevor die Daten übertragen werden, wird zuerst der PIN LOAD auf LOW 
gesetzt.
// Die Daten beginnen mit dem Bit D15, also MSB
output_low(LOAD);
// Die Datenbits D15-D12 werden übertragen
// Da diese nicht wichtig sind, wird eine 0 übermittelt
for (x=0;x<4;x++)
{
output_low(DATA);
output_high(CLK);
output_low(CLK);
}
// Die Datenbits D11-D8 beinhalten die Registeradresse des MAX7219
for (x=4;x>0;x--)
{
if (bit_test(adresse,x-1)) output_high(DATA);
else output_low(DATA);
output_high(CLK);
output_low(CLK);



Routine AUSGABE_INIT():

void ausgabe_init()
{
ausgabe(0x0b,0x04); // Hier wird die Anzahl der Digits angegeben (5 
Digits)
ausgabe(0x0c,0x01); // Displays werden auf Normal-Betrieb gesetzt (kein 
Shutdown)
ausgabe(0x09,0xff); // Displays werden auf Normal-Betrieb gesetzt (kein 
Displaytest)
ausgabe(0x0a,0x00); // Die Helligkeit der Digits wird hier eingestellt
}

}
// Die Datenbits D7-D0 sind die Daten an den MAX7219
for (x=8;x>0;x--)
{
if (bit_test(wert,x-1)) output_high(DATA);
else output_low(DATA);
output_high(CLK);
output_low(CLK);
}
// Zum Schluß wird der PIN LOAD auf HIGH gesetzt, damit ist die
// Datenübertragung zu Ende
output_high(LOAD);
}


http://www.bobhobby.com/wp-content/uploads/2008/04... 
das ist der Schaltplan den ich benutze


Und zur Ansteuerung benutze ich das MYAVR LPT Board das auch einen RS232 
Anschluss hat

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den C-Code (die Programmiersprache heißt "c") mal 
übersichtlicher formatiert. Leider ist er syntaktisch unbrauchbar. (Du 
hast nicht alles kopiert). Solltest Du wirklich Interesse daran haben, 
etwas in einen Mikroprozessor zu programmieren, dann wirst Du mit Hilfe 
von http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial das alles 
ganz allein hinbekommen können.
//Routine AUSGABE():
void AUSGABE(char adresse,char wert)
{
  char x;
  // Bevor die Daten übertragen werden, wird zuerst der PIN LOAD auf LOW   gesetzt.
  // Die Daten beginnen mit dem Bit D15, also MSB
  output_low(LOAD);
  // Die Datenbits D15-D12 werden übertragen
  // Da diese nicht wichtig sind, wird eine 0 übermittelt
  for (x=0;x<4;x++) {
    output_low(DATA);
    output_high(CLK);
    output_low(CLK);
  }
  // Die Datenbits D11-D8 beinhalten die Registeradresse des MAX7219
  for (x=4;x>0;x--)
  {
    if (bit_test(adresse,x-1)) output_high(DATA);
    else output_low(DATA);

    output_high(CLK);
    output_low(CLK);



//  Routine AUSGABE_INIT():
    void ausgabe_init() {
      ausgabe(0x0b,0x04); // Hier wird die Anzahl der Digits angegeben (5Digits)
      ausgabe(0x0c,0x01); // Displays werden auf Normal-Betrieb gesetzt (keinShutdown)
      ausgabe(0x09,0xff); // Displays werden auf Normal-Betrieb gesetzt (keinDisplaytest)
      ausgabe(0x0a,0x00); // Die Helligkeit der Digits wird hier eingestellt
    }
  }
  // Die Datenbits D7-D0 sind die Daten an den MAX7219
  for (x=8;x>0;x--)   {
    if (bit_test(wert,x-1)) output_high(DATA);
    else output_low(DATA);
    output_high(CLK);
    output_low(CLK);
  }
  // Zum Schluß wird der PIN LOAD auf HIGH gesetzt, damit ist die
  // Datenübertragung zu Ende
  output_high(LOAD);
}


Grüße, Gregor

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens gibt's das ganze Projekt für den AVR ATiny25 hier:
http://www.bobhobby.com/2008/04/22/usb-physical-hi...

Einfach nachbauen, ATiny programmieren, PC-Software (!) installieren und 
nach der Fehlersuche freuen oder heulen...

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.