320x240 LCD controller atmega8

Gast #1729952
Lesenswert?

Hi,
ich möchte ein Controllerloses 320x240 pixel display mit einen mega8 
ansteuern,Grundlegend weis ich was zun tun ist, nur praktisch gehts dann 
doch nicht ... Also per interrupt wird das display auf 1Mhz basis 
refreshed, ich habe erst einmal eine ganz einfach Ablauf geschrieben um 
erst mal ein wenig zu testen und zwar sieht der interrupt so aus :
1
ISR(TIMER1_COMPA_vect){
2
if(row==239){
3
   next_frame();
4
   row=0;
5
 }else{
6
     if(takt==79){
7
      next_row();
8
      row++;
9
      takt=0;
10
     }else{
11
         DATA=(1<<D0)|(0<<D1)|(1<<D2)|(0<<D3);
12
         takt++;
13
         next_bits();
14
     }
15
  }
16

17
}
die next funktionen sind nur kruze impulse an Cp LP und Flm. jedoch 
zeigt mir das display nicht die gewünschten 2 an 2 aus pixel an =( oder 
zumindest lässt sich nur erahnen was an und aus ist wenn ich den 
kontrast höher stelle, von der schalten her etc ist alles einwandfrei. 
Ist es vielleicht zu ungenau FLM CP uns LP mit dem selben timer zu 
setzten ? verschiebt sich das signal nach jedem refresh und ich erkenne 
deshalb nur grob die an und aus pixel ??? bitte um hilfe. plz keine 
links zu fertigen controllern, es geht mir hier vorallem auch ums 
verständniss.
Persönliche Seite #1730052
Lesenswert?

Der Ansteuerpart läßt sich auch nur sinnvoll in ASM machen, da die Sache 
sehr Zeitkritisch ist. Wenn man da nicht taktgenau ist kommt halt nur 
matsch raus.
Beitrag "Einfacher Low Cost LCD Controller für 320x240 LCD im Textmodus"
Wäre denk ich ein guter EInstieg dort ist der Ansteuerteil in ASM und 
der Rest in C geschrieben wenn ich das richtig in Erinnerung habe.
Gast #1730154
Lesenswert?

> Also per interrupt wird das display auf 1Mhz basis refreshed,

Bedeutet das, daß du eine Interrupt-Frequenz von 1 MHz hast? Da wirst 
du's nämlich mit einem AVR nicht schaffen. Selbst bei 20 Mhz 
Prozessortakt hast du pro ISR nur 20 Taktzyklen, von denen 2/3 schon 
für's Interrupt-Handling selbst draufgehen.
#1731150
Lesenswert?

Wenn du's unbedingt machen willst, dann versuch nicht mit einer 
Luftmatratze den Fahrweg der Titanic nachzupaddeln. Soll heißen vergiss 
deinen Mega8. Du müsstest fast hexen können wenn du das schaffen 
möchtest. Sorry aber mit deinem (momentanen) Wissen glaub ich nicht, 
dass du es schaffen würdest. Ich bin mir nicht mal sicher, ob das 
überhaupts zu schaffen ist.

Also schnapp dir einen FPGA und versuch's damit. Entsprechend Geld und 
Zeit musst du natürlich mitbrigen. VHDL ist leider nicht so einfach wie 
C.
Vorallem ziemlich teuer alles für einen Hobbybastler:  Hier Infos für 
dich :

http://www.mikrocontroller.net/articles/FPGA
(Firma: Ing.-Büro U. Jaster) #1732344
Lesenswert?

Hi Lomy,

es gibt 'ne Möglichkeit. Mit Interrupts wird das nie richtig 
funktionieren da die Abarbeitungszeiten der einzelnen Befehle 
unterschiedlich sind (bedingte-Jmp's!). Vergiß Interrupts und C! 
Funktionieren tuts nur mit laufzeitkonstanten Codes (ASM) und übere 'ne 
RAM Tabelle für die Steuerkomandos. Oder Hardware - d.h. Latches zur 
Synchonisation. FPGA geht auch ist aber das geiche als würde man mit 
einem Panzerkreuzer 'ne Luftmatratze versenken - CPLD schon besser 
(XLINX Software kostenlos aber 5GByte Eingabe per Schaltplan ohne VHDL). 
Die einfachste Lösung ist ein Display mit internem Bildwiederholspeicher 
und 8Bit-Bus. Da kannste an der Mega8 noch einen SPI-Dataflash 
(Zeichensatz) anschließen und hast sogar noch 'ne UART für RS232/485/USB 
für den Kontakt zur 'Außenwelt'.

UJ
Gast #1733149
Lesenswert?

Ich habs mit der taktung gemeistert =D zum testen hab ich erst mal ein 
streifen musster senkrecht entstehen lassen, allerding hab ich etwa in 
der 200sten zeile, etwa 2 zeilen gar nichts was ich mir nicht erklären 
kann, wenn ich das sterusignal abschalte und das display spinnt ein 
wenig rum, gehen die beiden zeilen noch. was gäbe es den für grunde 
warum das nicth geht ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren