Benötige hilfe bei erzeugung von video signal/AVR asm

Gast #466405
Lesenswert?
• ▲
▼
Hallo,

quelltext im anhang..

es soll ein bild von 208*312 mit nem avr darstellen. der erste test 
sollte eigentlich 100 zeilen schwarz + 106 zeilen balken+100 schwarz 
erzeugen, vsync zählt bis zeile 6. Nicht lachen das programm ist rimitiv 
wie sau. meine asm kenntnisse halten sich in grenzen...

beschaltung des avr

portb 0 ->900ohm an video in
portb 1 ->450ohm an video in

läufte bei 16mhz


Vielleicht sieht ja jmd den fehler auf den ersten blick?
Angehängte Dateien:
Gast #466699
Lesenswert?
• ▲
▼
Hallo

So wie dein Programm gschrieben ist, braucht es ja noch viel mehr 
Speicher. Ein Byte pro Bildpunkt, wenn ich es richtig sehe - ca 64 kB 
also. Naja, der Ansatz ist nicht grundschlecht - wer so eine hohe 
Auflösung (arbeite derzeit mit 128 * 84) erreichen will, muss wohl 
Kompromisse in anderen Bereichen eingehen. Aber mit bewegten Bildern ist 
dann wohl Schluss - im RAM hat es niemals Platz, und das Flash wäre wohl 
innerhalb weniger Minuten hinüber.

Gruss

Michael
Gast #466705
Lesenswert?
• ▲
▼
ja es geht mir erstmal drum ein stehendes bild zu erzeugen. :-)

ich habe das gefühl das es an meinem vsync liegt. habe das ganze mal 
(weils da einfacher ist) mit bascom probiert, nur mit einem einfachen 
schwarz/weiss pattern. das Problem ist verzwickt. die erste zeile steht 
in der hälfte des bildes. ich versteh nur ned warum. hier mal der code
Wie gesagt ich steig so richtig nicht hinter diese ganze vsync 
prozedur...

$regfile = "m32def.dat"
$crystal = 16000000


Config Portb = Output

Const Sync = 0
Const Black = 01
Const Gray = 02
Const White = 03


Dim Line As Byte



Do
Line = 0

'hier fängt der vsync an

Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29

Portb = Sync
Waitus 27
Portb = Black
Waitus 5
Portb = Sync
Waitus 27
Portb = Black
Waitus 5
Portb = Sync
Waitus 27
Portb = Black
Waitus 5
Portb = Sync
Waitus 27
Portb = Black
Waitus 5
Portb = Sync
Waitus 27
Portb = Black
Waitus 5


Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29
Portb = Sync
Waitus 2
Portb = Black
Waitus 29

'schwarze zeilen
Do
Gosub Hsync
Waitus 52
Loop Until Line = 17 'zeile 22

Line = 0
Do
Gosub Hsync
Portb = White
Waitus 21
Portb = Black
Waitus 30
Loop Until Line = 150


Line = 0
Do
Gosub Hsync
Portb = Black
Waitus 21
Portb = White
Waitus 31
Loop Until Line = 140 'zeile 312

Loop 'wieder zum vsync



Hsync:
Incr Line
Portb = Black
Waitus 1
'zwei takte bis sync

Portb = Sync
Waitus 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

Portb = Black
Waitus 5
nop
nop
nop
nop
nop
nop
nop
nop
Return

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.