www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 320x240 S1D13700 Codeproblem!


Autor: Martin 567 (martink11)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gerne ein 320x240 LCD betreiben.
mein Controller ist ein ATMEGA 128 und der LCD Controller ein S1D13700.
ich programmiere in C (AVRStudio).

ich weiß momentan echt nicht mehr weiter.
ich habe im Internet ein Beispiel gefunden für einen ATMega 324.
also ja fast passend.

scheitern tut das ganze aber glaube ich ganz wo anderst.

ich habe eine Debuggerfunktion (JTAG ICE).

damit sehe ich dass mir der Controller überhaupt nicht über die 
Initialisierung der Displayports hinauskommt.

hier mal der code:

#include <avr/io.h>
#include "sed1335.h"
#include "graphic.h"
#include "logos.h"
#include <util/delay.h>
#include "compat/deprecated.h"

void pixel_test(void);
void logo_test(void);
void line_test(void);
void circle_test(void);


int main(void)
{
sbi(DDRB,7);
cbi(PORTB,7);


//PWM (Timer2)
  TCCR2 = 0b01100001;    //PWM einstellen
  TCNT2 = 0;
  OCR2 = 180;        //PWM-Wert von 0-255

  /* Start stability test */
  _delay_ms(300);
  
  GLCD_Initialize();



  while(1)
  {
    logo_test();
    _delay_ms(3000);
    pixel_test();
    _delay_ms(3000);
    line_test();
    _delay_ms(3000);
    circle_test();
    _delay_ms(3000);
  }
}
void logo_test(void)
{
  char buf[] = "Stability Test";
  GLCD_ClearText();
  GLCD_ClearGraphic();
  GLCD_TextGoTo(0,0);
  GLCD_WriteText(buf);
  GLCD_TextGoTo(26,29);
  GLCD_WriteText(buf);
  GLCD_Bitmap((char *) logos, 0, 0, 320, 240);
}
void pixel_test(void)
{
  int x;
  int y;
  unsigned char c;

  GLCD_ClearText();
  GLCD_ClearGraphic();

  c = 0;
  for (y = 0; y < 240; y++)
  {
    c = !c;
    for (x = 0; x < 320; x++)
    {
      c = !c;
      GLCD_SetPixel(x,y,c);
    }
  }
}
void line_test(void)
{

  int x1;
  int y1;
  int x2;
  int y2;
  int i;

  GLCD_ClearText();
  GLCD_ClearGraphic();

  x1 = 0; y1 = 0; x2 = 319; y2 = 239;

  for (i = 0; i < 160; i++)
  {
    GLCD_Line(x1, y1,x2,y2);
    x1+=2;
    x2-=2;
  }

  x1 = 0; y1 = 0; x2 = 319; y2 = 239;

  for (i = 0; i < 120; i++)
  {
    GLCD_Line(x1, y1,x2,y2);
    y1+=2;
    y2-=2;
  }

}
void circle_test(void)
{
  int x1;
  int y1;
  int r;
  int i;

  x1 = 160; y1 = 120; r = 10;

  GLCD_ClearText();
  GLCD_ClearGraphic();

  for (i = 0; i < 55; i++)
  {
    GLCD_Circle(x1,y1,r);
    r += 2;
  }
}




so und der fehler ist der, dass ich gar nicht bis in die while-schleife 
komme.

nach durchlaufen der Funktion "GLCD_InitializePorts();" fängt der 
Debugger wieder von vorne an wie als ober ein Reset durchgeführt würde 
oda so ähnlich.
ich schnalls nicht mehr.

bitte helft mir!!!!
es kann ja normal nicht am beispiel liegen das ist original und 
unverändert bis auf meine Datenports und Controllports vom LCD.

vll eine einstellung im Studio oder Fusebits??

danke für jede hilfe
martin!!!!

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das problem ist gelöst

lag an einem fusebit genannt "M103C"
naja das quarz des displays hat zumindest gestastartet.
sehen tu ich aber immer noch nix.
zu sehen sollte aber was sein, da es sich ja um das testprogramm 
handelt.

wahrscheinlich liegts jetzt am Kontrast.

was mich zur nächsten frage bringt:
wie muss ich das kontrastpoti anschließen??
das Display heißt "G2432W17"

ich hab jetzt ein 5k poti als verstellbaren Widerstand zwischen den 
Kontrastpin des Displays und GND gelötet.

oder muss ich das poti zwischen 5V und Masse löten und am abgriff den 
Kontrastpin?????
oder irgendwas mit negativer spg?????

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ding geht jetzt

POTIANSCHLÜSSE:

1: 5V
2: Contrast
3: GND

Autor: Beobachter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na also!
Geht doch ;-)

Autor: Martin 567 (martink11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
saugeil^^

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.