mikrocontroller.net

Forum: Projekte & Code AVR-ChipBasic2 - BASIC-Computer mit ATMega 644


Autor: Alexander D. (Firma: Privat) (alexdaix)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg!

Danke für Deine Tips!

Der erste Tip, nach einer Fehlanpassung des Videoausgangs in Richtung 
zur FBAS-VGA Wandlerbox zu suchen hat keine Änderung gebracht.

Der zweite Tip, Deine Erklärung zu dem "ausgefransten" linken Bildrand 
hat jetzt wohl auch die Erklärung für meine Schatten behaftete Ausgabe 
gegeben.
Mein Videosignal hat mit dem Scope gemessen die gleiche zeitliche 
Unsicherheit (siehe Bild) und wird damit der Grund für die Macke in der 
Bildausgabe sein -> also erstmal "working as designed".
Bei nächster Gelegenheit probiert ich den Tip aus den Fernseher per RGB 
- Scart mit einem Signal zu versorgen und werde dann wieder berichten.

Es war doch mal einer hier im threat der die RGB Bildausgabe mit einem 
IC auf FBAS gewandelt hat.
War das Bild dort so scharf und ruhig wie man es sich wünscht?
Bzw. hat noch wer anders die gleichen Anzeigeprobleme gesehen?

Danke wieder für eure Hilfe!
Alexdander

Autor: Alexander D. (Firma: Privat) (alexdaix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Anmerkung zum Scopebild...

das LCD hat Kontaktprobleme deshalb die waagerechten Striche im oberen 
und unteren Drittel der Anzeige.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alexander,

ich kann jetzt die Messung nicht nachvollziehen, aber der Beginn der 
Bildinformation (nicht des farbigen Randes) sollte sich bezüglich zum 
horizontalen Synchronimpuls nicht ändern. Ansonsten wäre ja das ganze 
Bild ausgefranst. Eventuell könntest Du das Oszi im "Normalmodus" (nicht 
Video) betreiben und auf die steigende Flanke vom HSYNC triggern.

@Dominik
Ich habe die Änderungen bezüglich seriell fertig, muss sie aber noch 
testen. Vielleicht komme ich am WE dazu.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

ui.... das klingt ja klasse!
Bin mal gespannt und freue mich :)

Ach man... bei Pollin gibts wieder tolle kleine PAL TFT's.. könnte man 
nen super Laptop bauen aber dafür ist die Bildausgabe per Bas s/w und 
das ist blöd :(

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde jetzt mal einen Computer aufbauen und in ein altes 
Modemgehäuse einpflanzen + der FBAS Schaltung weiter oben von Ralf - 
Rainer Ratke!
Die Modemgehäuse eignen sich perfekt, zumal Aussparungen für die 
wichtigesten Anschlüsse vorhanden sind.

Momentan weiß ich noch nicht genau wie ich mit dem Parallelport umgehen 
soll. Entweder mit einem Schmitt-Trigger als Joystickport oder als I/O. 
Oder kombinieren, dann hab ich aber nur einen Input Port mit passiven 
Schaltern die auf Masse gezogen werden. Steuern und regeln hat sich dann 
erledigt! :(

@Ralf - Rainer Ratke
Woher hast du die Motorrola IC's denn bezogen? Ich habe sie nur bei Ebay 
gefunden und dort auch nicht wirklich massig!!

Gruß
Dominik

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne Frage:
Wenn ich Scart ersetze gegen die FBAS Schaltung... bleiben die 
Widerstände für RGB am µC Ausgang bestehen?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurzer Zwischenstatus: die Änderungen sind leider noch nicht fehlerfrei, 
manchmal hängt das System beim seriellen Loader und start sich laufend 
neu. Da muss ich jetzt die nächsten Tage mal drüberschauen.

Zu den FBAS-Schaltungen habe ich keine Erfahrungen, lediglich für den 
CPLD-FBAS-Encoder, den ich ursprünglich für den ChipBasic Computer 
entwickelt hatte. Und den konne man einfach an den unveränderten "UNI"- 
Videoport anstecken.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

nungut, ich baue die FBAS Schaltung mit dem Motorrola mal zu Ende und 
hänge sie an den Videoport. Mal schauen was passiert!

Bei Pollin gibts übrigens für 14 Euro ein kleines LCD mit FBAS Anschluss 
PAL/NTSC... perfekt
Außerdem eine kleine Platine auf der man die Flashbausteine auflöten 
kann und mit Stiftleisten versehen kann... Noch perfekter.

Autor: Alexander D. (Firma: Privat) (alexdaix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Dominik
Die Wiederstände für den SCART Ausgang brauchst Du auch für das 
converter IC.
Über die unterschiedlichen Spannungspegel die auf den Ausgängen Rot, 
Grün, Blau ausgegeben werden wird die aktuelle Farbe des Bildpunktes 
"gemsicht".
Die eigentliche Funktion des converter ICs ist die 3 Spanungspegel 
zusammen zu fassen, damit die Farbe des Bildpunkts ermitteln und diesen 
Wert in eine
Frequenz umzuwandeln - fertig ist das FBAS Signal... in der groben 
Übersicht!

Das Pollin Display habe ich auch schon gesehen, kam mir aber aber etwas 
klein vor und wenn ich es richtig gelesen haben zeigt es 16:9 an womit 
die
Darstellung in der Breite verzerrt ist. Leider habe ich in den 
Pollinunterlagen nichts gefunden ob man auf 4:3 umschalten kann.
Berichte mal von Deinen Erfahrungen wenn Du es Dir kaufen solltest.
Übrigens auch ohne das converter IC sollte ein Bild zu sehen sein, halt 
nur in Schwarz/Weiß.

@ Jörg
Du hast das Scopebild genau richtig interpretiert!
Das Scope triggert auf den Vertikalimpuls und so kommt es daß die h-sync 
Impluse "zittern" wenn ich eine einzelne Zeilen anzeigen lasse.
Trigger ich auf den h-sync steht das Signal wie eine 1 genau so wie Du 
es vermutet hast!
Die zeitliche Unsicherheit am linken Rand fällt bei dieser Anzeige nicht 
auf. Ich seh in dieser Ansicht auch absolut keine Störungen die mein 
Schattenbild erklären könnten. Auch unterschiedliche Abschlußwiderstände 
ändern an dem sehr sauberen Signal nichts, lediglich an der Amplitude 
(wie erwartet).

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Alex

Na das man auch so ein Bild sieht ist mir klar... aber ich will ja eben 
kein s/w sondern in farbe und bunt! :))
ich muss nochmal nachgucken.. wenn das wirklich 16:9 ist, dann ist das 
ein bißchen blöd!
Egal.. mal testen!

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo... FBas Schaltung gebaut, drangehängt, kein Signal! :(

Das Signal am Scope gefällt mir auch irgendwie nicht.. mh!
Jetzt beginnt die Fehlersuche...

Autor: Frank Z. (fzoll)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Halloe.

Ich habe da seit einiger Zeit ein Problem, eine SPI-Erweiterung über das 
Kommando SPISEL und SPI() ans laufen zu kriegen und komme einfach nicht 
weiter. Ich habe eine nette kleine Platine gebastelt und wollte an den 
SPI- Bus eine Multiselekt-Erweiterung anbauen, da ich mehrere SPI Geräte 
steuern wollte.

Das ganze liegt nu schön länger auf meinem Tisch und will einfach net 
laufen. Nun hab ich mir letzte Woche endlich mal einen 10 Euro 
Logikanalyser gekauft und bin dem Problem näher auf den Grund gegangen.

Ich verwende die Version 1.45 von ChipBasic auf meinem 644p(er) Board.

Das angehängte Bild zeigt einen Scann der Kommunikation mit folgenden 
Befehlen:

SPISEL 0
A = SPI ( 85 )

SPISEL $FF
A = SPI ( 15 )

Was mich wundert ist, das die ChipSelekt- Leitung mit Signal (SS) auf 
Pin5 ihren zustand nicht wie beschrieben ändert, sie bleibt die ganze 
Zeit auf LOW. Ich hätte erwartet, das sie bei dem Commando SPISEL 0 auf 
HIGH wechselt.

Ich hab inzwischen auch schon selbst im Sourcecode rumgesucht, konnte 
den Fehler aber nicht wirklich finden. Eigentlich wird der Port wie in 
der Anleitng beschrieben umgeschatet, aber irgendwie scheint der Port 
nicht auf Ausgabe zu stehen obwolh das im Init-Block am Anfang 
eigentlich richtig gesetzt wird, oder ich habe sonst noch was übersehen.

Hat schon jemand erfolgreich eine MultiSelekt Erweiterung ans laufen 
bekommen und wie sah eure Schaltung aus ?

Freundliche Grüße
Frank

Autor: 711LAB .. (711lab)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
Ich will Chip-8-Programme laden und der Autor sagt: "Der 
Chip8-Interpreter Braucht sterben daten in Einem bestimmten Format, und 
Zwar Einem 4 KBytes grossem Speicherabbild zusatzlich Sind Verzögerung 
und sterben Tastenbelegung hinterlegt..
Wann & DaZu sterben Programm Aus dem Internet heruntergeladen und Werden 
mittels der Programme im TOOL-Ordner Konvertiert Werden. "

Wo ist das Programm, um Chip-8-Dateien konvertieren??

Tut mir leid, mein Deutsch, aber sie sind von google translate.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank

da scheint sich wirklich noch ein Fehler eingeschlichen zu haben der 
dazu führt, dass immer nur das DatanFlash angesprochen wird. Einen Fix 
habe ich schon, muss ihn aber noch testen

@711LAB
The tool for converting chip8 programs is currently missing in the 
archive (like the examples). You will find it in the 1.43 package.

Jörg

Autor: 711LAB .. (711lab)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thanks! Ich hatte das Programm von Cygwin auf WindowsXP ausführen, wird 
es ok. Ich habe alle chip8 Spiele, die ich im Internet finden umwandeln 
und Getestet habe ich sie auf der Chip-8 Emulator, funktioniert es ok.

Wissen Sie, wie die EMU-8080 funktioniert? In welcher Position ich es 
laden und muss ich laden zusätzliche Bibliothek?

Autor: 711LAB .. (711lab)
Datum:
Angehängte Dateien:
  • preview image for tv.jpg
    tv.jpg
    39,6 KB, 649 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe dieses Problem auf 16 Farben SCART. Das Monitorbild ist 
sehr schlecht. Was ist das Problem?

Autor: Frank Z. (fzoll)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
711LAB .. schrieb:
> Hallo, ich habe dieses Problem auf 16 Farben SCART. Das Monitorbild ist
> sehr schlecht. Was ist das Problem?

Hm, für mich sicht es so aus als ob der Fernseher den SYNC- Impuls nicht 
bekommt und damit den Anfang des Bildes nicht erkennen kann. Ich würde 
mal schauen, ob da nicht ggf. ein Fehler im Layout ist.

Bei den Scart- Bildern in der DOKU sollte man unbedingt darauf achten, 
das die Bilder davon ausgehen das man sich ein Kabel löten will um den 9 
poligen Ausgang der "Universalplatine" an einen Scart Stecker anzulöten.

Wenn man statt dessen eine Buchse auf seiner Platine einbauen möchte, 
muss man dabei berücksichtigen, das einige Adern im Scart- Kabel "über 
Kreuz" laufen und dann muss man die an der Buchse dann an anderer Stelle 
anlöten. Für die richige Belegung haben mir "damals" die Wiki Seiten zum 
Thema Scart sehr weiter geholfen.

Grüße
Frank

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lange genug hat es ja gedauert, die aktuelle Version (V1.48) ist ab 
sofort verfügbar:

http://www.jcwolfram.de/downloads/main.php#chipbasic2

- Bugfix bei SPISEL (zumindest im LA scheint es jetzt zu passen)
- Bugfix: Cursortasten bei INPUT konnten zum Absturz führen
- Die System-Schnittstelle geht jetzt auch wahlweise über 38,4K / USART1
- IRAM-Treiber für Mega1284P (experimentell)

Jörg

Autor: patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg, kann man die hex einfach in den 1284 brennen?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Patrick,

das sollte ohne Probleme möglich sein. Den IRAM12-Treiber habe ich auch 
damit entwickelt und getestet, wenn auch nicht mit der finalen Version.

Jörg

Autor: patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg , ich kann mit dem 1284 leider keine Programme laden, weder 
vom d-flash noch aus dem editor, er atmega speichert sie nicht ab weder 
unter der 1,48 noch einer älteren version (zum Test die 1,43
Aufgespielt) wenn ich im editor ein Programm schreibe bleibt der nach 
dem speichern der Cursor jn der position, so wie es sein soll aber das 
Textfeld ist dann leer
Hast du eine Idee , woran das liegen kann? Vielen Dank

Patrick

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Patrick,

erst musste ich auch überlegen, warum das so ist. Letztendlich ist mir 
dann doch wieder eingefallen, dass beim Mega1284P eine minimale Änderung 
notwendig ist, die aber zum Mega644(P) inkompatibel ist.
Neben einem anderen Include-File für den Mega1284P, welches auch mit dem 
Mega644(P) funktioniert, müssen in der main.asm die letzten 3 ORG 
Anweisungen geändert werden:
0x7800 -> 0xF800
0x7A80 -> 0x7980
0x7B00 -> 0x7A00   

Dann neu übersetzen und es müsste gehen.

Jörg

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,danke dachte schon der neue ATmega wäre kaputt
leider klappt das kompilieren nicht unter Windows
,bringst du evtl. noch eine passende HEX für den mega1284
raus, das wäre echt super weil der Computer macht echt
viel Spass!

nochmals vielen Dank!
gruss Patrick

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt eine neue Version (v1.49) hochgeladen, bei der auch ein 
Binary für den Mega1284P mit dabei ist. Fuses sind die gleichen wie beim 
Mega644(P). Zusätzlich gibt es zwei neue Befehle für Textlänge bestimmen 
(TLEN), rudimentäre Suche in Texten (TFIND) und einen Bugfix bei CTEXT 
(hier wurden teilweise zuviele Bytes in das Array kopiert)

http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php


Jörg

Autor: sv3ora (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Zoll schrieb:
> Hm, für mich sicht es so aus als ob der Fernseher den SYNC- Impuls nicht
> bekommt und damit den Anfang des Bildes nicht erkennen kann. Ich würde
> mal schauen, ob da nicht ggf. ein Fehler im Layout ist.
>
> Bei den Scart- Bildern in der DOKU sollte man unbedingt darauf achten,
> das die Bilder davon ausgehen das man sich ein Kabel löten will um den 9
> poligen Ausgang der "Universalplatine" an einen Scart Stecker anzulöten.
>
> Wenn man statt dessen eine Buchse auf seiner Platine einbauen möchte,
> muss man dabei berücksichtigen, das einige Adern im Scart- Kabel "über
> Kreuz" laufen und dann muss man die an der Buchse dann an anderer Stelle
> anlöten. Für die richige Belegung haben mir "damals" die Wiki Seiten zum
> Thema Scart sehr weiter geholfen.

hallo, es funktioniert immer noch nicht. Zuerst müssen Sie sagen, dass 
die 180r mit Pin 18 verbunden werden, aber es ist Pin 16, 18 nicht. 
Zweiten, zwei der Farbstifte müssen getauscht werden. whe ich tauschen 
sie die richtigen Farben. Aber noch kein Sync.
Wie kann kein Sync getan werden? es gibt keine Sync Pins in den 
Scart-Anschluss.

Autor: sv3ora (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sv3ora schrieb:

>
> hallo, es funktioniert immer noch nicht. Zuerst müssen Sie sagen, dass
> die 180r mit Pin 18 verbunden werden, aber es ist Pin 16, 18 nicht.
> Zweiten, zwei der Farbstifte müssen getauscht werden. whe ich tauschen
> sie die richtigen Farben. Aber noch kein Sync.
> Wie kann kein Sync getan werden? es gibt keine Sync Pins in den
> Scart-Anschluss.

sv3ora schrieb:
> Frank Zoll schrieb:
>> Hm, für mich sicht es so aus als ob der Fernseher den SYNC- Impuls nicht
>> bekommt und damit den Anfang des Bildes nicht erkennen kann. Ich würde
>> mal schauen, ob da nicht ggf. ein Fehler im Layout ist.
>>
>> Bei den Scart- Bildern in der DOKU sollte man unbedingt darauf achten,
>> das die Bilder davon ausgehen das man sich ein Kabel löten will um den 9
>> poligen Ausgang der "Universalplatine" an einen Scart Stecker anzulöten.
>>
>> Wenn man statt dessen eine Buchse auf seiner Platine einbauen möchte,
>> muss man dabei berücksichtigen, das einige Adern im Scart- Kabel "über
>> Kreuz" laufen und dann muss man die an der Buchse dann an anderer Stelle
>> anlöten. Für die richige Belegung haben mir "damals" die Wiki Seiten zum
>> Thema Scart sehr weiter geholfen.
>
> hallo, es funktioniert immer noch nicht. Zuerst müssen Sie sagen, dass
> die 180r mit Pin 18 verbunden werden, aber es ist Pin 16, 18 nicht.
> Zweiten, zwei der Farbstifte müssen getauscht werden. whe ich tauschen
> sie die richtigen Farben. Aber noch kein Sync.
> Wie kann kein Sync getan werden? es gibt keine Sync Pins in den
> Scart-Anschluss.


Ich überprüfte die hsync  VSync  r  g  b-Signale auf einem 
Oszilloskop, scheinen sie von einem ersten Blick in Ordnung. aber wie 
wird das RGB synchronisiert, wenn kein Sync-Signal wird durch sie 
hindurch an den Fernseher?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Sync kommt über das Composite Video Signal an Pin 20 der Scart 
Buchse. Dort muss das normale (s/w) BAS Signal ankommen, dazu muss J2 
offen sein (CSYNC). VSYNC wird bei Scart und BAS nicht gebraucht, nur 
beim TFT. Das BAS-Signal von Pin 20 der (Scart) kann man mittels 
Cinch-Stecker am Fernseher testen. Nur RGB zum Scart zu führen, reicht 
nicht aus.

Jörg

Autor: sv3ora (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja Stift 20 verbunden und ich kann das BAS-Signal (B & W) im Fernsehen 
von diesem Stift zu sehen. Jedoch kann das Farbvideosignal nicht 
stabilisieren. Ich habe dies auf 2 Röhrenfernseher und 2 LCD-Fernseher 
getestet. Die LCD-Fernseher nicht jedes Bild an allen zu zeigen! Ich 
weiß nicht, was falsch ist. Hat jemand versucht, den Computer ohne die 
Leiterplatte zu bauen, wie ich es tat?

Nachdem durch das Fehlen der Farbe enttäuscht, bin ich den Aufbau einer 
minimalistischen Version der Computer, nur mit B & W.
Diese Version hat einen eingebetteten Programmierer und ein 
Null-Modem-Verbindung, also kann es so programmiert werden und laden die 
Programme ohne spezielle Kabel. Nur die notwendigen Komponenten sind 
enthalten.

Es ist sehr schwer, mich auf Deutsch zu schreiben, über Google zu 
übersetzen ...

Autor: Frank Z. (fzoll)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Halloe.

Ich habe mitlerweile erfolgreich eine eigene Platine erstellt und dabei 
keine Probleme mit dem Sync oder den Farben. Ich habe hier mal meinen 
aktuellen Entwicklungsstand als ZIP- File drann gehängt.

Wobei ich von den 3 Platinen an denen ich arbeite nur die Hauptplatine 
angehängt habe. Auf den Fotos sieht man noch die SPI  I2C  RS232 
Erweiterungsplantine. An dieser debugge ich noch, da ich da mit der SPI- 
Selekt- Logik probleme habe. (p.s. Konnte die aktuelle Version der 
Firmware aus Zeitgünden noch nicht testen...).

Von Links kommt das Kabel von der Netzteilplatine rein, welche ich für 
dieses Projekt ebenfalls selbst erstellt habe.

Ich habe das ganze mit KiCad entwickelt und dann mal beim Chinaman je 10 
Platinen in Auftrag gegeben. Bisher habe ich nur einen Satz platinen 
wirklich bestückt. Ich bin noch dabei alle Funktionen durchzutesten.

Aber der Scrat- Anschluss an dem hier interesse besteht, funktioniert 
bei mir Problemlos mit 2 verschiedenen Fernsehern. Für die, die kein 
KiCad installieren möchten, habe ich den entscheidenen Ausschnitt aus 
dem Schaltplan als JPG extrahiert.

Wie man sieht habe ich das Composite- Signal nicht auf Pin 20 sondern 
auf Pin 19 der Buchse gebracht. Auch das ist beim Scart- Kabel über 
Kreuz und ich hab lange rumgesucht bei meinem ersten Verauch um das raus 
zu bekommen :-) Dachte immer, ich hätte bei meiner ersten, noch selbst 
geätzten Platine irgendwo einen anderen Bug...

Hoffe ich konnte helfen.

Grüße
Frank

: Bearbeitet durch User
Autor: sv3ora (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haben Sie bemerkt, dass die Scart-Schaltplan in Jörgs Website ist 
falsch? zwei der Farben müssen getauscht werden. Also das schematische 
funktionierte gut für Sie?
Ich muss Kuppel haben einige Fehler auf mir, denn ich kann es nicht 
laufen Farbe auf den Scart.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch mal nachgeschaut, im Schaltplan "Uni auf Scart" sind 
wirklich Rot und Grün vertauscht. Das werde ich in den nächsten Tagen 
korrigieren. Ursache dafür ist, dass ich den Uni-Anschluss damals erst 
anders geplant hatte. Der Schaltplan mit Scart direkt, den wohl die 
meisten Nachbauer benutzen, hat diesen Fehler nicht.

Läuft der Scart-Anschluss mit dem BAS-Signal stabil in S/W (Ohne 
Austast-Signal an Stift 16 des Scart)?

Jörg

Autor: sv3ora (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich richtig verstehe Ihre Frage (Google Translate), Die B & 
W-Signal funktioniert ok durch den Scart-Anschluss. Es ist nur das 
Farbsignal, das nicht funktioniert (vertikal und horizontal sync 
Verlust).
Wenn ich einen RGB zu Composite-Video-Chip von außen (wie der AD724), 
dann färben Composite-Video kommt aus ok.
Aber die AD724 kommt RGB als auch H-Sync und V-Sync-Signale als Eingabe.
Es scheint irgendwie, dass es ein Problem mit dem Fernseher, um die 
H-Sync und V-Sync-Signale auf den Scart-Version ohne den AD724 zu 
erkennen.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu blöd das es den Source nicht in C gibt :(((((((

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gab seinerzeit mindestens 2 Leute die sich daran versucht haben, 
ChipBasic nach C zu portieren. Aber wahrscheinlich sind sie daran 
gescheitert, würde mich auch nicht wundern. Es fängt schon damit an, 
dass ich bestimmte Register als Konstanten benutze (const_0,const_1) 
oder aus Geschwindigkeitsgründen für die Videoausgabe reserviere 
(vline_l/vline_h). Außerdem wimmelt es von Stack-Manipulationen, um 
Codegröße zu sparen. Ohne diese und andere "Tricks" würde das Ganze auch 
in ASM nicht in das Flash passen. Ich stecke jetzt nicht soweit drin, 
aber ob der Compiler erkennt, dass an anderer Stelle die Register in der 
gleichen Reihenfolge vom Stack geholt werden und bei zeitunkritischen 
Stellen einfach dorthin gesprungen wird anstelle dieselbe POP-Orgie 
wieder zu veranstalten.
Auch beim "Nachfolgerprojekt" (mit anderem Controller) bin ich nach 
einem kurzen Ausflug nach C (das nutze ich praktisch nur auf dem PC) 
wieder zu ASM zurückgekehrt. Allerdings wird es da Systemschnittstellen 
geben, über die man Anwendungen problemlos auch in C schreiben kann.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

ich kann da echt nur den Hut vor ziehen!
In C würde das mit Sicherheit nicht in den µC passen!
Aber ich finde es schade das ich den ASM Code nicht so gut lesen kann 
wie eben C Code...
Es hapert ja wie gesagt schon an den Farben!

Beispiel 1:
Ich habe die Zeilen im Editor blau gemacht.
Der Hintergrund ist aber trotzdem schwarz. Und zwar so, dass zwischen 
den Blauen Zeilen im Editor immer noch schwarze Striche zu erkennen 
sind. Blöd, wenn man alles blau haben will, man aber nicht die Farbe des 
Hintegrund findet.

Beispiel 2: ich finde nirgends die Farbinformationen der Leiste mit den 
Funktionstasten (EXIT, LOAD, SAVE, etc.)

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm, wie verhält sich das eigentlich mit dem Bibliotheken?
Wenn ich jetzt den Tile/Sprite nutzen will, sagt er mir, die Bibliothek 
ist nicht vorhanden! Wie geht denn das?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

1. Während der Zeilenzwischenräume (linien 10 und 11) wird kein Video 
ausgegeben, daher beliben die Zwischenräume schwarz. Um das zu ändern, 
müsste man das Video-out an der richtigen Position auf blau schalten und 
dann auch wieder an der richtigen Position am Zeilenende auf schwarz.

2. Die Farben für die Menüs sind in libmio/library.asm ab dem Label 
libmio_menu_at fest codiert.

3. Viedotreiber funktionieren generell nur auf Programmplatz 8, da die 
Einsprungadressen fix sind. Um den Tilemode zu nutzen, muß 
*tilemode.bin* an Programmplatz 8 geladen werden. Dann sollte es auch 
klappen.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

danke schön!
Das mit den Farben hab ich jetzt gefunden!
Jetzt hab ich aber noch andere Grundsatzfragen zum Thema asm:

1. Farben
Woran sehe ich, welche Farbe 0x80 das ist? oder das: 0x2e

2. Api
In der Doku sind die Api beschrieben. Wie werden diese denn benutzt?

3. Seriell
Kann ich, den CB Computer an einen PC anklemmen und ohne TV mit diesem 
kommunizieren? In der Doku steht was mit dem seriellen Lader... press 
space to start... etc. wo erscheint das dann?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

1. Da die RGB(I)-Ausgänge an PORTC.4-PORTC.7 liegen, haben die Bits 
folgende Bedeutung:
7   Hintergrund grün
6   Hintergrund rot
5   Hintergrund blau
4   Hintergrund Intensität (nur mit 16-Farb-Erweiterung)
3   Vordergrund grün
2   Vordergrund rot
1   Vordergrund blau
0   Vordergrund Intensität (nur mit 16-Farb-Erweiterung)
0x80 ist demnach schwarz auf grün und 0x2e weiß auf rot (beide Male ohne 
Intensity)

2. Man muss halt die api.inc oder api_macros.inc mit includen. Steht 
auch mit kleinem Beispiel in der Dokumentation (Interna). Wichtig dabei 
ist auch, dass der Header (Icon, Flags) richtig konfiguriert ist.

3. Das erscheint dann auf dem PC, falls Du dort gerade ein 
Terminalprogramm am Laufen hast.

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,
danke für die Info!

Ja mit dem seriellen lader... das klappt irgendwie nicht, oder ich habe 
irgendwas vergessen.
Chipbasic an die serielle, Terminal am PC einrichten, Chipbasic 
starten... nix passiert! Muss ich den seriellen Lader auf Autostart 
stellen?

ich bastel gerade hardwaremäßig ein wenig an einem Tongenerator bzw. 
Synthesizer, der hinter der Soundausgabe liegt.
ich möchte versuchen den Soundkanal etwas polyphoner klingen zu lassen 
und verzerrter. Erste Versuche zeigten das ich auf dem richtigen weg bin 
:)

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So,
ich werde jetzt mal ein Spiel programmieren und das wie folgt machen:

Titel, Sound, Grafik, Levels, etc. auslagern auf verschiedene 
Programmplätze, dann ins Dataflash speichern. Auf P1 einen Gameloader 
programmieren der das Spiel, bzw. seine Elemente auf die verschiedenen 
Plätze legt.
Dadurch ist das ganze Spiel auf dem DF und es ist möglich viiiiel mehr 
als 95 Zeilen zu nutzen.

Jörg:
Kann man noch was am Sound machen? Vlt 2 stimmig?

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ich nochmal...

Multisync ist ja nicht gleich Multisync oder?
Gibt es überhaupt einen TFT Monitor, und ich meine nicht so ein 
Einbaudisplay, das die Zeilenfrequenz des CB2 kann????

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huhu?
Hier ist ja nix mehr los :((

Frage:
ich bräuchte arrays, und zwar wie folgt:

array1 = "Test"
array2 = "Test2"
...

? @2,2;array1


Wie geeeeeeht das??? :(
Blöd ist, ich kann kein Array wie folgt definieren: array(1)$=".."
mache ich es mit Data 0,"Test",0
Und schreibe Ar(0) dann wird mir nur das "T" ausgegeben.
Ich kann das Array aber nicht in eine Schleife setzen, weil mit 
irgendwann die variablen ausgehen bei mehreren Arrays...
Hilfe :(

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da das Projekt von mir kaum noch aktiv weiterentwickelt wird, schaue ich 
auch nur von Zeit zu Zeit hier rein.

1. Der Lader muß nur da sein, allerdings habe ich ihn mit den 38,4K an 
der zweiten seriellen Schnittstelle nie getestet. Kannst Du Listings aus 
dem Editor über Deine serielle Schnittstelle senden?

2. Eine zweite Stimme wird wahrscheinlich am Platz im Flash und an der 
verfügbaren Zeit in der horizontalen Austastlücke scheitern.

3. Es gibt das NEC-Display (NL3224AC35-01, mittlerweise relativ teuer), 
eventuell gehen die Displays aus elektronischen Rückfahrspiegeln.

4. Du kannst ja an den Anfang des Arrays eine Tabelle legen, in der die 
Positionen der "Teilarrays" hinterlegt sind. Ausgabe geht nur in einer 
Loop, da es kein explizites Stringhandling gibt. So in der Art (ohne 
Gewähr):
50  A = AR(A+1024)
51  IF AR(A)<32 THEN RETURN
52  ? %AR(A);: A=A+1:GOTO 51

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,
danke für deine Antwort.
Puh... das wird hart! Es geht sich um die Portierung von "Manager" eines 
Bundesligamanagers vom C64.
Da liegen natürlich alle Mannschaften als Array vor die dann abgerufen 
werden um die Spielpaarungen zu generieren. Ich glaube das wird für 
Chipbasic zu kompliziert und komplex... schade :(
Man müsste wirklich irgendwie sowas anlegen können wie beim C64 a la 
DATA und READ und per Read den String auslesen bzw. die Konstanten... 
schade!

Ich hab mir auch schon überlegt anstatt das Menü zu Beginn einen 
Bildschirm a la C64 darzustellen, sprich direkt den Editor. Aber ohne 
zeilennummern, die müsste man selber eintragen. Gespeichert wird dann 
"per hand" auf die 8 "unsichtbaren" Plätze... etc etc etc.
Nur wäre das wieder zu umfangreich umzubauen!

Nochwas: Wovon hängt die Auflösung im textmodus ab? Könnte man nicht auf 
40 Zeichen pro Zeile kommen?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine andere Möglichkeit wäre, das Array vom Anfang her auf 0-bytes zu 
durchsuchen, ist halt etwas langsamer. Und natürlich gehen auch 50 oder 
60 Zeichen/Zeile, allerdings dann nur noch monochrom (siehe 
Video-Treiber). Es sei denn, Du findest eine effizientere Methode zum 
Pixel ausgeben oder änderst das Timing und übertaktest den Controller 
auf 25MHz. Für einen "Nachfolger" hatte ich eine Zwischenplatine mit 
CPLD und einen Mega1284P verwendet, das Projekt habe ich aber inzwischen 
zugunsten eines neuen Konzepts mit dem S12XE aufgegeben.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

mal zum Verständnis:
Hätte ich 40 Zeichen pro Zeile, dann würde die effektive Zeile im Editor 
auch länger oder? Dem Parser ist es doch egal wie lang die Zeile ist 
oder?

Wo finde ich die Zeilenanzahl? Also es wird wohl kaum im Source stehen:
Zeilen = 32
:-)))

Das heißt, wenn ich den µC übertakte, reicht das schon aus?

Sorry wenn ich so nerve aber ich seh da im Moment ne menge potenzial und 
leider kann ich nicht so gut asm.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ganz so einfach ist es leider nicht. Denn beim Speichern im Editor 
werden die Zeilen schon "vorcompiliert", d.h. Schlüsselworte zu Token 
und auch Zahlen werden schon in Binärform gespeichert. Hauptgrund ist 
natürlich die Ausführungsgeschwindigkeit. Beim Zurücklesen in den Editor 
wird das Ganze Zeile für Zeile wieder in Text gewandelt. Die 
Konvertierungen erfolgen zwischen zwei 40 Byte großen Puffern, wobei 
aber nur jeweils 32 Bytes genutzt werden (können). Der gleiche Parser 
übernimmt aber auch teilweise das Auswerten von INPUT.

Wenn Du den Controller übertakten möchtest, um mehr Zeichen je Zeile zu 
bekommen, reicht es natürlich nicht, nur einen Meg1284P und einen 
anderen Quarz zu nehmen.

- Video-Timing muss angepasst werden (libmio/definitions.asm)
- Die Videoausgaberoutinen müssen angepasst werden
- Das Video-RAM muß vergrößert werden (Adressen verschieben sich)
- Die Runtime ist auf 32 Bytes lange Zeilen ausgelegt

Mehr Zeichen bedeuten entweder weniger Zeilen oder längere Programme, 
was dann natürlich auch Änderungen in weiteren Teilen (Load/Save) nach 
sich zieht. Außerdem wird hinterher keiner der Videotreiber mehr richtig 
funktionieren, es sei denn, man passt die auch alle an.

Das ist alles irgendwie machbar. Aber schon freie Zeilennummer-Eingabe 
ist mit dem von mir entwickelten Konzept unverträglich. Denn 
Zeilennummern existieren nicht als solche, sondern geben nur an, die 
wievielte Zeile gemeint ist. Ein GOTO 7 bedeutet halt nur, dass die 
Programmabarbeitung ab dem 224.Byte des Programmes fortgesetzt wird. 
Denn eine leere Zeile wird trotzdem als 32 Bytes mit Zeilenende-Token im 
ersten Byte gespeichert.
Von daher wirst Du Dein Ziel auch mit ASM-Kenntnissen ohne ein 
grundsätzliches Re-Design nur sehr schwer erreichen.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kurz gesagt:

Ich will aus einem Fiat Panda einen BMW X5 bauen und das am besten ohne 
das Chassis zu verändern?

Ok, habs verstanden... :)
Schade! Da sind halt ein paar Sachen die nicht so einfach zu ändern 
sind. Leider. Mit dem Array ist schon blöd.. Wollte einen Fußballmanager 
programmiern :(
Auch blöd ist: Wenn ich Linien zeichne, welche unterschiedliche Farben 
haben sollen, diese sich aber berühren oder nur dicht beieinander 
liegen, so vermischen sich die Farben. Ich glaube das liegt eher an der 
Blockgröße 6x8 die bestehen bleibt selbst wenn ich per PLOT ein Pixel 
setze oder?
Also:
10 PLOT 2,2,1
20 PLOT 2,3,2

beide Pixel werden rot anstatt einer blau und einer rot...

: Bearbeitet durch User
Autor: SV3ORA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
Wenn Sie die Schaltpläne und das PCB in dieser Seite sehen 
http://www.jcwolfram.de/projekte/avr/chipbasic2/hard.php sie stimmen 
nicht überein. Bitte auf die 15, 16, 17, 18 Pins des Mikrocontrollers 
beziehen. Die Sende- und Empfangssignale nicht übereinstimmen die 
Leiterplatte. Welcher Weg ist der richtige, dem Schaltplan oder die 
Leiterplatte?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt jetzt eine neue Version (1.50), hauptsächlich gibt es jetzt 
wieder die 1200 Bps als Baudrate, daneben noch einen Bugfix bei den 
Screenshots. Aus Platzgründen musste dafür die Prüfsummenberechnung auf 
der Konfigurationsseite entfallen.

Jörg

- Das mit den Pixeln ist normal bei Modus 0 und 1, wenn jedes Pixel 
seine eigene Farbe haben soll, gehen nur die Videomodi 2 und 3. Denn 
wenn ein Attribut-Byte für mehrere Pixel zusändig ist (2x2 
Pseudografikpixel im Modus 0 bzw. 8x8 Pixel im Modus 1), bleibt ja gar 
nichts anderes möglich.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg ist das technisch möglich über  ein ladbares Binär Programm 
ein Update der chipbasic2 Firmware über serial zu flashen,das man nicht 
immer an den isp rann muss(so wie der damalige Bootloader)?

Vielen Dank

Patrick

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Patrick,

Ja, das geht. Und zwar über die API-Funktion api_wpage. Die RAM-Adresse 
ist nicht mehr in in der API-Beschreibung im Y-Register, sondern liegt 
fest bei Array-zelle 512. Je Aufruf werden 256 Bytes ab dem Z-Register 
gelöscht und beschrieben. Während dieser Zeit werden keine Interrupts 
bedient. Zu beachten ist dabei, dass es gegenüber dem alten Bootloader 
damit möglich ist, das System komplett zu "zerschießen".

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal eine frage zu der FBAS Schaltung. Ich habe sie jetzt 
mittlerweile zum 2. Mal aufgebaut und ich bekomme einfach kein signal. 
Der fernseher erkennt zwar etwas und schaltet um auf schwarz aber es 
kommt kein bild.

Wenn ichnkurioser weise die masseverbindung trenne dann erkenne ich ein 
flackerndes buntes bild. Mehr nicht.

Wo kann hier der fehler sein? IC kaputt? Quarz kaputt?

Am Scope erkenne ich zwar ein signal aber es sieht alles andere als ein 
fbas signal aus.

Hiiiilfe

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss dazu sagen, dass ich das ganze per scart adapter an den 
fernseher angeschlossen habe. Kann das fbas so gar nicht funktionieren? 
Bas jedoch schon?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

es wird kein FBAS-Sinal erzeugt, sondern BAS+RGB. Ich würde folgende 
Vorgehensweise vorschlagen:

Wenn Du Pin16 des Scart-Steckers nicht beschaltest (oder den 180 Ohm 
Widerstand entfernst), solltes Du ein Graustufenbild sehen. Wenn nicht, 
Aufbau kontrollieren, insbesondere die verschiedenen Masseanschlüsse.

Wenn das Graustufenbild OK ist, Verbindung zu Pin16 herstellen. Wenn die 
RGB-Signale richtig verdrahtet sind, sollte jetzt ein Farbbild auf dem 
TV zu sehen sein.

Bei allen mir bekannten TVs muss man exlizit auf AV umschalten, damit 
man ein Farbbild bekommt. Da liegt daran, dass die Spannung für die 
AV-Umschaltung fehlt. Bei manchen schaltet die RGB-Umschaltung auch ohne 
AV um, dann entstehen oft irgendwelche "Flackereffekte".

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

schön das du auch noch da bist!! :)

Du hast mich falsch verstanden. Ich habe mir die FBAS Schaltung 
nachgebaut mit dem MC1377 IC. Die wurde ja hier von Ralf - Rainer Ratke 
vorgestellt.

Zuerst habe ich den Computer per BAS an den fernseher gesteckt. Also: 
BAS -> Cinch/Scart Adapter -> Fernseher.
Funktioniert. Ich habe ein s/w Bild.

Jetzt habe ich das FBAS Signal aus der Wandlerschaltung genauso 
angeklemmt.
Der TV erkennt zwar etwas, schaltet auf schwarz aber es kommt kein 
Bild!!!

Gruß
Dominik

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo.... habe annäherend das gleiche problem wie Alex ganz oben gehabt. 
Schwarzer linker rand auf dem bild. Nachdem ich die gemeinsame masse 
getrennt habe. Anscheinend benötigt die fbas schaltung eine seperate 
Versorgung. Na ganz toll. Dabei wollte ich sie mit auf dem Board haben.

Hätte nicjt gedacht, dass das sl kompliziert wird. Schade das der Ralf 
sich hier nicht mehr meldet.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

ich bin ja immer noch am überlegen ob man nicht irgendwie ein GLCD 
einbinden kann als TV Ersatz.
Was wäre der Computer ein Hammer, wenn er autark laufen würde und ich 
den Editor auf einem GLCD laufen lassen könnte.
Würde das theoretisch gehen? Da ja ein GLCD eben als solches fungiert 
und eigentlich keine Strings verarbeiten kann oder würde es eher mit 
einem LCD funktionieren?

Gruß
Dominik

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

habe gestern spaßeshalber mal den Computer per  YPbPr an den TV 
geklemmt. Also Bild war zu sehen! Sehr scharf sogar! Aber dennoch in s/w 
und es flackerte!
Könnte man da was am Timing machen Jörg?
ich suche nach Lösungen für Farbdarstellung ohne Scart nutzen zu müssen.

Habe jetzt mittlerweile meinen 5. oder 6. Computer aufgebaut ohne das es 
langweilig wird. Diesmal mit Onboard-Sound! Genial!

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

als LCD hatte ich damals das NEC NL3224AC35 getestet, das braucht 
einfach RGB und Sync. Eine spätere (nie veröffentlichte) Variante des 
BASIC-Computers mit Daughterboard (Mega1284P + CPLD) konnte auch u.a. 
320x240 Displays mit 8 Graustufen ansteuern, das Projekt hatte ich aber 
in einem frühen Stadium zugunsten des AX81 aufgegeben.

Wenn das Bild flackert und einen sehr starken Kontrast zeigt, kannst Du 
probieren, einen 75 Ohm Widerstand zwischen Videosignal und Masse zu 
schalten.

Am Timing kann man schon noch einiges machen, insbesondere lässt es sich 
so verstellen, dass hinterher gar nicht mehr geht ;-) Aber hier würde 
ich auch nicht zuerst den Fehler suchen, denn selbst mit meinem simplen 
CPLD-FBAS-Encoder hat das mit zwei verschiedenen TVs ohne Probleme 
geklappt.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

ja die Frage ist ob meine FBAS Schaltung eine getrennte 
Spannungsversorgung braucht. Denn erst wenn ich die Masseverbindung 
auftrenne sehe ich immerhin ein Bild. Das ist komisch! Solange aber 
keiner der Verantwortlichen der FBAS Schaltung hier antwortet sehe ich 
keine Chance auf eine Lösung :)

Zum Thema flacken: ich habe nur rot grün und blau an den TV 
angeschlossen als YPbPr Signal. Ohne Videosignal, das wird nicht 
gebraucht. Das funktionierte!! Bis eben auf das flacken und s/w.

Und wie sieht es mit einem furznormalen GLCD aus a la DIP128-6 mit dem 
beliebten KS controller?
ich meine jetzt nicht die Verwendund als handheld, sondern die 
Darstellung des Editors auf diesem GLCD.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich habe nur rot grün und blau an den TV
> angeschlossen als YPbPr Signal. Ohne Videosignal ...

Und woher soll dann die Synchronisation kommen? Irgendwelches Geflacker 
auf dem Bildschirm würde ich jetzt nicht unbedingt mit "funktioniert" 
betiteln.

Der Editor hat 23 Zeilen zu je 35 Zeichen. Wie soll das mit einem 128x64 
LCD gehen? Mit Braille-Schrift um 90 Grad gedreht käme man auf 
theoretische 21 Zeilen zu je 32 Zeichen, lesbar ist das aber nicht ;-)

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei YPbPr  brauchst du kein extra Signal mehr! Es reichen drei 
Leitungen! Aber es war eh nur zum Spaß gedacht. Ich glaube dafür müsste 
man das Timing in der Software ändern! Jedenfalls war die Bildschärfe um 
einiges besser!!

Ja ok, Thema GLCD kann man abhaken :) Naja man hätte die Editorzeilen ja 
scrollen können! :) Zumal du dann auch keine probleme mehr mit den 
ganzen TV Timing Sachen hast!

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,
Hab ne frage zum ADC.
Wenn ich das Oszi aufrufe zeigt es mir standardmäßig 5volt an obwohl nix 
anliegt. Port A liegt aber die ganze zeit auf high. Warum? Schreibe ich 
bei programmbeginn ein out 0,0 dahin dann beginnt liegt der port auf low 
und die linie liegt bei 0 volt.

Aber: lege ich jetzt 2,56 volt an dann zeigt er mir 5 volt an.

Wie bekomme ich es hin, dass bei angelegten 2.56 volt auch nur ein adc 
wert von 512 angezeigt wird und nicht 1023???

Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg ,gibt es eine Möglichkeit die xmem 64 Erweiterung mit 
Standard TTL ICS Aufzubauen, bzw hast du evtl einen Schaltplan?
Leider komm ich an den xillinx Baustein nicht ran geschweige hab ich die 
Möglichkeit die Platine zu ätzen
 Vielen Dank
Gruß Patrick

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dominik

welchen Controller verwendest Du und funktionert die Anzeige zwischen 0 
und 2,56V richtig? Evtl. stimmt die eingestellte Referenz nicht, hab im 
Moment keinen "freien" CB2, um das zu verifizieren. Vllt. komme ich im 
Laufe der Woche dazu.

@Patrick

Möglich wäre es schon, dafür müsste man den VHDL-Code in eine Schaltung 
"übersetzen". Eine Schaltung an sich gibt es nicht, da die Logik in VHDL 
geschrieben ist.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,
das wäre super!!
Ich habe den 644er. Mich wundert es halt, dass der Port A ständig auf 
high steht und ich erst mit dem DIR Befehl ihn auf Eingang setzen muss 
bevor ich das Oszi verwenden kann.

zwischen 0 und 2,56 V habe ich noch nicht getestet.

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

super Projekt! Wäre es möglich das man den Mega644 durch einen Mega2560 
ersetzt? Ich würde mir mal ne Platine zusammen basteln!.

Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg  dann werde ich mal versuchen den Code umzusetzen,
Dann hab ich noch eine Frage ,wie kann ich eine RTC am besten 
einbinden,hab noch eine pcf8583
Aus einen alten Videorecorder ,mit icomm hat das leider nicht 
funktioniert
Gruß Patrick

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Jörg...
2.56 volt am adc entsprechen 1023.
Das ist in meinem fall mies. Hab einen temp sensor angeklemmt und 12 
volt spannungsüberwachung per spannungsteiler sowie ein poti. Adc0-2

Wie bekomme ich nun 5 volt referenzspannung anstelle der 2.56 
momentan???
Hiiiiilfe

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommando zurück!
Es funktioniert!!

ich musste die Referenz per ADC($140) auf AVCC umschalten!
Verdammt bin ich doof!

ES GEEEEEHT!!!! :)

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

so, ich habe immer noch Probleme mit der blöden FBAS Schaltung. Immer 
noch kein Bild! Kann denn hier niemand helfen???? Wo ist denn der 
Entwickler der Schaltung? Muss man den CSYNC/HSYNC Jumper schließen?? 
Hiiilfe...

@Jörg
Hast du nicht noch zufällig eine FBAS Schaltung von dir rumfliegen??

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du Composite Sync brauchst, muss J2 offen sein, bei HSYNC 
geschlossen. Bei CSYNC enthält das Saignal ein Gemisch aus horizontalem 
und vertikalem Sync.

An eigenen Projekten kann ich nur das Folgende anzubieten, habe aber 
selbst seit Jahren nichts mehr damit gemacht...

http://www.jcwolfram.de/projekte/vhdl/fbas_enc/main.php

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne andere Frage Jörg...

Ich will 12 volt messen. Bzw. 10-15 volt und habe einen spannungsteiler 
genommen. 20k und 3,3k.
Normalerweise würde ich so rechnen:
ADCWert × 5 / 1024 × spannungsteilerverhältnis

Leider kann der computer ja keine kommazahlen.
Nutze ich aber das format !22 oder !44 oder was auch immer, dann kommt 
nicht der richtige wert raus. Ich müsste meine zahlen so stark ändern 
das zwar ein annähernd richtiges ergebnis kommt, der wert sicj aber 
nicht im verhältnis zur soannung ändert.

Wenn ich folgendes eingebe:
ADCWert × 5 / 102 × 71 / 10
Dann wird mir ca. 12 volt angezeigt aber wie gesagt der wert ändert sich 
kaum.

Wie kann ich das vernünftig machen???

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für solche Aufgaben gibt es den SCALE Befehl, der rechnet intern mit 32 
Bit.
SCALE Variable,Y0,Y1,X0,X,X1


Bei 3,3K und 20K liegen bei 15 Volt Eingangsspannung 2,12V am ADC-Pin 
an. Bei 2,56V Referenzspannung und 10Bit sollte das einen ADC-Wert von 
850 ergeben. Das Ganze könnte dann so aussehen
M=ADC(0)
SCALE V,0,150,0,M,850
PRINT !$16;V;"Volt"

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Jörg,
Ah ok danke...
Ja ich hab den ADMUX aus 5 volt referenz eingestellt. Ich rechne in 
meinen C Projekten immer mit 5 volt ref.

Was mir halt wichtig ist wäre eine dezimale Ausgabe: 12,4 volt
Zum beispiel. Ich teste das mal.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

funktioniert!!
Hatte mich zwar vertan, Spannungsteiler ist 22k und 3,3k aber egal...
das wäre dann anstatt 850, 401
Auf jeden Fall funktioniert es! Danke.
hab an SCALE gar nicht gedacht!

Autor: Dominik K. (kilo81)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Mahlzeit,

ich möchte Euch mal den Stand der Dinge zeigen. Ich habe etwas an der 
Hardware und der Software geschraubt. Bin aber noch lange nicht fertig.

Kompakt und modular aufgebaut lässt sich der Computer perfekt im mobilen 
Einsatz als Regel- und Steuercomputer einsetzen.
Hardwaremäßig wurden alle Schnittstellen nach außen geführt und sind 
direkt erreichbar. Ein LED Treiber sowie ein LED Baustein stellen die 
parallele Schnittstelle visuell dar.
Der Sound lässt sich per Jumper auf Intern oder Extern stellen. Einen 
Port Expander sowie eine Relaiskarte habe ich aufgebaut und erfolgreich 
getestet.

Softwaremäßig habe ich die Farben für den Schwarz/Weiß Betrieb angepasst 
und die Menüs etwas überarbeitet, da es ohne Farben zu überladen und 
unübersichtlich wirkt. Anstelle bunter Felder für die Funktionstasten 
gibts nun deutliche Bezeichnungen wie "F1=Edit".

Gruß
Dominik

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

Nur mit dem seriellen Loader funktioniert bei mir irgendwie nicht.
Ich kann Programme über die serielle empfangen und senden aber der 
Loader meldet sich jedenfalls nicht.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
och, hier ist ja nichts mehr los!
Jörg, lebst du noch?

So langsam wird es eng, was die Beschaffung der dataflash angeht.
Mittlerweile gibt es dir 81 und 41er nicht mehr. Und die erhältlichen 
liefen ja nicht erfolgreich mit dem Computer.
Was kann man jetzt tun?

Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte das Glück mein Dataflash aus einer simens gigaset-basisstation 
mit Anrufbeantworter  ausschlachten zu können. Vieleicht gibt es da noch 
möglichkeiten.

Patrick

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist ob die neuen Typen unterstützt werden. Naja wie auch 
immer. Ich hab ja noch 2 rumfliegen.

Ich habe jetzt auch endlich erfolgreich die FBAS Schaltung aufgebaut. 
Jetzt gibt es Farbe über den Bas Anschluss.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, das Projekt ist mittlerweise 7 Jahre alt. Wenn die neuen Typen 
nicht funktionieren (hat das jemand ausprobiert) ließe sich das Programm 
sicher anpassen. Es ist ja Open Source. Wichtig ist auf jeden Fall, dass 
der AT45DB081E scheinbar nicht mehr 5V-tolerante Eingänge hat. Also 
braucht man entsprechende Pegelwandlung, z.B. durch Spannungsteiler.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,
Schön das du noch da bist. Der C64 ist auch uralt und trotzdem gibts ihn 
noch. :)
Ich werde mir mal einen neuen flashbaustein bestellen und mal schauen 
was sich machen lässt. Wäre schade wenn es nicht gehen würde.

Kurze frage: die color funktion kann ja 2 parameter haben. Die farben 
wiederholen sich ja sobald man die Zahl 16 überschreitet. Wo ist das 
festgelegt?

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt habe ich noch ein merkwürdiges Verhalten festgestellt.

Ich habe einen 10 pol und eine 6 pol Wannenstecker auf dem Board für die 
ISP. Auf der 6 Pol sitzt mein MySmart USB AVR Programmer.
Auf der 10 pol ist der Dataflash verbunden. Mit einem Flachbandkabel.
Der DF wird erkannt, kann aber nicht lesen und schreiben. Das gibt nur 
Fehler. Klare Sache: Der Programmer muss dafür ab und darf nicht 
parallel angeschlossen sein.

Jetzt wird der DF nicht mehr erkannt. Erst wenn ich ihn direkt auf das 
Board stecke. Das heißt: Das Kabel ist zu lang! Kann das sein? Ist die 
ISP/SPI so anfällig bei langen Datenstrecken?

Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setze mal den spi Takt runter und schau ob es dann bei der Länge geht

Patrick

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein nicht wirklich.
Ich werde mal ein paar filter auf die leitungen bauen.
Gute Infos zu den dataflash gibt es in der atmel application note an-4

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man ey...
10 cm kabel am Dataflash und er gibt eine Fehlermeldung aus. Dataflash 
direkt auf das Board gesteckt und alles funktioniert. Das kann doch 
nicht wahr sein.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss dazu sagen, denselben DF hatte ich mal an einem anderen CB2 
Computer mit 20cm kabel und es funktionierte. Irgendwie stimmen die 
Pegel nicht.
Hab den Atmega1284 drauf mit der include von AVR und in der main die 
.org Anweisungen geändert bzw. Die neue main.asm version 1.50 genommen.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So... bräuchte echt mal Hilfe!

Ich habe festgestellt, dass aus dem MOSI Pin am Atmega nix rauskommt. Da 
liegen 0 Volt. Kann ja dann gar nicht funktionieren.

Stecke ich einen Atmega644 mit der CB2 Software drauf und messe, dann 
liegen an allen Pins 5 Volt. Auch an dem MOSI.

Versuche ich aber vom Dataflash zu laden, kommt die Fehlermeldung und 
der Mosi Pin ist wieder bei 0 Volt!

Auf meinem 2. CB Board funktioniert es tadellos! Also muss doch 
irgendwas an der Schaltung verkehrt sein. Ich weiß aber nicht was. 
Wonach soll ich gucken??

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
ich wieder...

Also:
mit einem kurzen, 5cm Kabel funktioniert es.

Bei meinem anderen Basic Computer funktioniert es aber auch mit einem 
20cm langen kabel.
Das heißt, auf dem jetzigen Board scheinen sich die Pegel irgendwo im 
Kabel zu verlieren. Sprich beim lesen/schreiben.
Warum ist das so?
Software ist die Gleiche. Hardware auch. Das flashen vom µC funktioniert 
ja auch.

Irgendwo muss sich eine Spaßbremse versteckt haben. ich weiß aber nicht 
wo!

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, Kommando zurück!
ich habe jetzt soviele Posts geschrieben, dass ich nach jedem nochmal 
nachgeguckt habe auf meinem Board.
Ich hatte eine schlechte Masseverbindung. Die ISP Wannenstecker waren 
nur an das gehäuse einer der 9 pol Buchsen angeschlossen. Die lagen zwar 
auch an Masse aber als ich die ISP/SPI dann direkt an die Masse geklemmt 
habe ging alles wieder!
Puh...

Schade das hier dennoch so wenig los ist

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

falls du noch da bist:
ich würde gerne der SPI eine weitere Geschwindigkeit zuweisen können in 
der Configpage.
Laut asm wird hier glaube ich nur getoggled bei der Auswahl, da ich ja 
nur 2 Einträge auswählen kann(5MHz und 128kHz).
Wie bekomme ich einen weiteren Eintrag rein, der mit ausgewählt werden 
kann?

Was muss ich in der library.asm unter set config for I2C and SPI ändern?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu brauchst Du ein freies Config-Bit (GPIOR1,3 oder GPIOR1,7 sollten 
gehen). Dann in der library.asm unter libmio_setconf: die SPI abhängig 
von diesem Bit konfigurieren. Und zum Schluss noch in der configpage.asm 
die Auswahl mit Tasten und die Ausgabe der gewählten Geschwindigkeit 
hinzufügen.
Das sollte reichen.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg,

so ähnlich habe ich mir das auch schon gedacht.
Kann ich denn irgendwie dieses Bit hochzählen bei jedem tastendruck und 
abhängig vom Wert im Bit die unterschiedlichen SPI Geschwindigkeiten 
anzeigen lassen?
Und wenn ich speicher dann sehe ich welcher Wert gerade das Bit hat und 
setze dementsprechend die SPI?!
Bin noch nicht so asm bewandert.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

Noch eine Frage:
Ich wollte eine zusätzliche Infoseite einbauen. Kopie von infopage.asm. 
und include dieser datei.
Da hat er aber gemeckert wegen den .org Anweisungen.
Ich habe dann den inhalt als weitere sprungmarke auf die bestehende 
infopage eingefügt. Da hat er auch gemeckert.

Sind den seiten spezielle größen zugeordnet? Wie ändere ich das, damit 
ich noch eine seite einfügen kann? Wenn ich die orgs erhöhe dann habe 
icj probleme mit der tastatur.

Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt das Problem mit dem Dataflash gelöst. Es lag wohl doch 
nicht an der Masse!

Da ich auf dem Board ebenfalls die RGB->FBAS Schaltung drauf habe, 
welche mit 12 Volt läuft, giong ich von Problemen bei der 
Spannungsversorgung aus.
Auf meinem Board arbeitete erst ein 5V Schaltregler mit 500mA.
Aufgefallen ist mir, dass der Dataflash gefunden wurde, wenn ich ein 9 
Volt Steckernetzteil mit 600mA nutzte. Nur leider konnte man dann wenig 
sehen auf dem Monitor, da die FBAS Schaltung ja 12 Volt benötigt.

Mit einem 12V Steckernetzteil und 800mA lief dann das Bild wieder aber 
der Dataflash wurde nicht gefunden.

Ich habe dann den Schaltregler gegen einen Linearregler mit 1A 
ausgetauscht. Das Verhalten wurde besser. Zusätzlich habe ich der 
Dataflash Spannungsversorgung einen eigenen Schaltregler spendiert und 
siehe da: Jetzt gibt es keine Kommunikationsprobleme mehr. Selbst mit 
den geforderten 12V.

Ich frage mich natürlich inwiefern der Dataflash nun abhängig ist von 
einem 9V, 600mA netzteil und einem 12V, 800mA Netzteil, obwohl er seine 
Spannungsversorgung aus einem 5V regler bezieht. Und ob der nun 500mA 
kann oder 1A... soviel braucht der Dataflash doch gar nicht.

****************

Zum .org Problem:
Ich habe testweise das XModem mal rausgeschmissen und dadurch in dem Org 
Bereich Platz bekommen für ein zusätzliches Menüicon + dazugehöriger 
Seite.
Spaßeshalber habe ich die Benutzeroberfläche mal dem guten alten Windows 
2 angepasst :)
Im Moment bastel ich noch weiter, sofern meine extrem geringen asm 
Kentnisse mich lassen!

@Jörg
Gibt es eine Möglichkeit das externe EEProm ähnlich wie den Dataflash 
aus dem menü heraus anzusprechen um zu sehen wieviel belegt ist?

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bezüglich SPI Geschwindigkeit ändern...
die SPI holt sich ja den Wert vom dritten Bit von r18.
ich habe testweise r18 mal raufzählen lassen und konnte so mehrere 
Geschwindigkeiten anzeigen. Es haben sich aber auch andere Werte in der 
Config geändert da ja alle über das r18 arbeiten.

ich weiß nicht was du mit GPIOR1,3 meinst? Ich habe die Version 1.45 
drauf. Für die SPI benötige ich aber kein Bit weil ich ja nicht togglen 
will sondern mindestens 4 Werte anzeigen lassen will. Theoretisch weiß 
ich wie es geht. Also in C. Ich würde einfach eine Variable nehmen und 
die hochzählen lassen. Und davon abhängig ist die SPI Geschwindigkeit.
Nur leider habe ich keine Ahnung wie ich das in asm übertragen soll.

Welches Register wäre denn dafür frei??

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit den .org Direktiven werden meistens Tabellen auf durch 256 teilbare 
Adressen gelegt. Das ist dann meist mit weniger Code und mehr 
Geschwindigkeit verbunden, da u.U. das Addieren wegfällt. In den Lücken 
zwischen den Tabellen ist dann der Code drin. Das Ganze ist halt recht 
voll, in der 1.50er Version sind insgesamt gerade mal 368 Bytes (das 
sind rund 0,56%) frei. Das ist halt im Laufe der Zeit so "gewachsen". Um 
neue Funktionen einzubauen muss man alte entfernen oder bezüglich Platz 
optimieren oder einen größeren Controller nehmen.

Auf dem EEPROM gibt es ja keine Dateien, wie soll da die 
Belegungsanzeige aussehen? Platz dafür wäre wahrscheinlich sowieso 
keiner. Aber Dich hält niemand davon ab, das in BASIC zu realisieren und 
auf einen der freien Programmplätze zu legen.
So in der Art Videomode 1 + Rechteck + farbige Punkte für Werte <> 0xFF

Zum Thema SPI-Konfiguration könntest Du zwei benachbarte Bits aus dem 
dritten Config-Byte (PCMSK0/tempreg3) verwenden. r18 ist ja nur der 
temporäre Wert während die Config-Page angezeigt wird, ansonsten ist der 
Wert über GPIOR0 verfügbar. Allerdings sind hier alle Bits belegt. Das 
zweite Config-Byte liegt in r19/GPIOR1, hier sind m.W. noch Bit 3 und 
Bit 7 frei. Bit 0-2 ist die EEPROM-Adresse und Bit 4-6 das gewählte 
Autostart-Programm. Vom dritten Config-Byte (tempreg3/PCMSK0) ist nur 
Bit 0 belegt mit der Erweiterung der seriellen Geschwindigkeiten.

Jörg

Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg,
Ja da liegt noch Arbeit vor mir.

Ich habe nun noch ein Schmankerl eingefügt. Sobald man ein Programm als 
Textdatei speichert ändert sich dementsprechend auch das Icon.
Dabei habe ich mal wieder festgestellt wie wenig Platz noch im Flash ist 
:)
Musste leider die apis dafür rausschmeißen.

Gruß
Dominik

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade... wenn ich den Border im Editor auf blau setze, gehen die 
einzelnen Programmzeilen trotzdem nach rechts bis zum Bildschirmrand und 
überlappen die Borderfarbe.
Warum ist das so?

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

eben den AT45DB081E getestet. Funktioniert nicht. Wird nicht erkannt! 
Laut Datenblatt sehe ich aber nicht, dass die nicht 5V tolerant sein 
sollen. Die In/Out's laufen mit LOW Vcc*0.3 bis HIGH Vcc+-0.6
Also das sollte funktionieren! Wobei das E in der bezeichnung auch nur 
die Revision ist.
Hilfe Jörg!!!

Nochmal zum Editor:
Trotz anderer Hintergrundfarbe der Editorzeilen und Border, ist der 
rechte Randbereich unangetastet dessen. Immer noch schwarz hinterlegt. 
wieso?
Hilfe Jörg die Zweite!!

ext. Eeproms:
Ist es viel Aufwand eine Funktion einzubinden, die 1 oder 2 oder mehr 
Programme wieder in das externe Eeprom schreiben kann?

*****

Ich habe jetzt 3 verschiedene Programmicons implementiert.
- Leeres Blatt = Kein Programm
- beschriebenes Blatt = Textdatei
- blauer Computer = BAS Programm

Außerdem lässt sich nun auf der Configpage zwischen 2 verschiedenen 
Farbschmemas umschalten. Dark und Bright. Dark ist das original Design 
und Bright das vom Screenshot. Genial :)

Wenn noch jemand Flash übrig hat, bitte her damit! :)

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Was ist bei Dir Vcc+0,6V? Die maximale Versorgungsspannung liegt bei 
3,6V und damit käme man höchstens auf 4,2V. Oder betreibst Du den 
DataFlash direkt an 5V? In meiner Schaltung habe ich eine grüne LED 
dazwischengeschaltet, um ca 3-3,3V am Flash-Baustein zu haben. Bei den 
"alten" steht im Datenblatt explizit drin, dass die Eingänge 5V tolerant 
sind, das betrifft aber nicht die Versorgungsspannung.

2. Am Ende der Editorzeilen wird das Videosignal auf 0 gesetzt 
(vidm_tvm.asm Zeile 311-> out PORT_C,const_0). Das kann man schon 
ändern, halt ein passendes Register vor der Videosausgabe mit dem 
Border-Wert laden und dann ausgeben. Die Editorzeilen werden aber nicht 
genau die gleiche Länge wie der "Rest" haben.

3. Ja, es ist viel Aufwand. Man braucht ein Auswahlmenü für mehrere 
Programmplätze, eine "Weiche" für DataFlash und EEPROM, ggf. 
unterschiedliche Bereiche für Programmsopeicher und XPOKE...
Da wäre es wahrscheinlich einfacher, auf SD-Karten umzustellen (Pages 
nur zur Hälfte beschreiben und ggf. das Wear-Levelling für den DataFlash 
rausschmeißen).

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,
stimmt du hast Recht. Das Datenblatt vom "alten" Flash zeigt nur die 
Minimalwerte an den Aus und Eingängen.
Beim neuen Typ ist bei maximal Vcc+0.6 V als Highpegel Schluss... ach 
verdammt! :(

Also eine SD Karte wäre schon was tolles. Man hätte viel mehr 
Möglichkeiten der "Datensicherung" da man eher SD Karten bekommt als den 
Flash.

Wieviel Aufwand wäre der Umbau? Unterscheiden sich die beiden Flasharten 
SD/DF sehr oder könnte man ggf. in der Config aussuchen ob DF oder SD? 
Das wäre natürlich der Luxus!

Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,
wenn du mir sagst, wie man die libdfl anpassen muss für SD Karten, dann 
versuche ich das!! SD Karte wäre soooooooo genial!!

Anbei nochmal ein paar Fotos...
Na wer kennt noch das Spiel OEL vom C64? Oder Bundesliga Manager? :)
Da ich es jetzt geschafft habe Stringarrays vernünftig zu verarbeiten, 
kann ich solche Spiele nun mühelos portieren. Ok, 95 Zeilen werden nicht 
reichen aber selbst das Problem bekommt man ja gelöst.

Außerdem noch 2 Fotos vom aktuellen Menü mit 3 verschiedenen Icons.
Und der Editor im Expertenmodus (lässt sich umschalten) Original und 
Expert. Da kommt ein wenig C64 Flair auf und man hat eine bessere 
Übersicht.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aktueller Stand... alles auf Atmega1284 Basis
Rausgeflogen sind:
- screenshot Funktion
- api Funktionen
- Speicherung der Cursorposition im Editor
- XModem
- Keyboard Testfunktion im Intro

Hinzugekommen sind:
- 3 versch. Programmicons (.bas Programm, leeres Projekt, Texdateien)
- Systempage (Keyboardlayout, Videosignal, freier speicherplatz DF, 
etc.)
- Editormodus wählbar (standart, expert)
- Menü im Windows 2 Look

Ich will und werde noch ein paar neue sachen hinzufügen die meiner 
Meinung nach das Gesamtkonzept verbessern. Dafür musste ich eben ein 
paar Sachen rauswerfen die ICH jedenfalls nicht nutze.
Schön wäre jetzt nur noch eine SD karten Unterstützung.
Wenn Interesse besteht lade ich natürlich auch die Sourcen mal hoch mit 
Doku.
Vlt wäre ein neuer Thread a la Atmega1284 dafür geeignet wenn Jörg 
nichts dagegen hat?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich kannst Du einen neuen Thread aufmachen, der hier ist eh schon 
recht lang. Denn ich werde an dem Projekt (außer Fehlerbereinigung) 
sowieso nichts mehr machen. Aber ich hätte noch 8 DataFlash-Bausteine 
AT45DB081B-RC (OVP im Gurtabschnitt) übrig, bei Interesse bitte PMail an 
mich.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm... XModem brauche ich um Programme wie CBTerm, keyboardlayout, etc. 
zu laden oder?
Dann muss ich es doch wieder mit reinnehmen.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das API brauchst Du auch. Denn die Binärprogramme nutzen auch 
Systemroutinen. Da sich die Position dieser aber bei Änderungen 
verschieben kann, gibt es das API. Das liegt an einer festen Stelle und 
enthält Sprünge zu den eigentlichen Systemroutinen. Dass es ein bisschen 
"durcheinander" aussieht liegt daran, dass neue Funktionen 
logischerweise nur ans Ende gestellt werden dürfen.

PS: Ich habe gemerkt, dass beim Source-Archiv der aktuellen Version die 
Sources für die Treiber/Binärprogramme fehlen. Das werde ich in den 
nächsten Tagen korrigieren.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh okay,
Dann schaue ich mal ob das Api noch passt mach meinen ganzen Änderungen. 
Ansonsten lasse ich die binär und Bibliothekssachen erstmal raus und 
überlege mir was anderes.

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,
kurze asm Verständnisfrage:
Ich habe im "fileman.asm", im Infobereich unter den Blöcken und Files 
eine weitere Zeile hinzugefügt, die mir anzeigt wieviele Dateien auf dem 
DF sind. (Wollte erst den freien Platz in Prozent anzeigen lassen aber 
so fit bin ich noch nicht.)
Es funktioniert soweit! Aber wenn ich nun ESC drücke um das Infofeld 
auszublenden, bleibt es stehen und im oberen Bereich taucht die 
Statuszeile vom Editor auf in der ich gefragt werde ob ich verlassen 
will ohne zu speichern.
Was ist hier passiert?
1. hängt es mit dem tempreg1 zusammen welches ich nochmals benutze?
2. wird das RETURN beim Tastendruck nicht richtig ausgeführt, weil ich 
nochmals einen CALL (call fsys_maxpage) Befehl gesetzt habe?
3. was ganz anderes?

Ich weiß, um asm zu lernen sollte man klein anfangen! :) Aber ich bin 
schon stolz, dass ich es geschafft habe mit 2 Werten zu rechnen.

    libmio_thistext
    .db 14,3,"Used: ",0    ;show message
    ldi  ctrl,0x0c    ;set format
    call  fsys_free
    push  YH      ;save free pages
    push  YL
    movw  XL,ZL      ;copy free files
    call  fsys_maxpage
    mov  XL,tempreg1
    ldi  XH,0x00
    sub XL,ZL                       ;maxpage-free
    adiw  XL,1                    ;+1
    libmio_outdez                   ;show files on DF
    libmio_thistext
    .db 255," ",0
    

fman_info_4:  ldi  XL,0x06      ;color scheme (inv. black on yellow)
    libmio_setcolor
    libmio_thistext
    .db 16,5,"   Press any key!  "0,0  ;sst cursor
    libmio_waitkey
    ret

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs hinbekommen :)

Edit:
oder auch nicht :((

Entweder stimmt das Ergebnis nicht, weil ich irgendeine Zeile 
auskommentiert habe aber ich kann wieder zurück springen

oder das Ergebnis stimmt aber sobald ich eine taste drücke spinnt der 
Computer :(

: Bearbeitet durch User
Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ne Frage bezüglich Seriellen Loader:

Ich habe jetzt die Version 1.50 auf mein 2. Board gespielt. Dort ist der 
seriel loader ja drauf und es wird nach dem Intro danach gesucht.

Schließe ich das Board jetzt an den PC an und starte mein 
terminalprogramm müsste doch eigentlich "Press Space to start" 
erscheinen oder?
Es kommt aber nichts!!
Muss ich im Configmenü irgendwas einstellen? Habe jetzt hier auf der 
Arbeit keinen Monitor um es zu testen. Dachte eigentlich das alles 
werksseitig eingestellt ist und ich nur im Terminalprogramm alles 
richtig setzen muss. Aber keine Chance. Der Loader meldet sich nicht.
Hilfe!

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab auch das hinbekommen.
Eine verbindung auf der platine war unsauber.

Serielle Verbindung funktioniert jetzt. Aber der serielle loader funzt 
trotzdem nicht. Im terminal steht zwar press space to start aber egal 
auf welcher tastatur ich space drücke, er springt nichr in das menü vom 
loader...

: Bearbeitet durch User
Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mh... basicprogramm vom cb2 an pc senden geht.
Vom pc empfangen geht aber nicht. Komisch. Xmodem geht auch nicht... 
version 1.50

Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du in der Config an pd1 und pd3 gedacht?

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Selbstverständlich.
Senden vom avr zum pc geht ja. Also textübertragung.

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@patrick
Hast du eigentlich ein paar listings von programmen oder spielen? Würde 
dann auch noch welche die tage veröffentlichen ;)

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bekomme es nicht hin Daten zu empfangen!
Ein basic Programm zum PC senden geht einwandfrei!!
Wenn ich eins empfangen will kommt nichts an.
Bei wem klappt das denn??
Und wie muss die Datei auf dem PC liegen, ist das egal? Also welches 
Format. Hilfe... das kann doch nicht wahr sein! :(

@Jörg
In Basic gabs ja immer die DIM x(y) Anweisungen. Wie würde das denn bei 
dir im gegenzug aussehen?
Grund ist: Es gibt zig alte Retro Spiele die ich gerne umsetzen möchte. 
Viele nutzen aber die Arrays eben in diesem typischen Basicformat.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Loader werde ich mir bei Gelegenheit mal anschauen. Das 
1.50er Release ist jetzt über zwei Jahre alt und bis jetzt hat sich 
niemand beschwert. Wahrscheinlich nutzt es einfach (fast) niemand.

Mit dem DIM wird es etwas schwieriger, da es nur ein Array mit fester 
Größe gibt. Deswegen lassen sich verschiedene Arrays nur über Pointer 
auf verschiedene Bereiche im Array realisieren.

Jörg

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Jörg, mach das bitte mal...
ich habe auch immer noch probleme beim Empfangen vom PC.
Auf dem RX liegen nur 0,8 Volt an... das wundert mich. Beim senden zeigt 
mein Terminal programm auch Fehler im Programmcode. Wirre Zeichen. Ziehe 
ich das serielle kabel ab liegen 5 Volt an und beim senden sind die 
Zeichen im terminal wieder normal.
Wie gesagt: Senden vom AVR zum PC funktioniert einwandfrei!! Nur 
empfangen nicht. Da weiß ich nicht mehr weiter.

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ES FUNKTIONIERT!!!!!
Ich habe nun in der Schaltung auf der RS232 Buchse Pin 2 und 3 
getauscht!
ich glaube da ist im Schaltplan etwas durcheinander geraten!

Am PC ist Pin2 Eingang (Rx) und Pin3 Ausgang (Tx)

In deinem Schaltplan hast du das aber vertauscht. So wie es bei den 
Video Anschlüssen auch war (Scart). Der DSub Anschluss im Schaltplan ist 
demnach der 9 polige MALE Stecker vom PC und nicht eine FEMALE Buchse 
die man auf die Platine lötet.

Dadurch, das der PC nämlich auf dem Pin3 sendet, muss das Signal am AVR 
auf Pin2 der 9poligen Buchse ankommen.

Das da noch kein anderer gemeckert hat wundert mich!

Egal, es läuft!! Jetzt müsste der Serielle Loader auch funktionieren!

EDIT:
SL funktioniert.. aber die Zeichen die ankommen sind nicht lesbar!!
komisch!

: Bearbeitet durch User
Autor: Dominik K. (kilo81)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und ich wieder...

Die "neuen" Dataflash mit der Bezeichnung  AT45DB081E (Revision E)
funktionieren einwandfrei!!!!

Einzige Änderung: den MOSI vom AVR kommend auf 3,3 Volt herabsenken. Das 
reicht. ich habe es testweise ebenfalls mit einer grünen LED gemacht und 
es klappt. Der DF wird erkannt, es lässt sich speichern und laden!

****************

Serieller Loader zeigt immer noch wirre Zeichen an. Alle Einstellungen 
stimmen aber. Bevor ich Pin 2 und 3 der seriellen Schnittstelle 
getauscht hatte, konnte man noch PRESS SPACE TO START lesen. Jetzt nach 
der tauschaktion nicht mehr. Jedoch funktioniert nun der serielle 
Austausch in beide Richtungen. Kurios!

***************

Habe nun mehrere Vintage Basic Spiele portieren können und es ist total 
genial! Vielleicht erstelle ich mal ein Verzeichnis mit Listings falls 
Interesse besteht.

***************

habe mir einen günstigen Video to VGA Konverter gekauft. Einfach weil 
ich mal testen wollte ob es funktioniert. Immerhin war er günstiger als 
ein 7 Zoll TFT.
Bild erscheint, wenn aber auch nur in schwarz weiß (Ich habe einen FBAS 
Konverter dazwischen). In manchen Kundenrezessionen konnte man lesen, 
dass alle mit einem Atari oder Commodore 64 dieses Problem haben. Bild 
wird in s/w dargestellt. Das liegt dann leider am Chipbasic und nicht am 
Konverter. Ich denke mal die Syncro macht hier nicht ganz mit. Schade!

***************
Anbei auch mal mein aktuelles Board mit FBAS Konverter

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BAM.... hab jetzt einen FT232 drauf und kann per Jumper zwischen RS232 
und USB wählen.
Mit USB funktioniert auch der serielle Lader einwandfrei! HA! :)

Cool, die ganzen probleme die ich hier immer schreibe, löse ich ein paar 
tage später selber!
Ist aber auch ruhig geworden hier! Wo sind denn die ganzen Abos??

: Bearbeitet durch User
Autor: Dominik K. (kilo81)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,

anbei hänge ich mal ein paar Listings von Programmen und Spielen.
In der .zip sind ein paar Chipbasic-Programme als Textdatei sowie eine 
.pdf die ich angefangen habe. Die soll später als eine Art Katalog 
dienen für Listings. Einfach mal reinschauen.
Muss dazu sagen: Einige Sachen sind natürlich WIP. Und bei anderen 
müsste man die Eingaben wie IN(1)=1 etc. gegen Tasturabfragen ändern 
wenn man keinen Joystick am Parallelport hat.

Außerdem noch der Schaltplan für den FBAS Konverter. Total simpel und 
schnell aufgebaut.

Joar, ob ich jetzt die Sourcen von dem Chipbasic mal hochladen soll 
welches ich etwas umgebaut habe weiß ich nicht. Anscheinend interessiert 
es keinen :) Sind auch eigentlich nur optische Änderungen sowie ein paar 
Features. Mehr ist leider nicht möglich wegen Platzmangel.

***

Der FT232 ist übrigens ein fertig aufgebauter Adapter von Ebay (3,50 €) 
der sich perfekt in das System integrieren lässt. Wie gesagt, SL läuft 
jetzt.
Außer: Egal ob RS232 der USB, ich kann keine Programme per XMODEM in das 
System laden. Der PC sendet zwar und der AVR flackert auch aber am Ende 
ist nichts angekommen außer wirre Zeichen auf dem Programmplatz.
Version 1.50!!! Vlt ein Bug? Oder ich bin zu doof. Wäre dann auch ein 
Bug :)

Wäre wirklich cool wenn sich nochmal welche hier melden würden.
Damals sind ja recht viele BASIC Projekte entstanden!!

: Bearbeitet durch User
Autor: Patrick M. (patrick85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mich interessiert dieses Projekt
Auf jeden Fall noch!
Ich versuche ja noch die rtc pcf8583
Irgendwie einzubinden das klappt nur noch nicht so ganz :(

Autor: Dominik K. (kilo81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was funktioniert denn nicht?
ich werde mal die DS1302 testen demnächst!

Ja das Projekt muss am Leben erhalten werden. Ich hab schon so viele 
alte Basic Programme portiert. Ist echt klasse.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt das Paket nochmal hochgeladen und hoffe, dass jetzt alles 
dabei ist. Die neue Versionsnummer kommt daher, dass ich die Releases 
praktisch komplett automatisch erzeuge und nicht die alte Version 
überschreiben wollte.

Bei mir ist ein DSUB9-Stecker am Basic-Computer und ich nehme ein 
Nullmodem-Kabel, bei dem ja RX und TX gekreuzt sind. Damit funktioniert 
bei mir jeglicher Transfer bei 1200 und 2400 ohne Probleme (für die 
andere Schnittstelle müsste ich erst Hardware zusammenbauen).

XMODEM ist NUR für Binärprogramme geeignet, Quelltext muss man via 
Loader oder Editor im normalen ASCII-Modus übertragen. Binärprogramme 
sind auch die "compilierten" BASIC-Programme, also so, wie sie im 
Speicher vorliegen.

Für die Weiterentwicklung ist es vielleicht sinnvoller, komplett auf den 
Mega1284P zu setzen, dann erübrigt sich erst mal das Thema Platz im 
Flash und im RAM.

Jörg

Beitrag #5216922 wurde von einem Moderator gelöscht.
Autor: johannes zander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der thread ist zwar alt, aber vielleicht kommt hier noch jemand vorbei 
und kann mir eine frage beantworten:
Wie schreibe ich mit print zeichen nacheinander in ein Array?
Ich habe versucht:
For x=0 to 32
esge z:? @0,x;#3;z;
next

Es wird nur ein Zeichen in das Array geschrieben.
Für ein Hilfestellung wäre ich dankbar.

Autor: johannes zander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
johannes zander schrieb:
> esge

meinte natürlich esget

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Print-Befehl arbeitet die Zeile von links nach rechts ab. Setze erst 
den Kanal, bevor Du die Position festlegst. In Deinem Beispiel wird die 
Bildschirmposition auf 0,x gesetzt und dann auf Array-Ausgabe 
umgeschaltet, wobei die Default-Position erstmal 0 ist.

Jörg

Autor: johannes zander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die schnelle Antwort. Jetzt läufts!
Ziel der Übung ist das einlesen und Darstellen der Daten von einem GPS 
Modul.
Johannes

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir einen Chipbasic2 mit AtMega644 gebaut.

Leider bekomme ich kein Bild, nur wirre Streifen. Es sieht aus, als wenn 
er nicht synced.

Nun bin ich AVR Noob und mir fehlen vermutlich ein paar Grundlagen.

Vielleicht kann mir jemand Starthilfe geben.

Ich weiß nicht genau, ob ich richtig vorgehe:

- Ich nutze Atmel Studio 7 zur Programmierung mit einem STK500
- Ich nehmen das Hex File aus dem Ordner System (120KB groß). Der Flash 
beim 644er hat ja nur 64KB. Ist das in Ordnung?
- Ich flashe den AVR, klappt auch aber dann kommen eben nur die wirren 
Bildstreifen. Grundsätzlich scheint das System zu laufen, den er 
reagiert auf Tastendruck; (die Streifen verändern sich). Ich nutze nur 
BAS Videosignal.

Nun habe ich gelernt, dass auch die Fuses eine Role spielen. Dann hab 
ich die Fuse Einstellungen für Low, high, und ext, auf die in der Readme 
angegebenen Werte gestellt. Nun kann ich den AVR aber nicht mehr 
ansprechen. Es gab auch eine Warnung, die ich einfach übergangen habe 
(irgendwas mit JTAGen geht nicht mehr, wenn Du das tust).

Habe ich den Chip jetzt kaputt geflashed?

Kann mich jemand unterstützen? Habe noch weitere AVRs, will die aber 
nicht auch noch unbrauchbar machen.

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi vergisst es,

Hatte Probleme mit dem Netzteil, deswegen hat der Quarz Probleme beim an 
schwingen. Außerdem Zahlendreher bei den Fuses.

Zum Glück kann mein Prommer AVR Fuses programmieren.

Läuft alles. Super Ding!!

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andy schrieb:
> Zum Glück kann mein Prommer AVR Fuses programmieren.

Wieso ?

Das geht doch immer mit allen ISP Programmieradaptern!

Autor: Crazy H. (crazy_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein ich hab nicht alles gelesen ... trotzdem: Respekt!
Schon mal an einen XMega384A3U gedacht? Meine 256er der Serie laufen 
alle stabil mit 64MHz und Flash gäbe es reichlich.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Schon mal an einen XMega384A3U gedacht?

Ja, an die Xmega hatte ich schon gedacht, aber letztendlich die Idee 
wieder verworfen. Ich hatte auch schon eine Lösung mit Mega1284P und 
XC9536 auf einem Daughterboard, welche dann höhere Auflösungen und auch 
VGA konnte. Das hätte aber ein komplettes Re-Design der Software 
bedeutet. Für mich ist das Projekt abgeschlossen, aber die Sourcen sind 
ja verfügbar...

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl M. schrieb:
> Andy schrieb:
>> Zum Glück kann mein Prommer AVR Fuses programmieren.
>
> Wieso ?
>
> Das geht doch immer mit allen ISP Programmieradaptern!


Ja, aber nicht wenn Du auf externen Oszillator stellt und dieser nicht 
schwingt :)

Das hab ich nicht gerafft und hab deswegen die Fuses mit meinen Prommer 
wieder auf inter gestellt.

Ich sag, ja Bin AVR Noob, aber es geht aufwärts:)

Mache mir jetzt noch ein Custom Layout und will versuchen irgendwie 
einen seriell <-> USB Wandlermodul und eine USB Tastatur dranzutackern.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

Frohes Neues Jahr!

Ich habe die menu.asm ja so angepasst, dass beim speichern eines Basic 
Programms oder Textdatei unterschiedliche Icons angelegt werden.

Was jedoch nicht klappt ist die Definierung des Typs auf dem Dataflash. 
Da wird jede Datei als BAS abgespeichert. Obwohl für die Textdateien 
doch andere Bezeichnungen angelegt sind.

Wie kann ich das ändern damit abhängig vom Programmnamen auch auf dem 
Dataflash der richtige Typ steht?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du mit SAVE speicherst, werden immer BAS (Typ 0x10) Dateien 
geschrieben. Außer Byte 12 im Header ist ein "N", dann wird eine native 
AVR-Datei geschrieben (Typ 0x18). Mehr hatte ich damals nicht 
vorgesehen, andere Dateitypen lassen sich nur mittels FCREATE erzeugen.

Wenn Du beim Speichern mehr Typen unterscheiden willst, musst Du das 
selbst implementieren. Die Funktionen zum Schreiben (fysys_bsave, 
fsys_bover) liegen in der modules/filesys.asm

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörg!

Ah okay... ich dachte es wird noch unterschieden ob beim speichern ein 
Unterstrich im Programmname ist. Wenn ja wird es als native oder text 
angegeben.

Wie was wo muss ein N im header stehen?

Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal Jörg,

ich habe das Dataflashmenü etwas angepasst und folgenden Code 
hinzugefügt:
libmio_thistext
.db 14,4,"Saved: ",0    ;show message
ldi  ctrl,0x0c    ;set format
call  fsys_maxpage
mov  XL,tempreg1
ldi  XH,0x00
adiw  XL,1
call  fsys_free
push  YH      ;save free pages
push  YL
    
sub XL,ZL
libmio_outdez
libmio_thistext
.db 14,14,"File(s)",0

Jetzt kann ich mir anzeigen lassen wie viele Dateien ich auf dem 
Dataflash gespeichert habe.
Aber: Wenn ich jetzt eine Taste drücke, startet der Computer neu anstatt 
zurück zum Menü zu gehen-
Warum?
Ich habe wie gesagt nur den oben gezeigten Code eingefügt!

Gruß
Dominik

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist nicht verwunderlich. Und zwar deswegen, weil das Y-Register auf 
den Stack gesichert aber nicht wieder abgeholt wird (pop).
Von daher stimmt die Rücksprungadresse nicht mehr und bei einem ret 
springt der Programm-Counter irgendwohin.

Die zwei Zeilen:
push  YH      ;save free pages
push  YL

sind wohl vom Kopieren übriggeblieben und müssen raus.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

ah okay! Wieder was gelernt! :)

Naja ich hab halt alles kopiert ab "call fsys_free" weil ich dachte es 
gehört mit dazu.
Weil beim Aufruf zuvor wird ja ebenfalls YH und YL auf den Stack gelegt 
und nicht durch pop abgeholt!?
Ich teste das heute Abend mal! Immerhin habe ich eine Subtraktion 
hinbekommen :)

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Weil beim Aufruf zuvor wird ja ebenfalls YH und YL auf den Stack gelegt
> und nicht durch pop abgeholt!?

Doch, weiter unten (13 Zeilen):
fman_info_2:
...
          pop XL
          pop XH
          libmio_outdez

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach bin ich blöd.... natüüürlich!
Jetzt macht das Ganze auch Sinn! Hab das total übersehen.
Danke! Muss mal meine C-Brille ausziehen!

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bezüglich speichern auf dem DF mit unterschiedlichen Formaten...
Ich habe mir das mal angeschaut aber es funktioniert irgendwie nicht.

;save file
;-------------------------------------------------------------------------
fsys_savebas:  clr  tempreg4    ;first file

fsys_save_00:  rcall  fsys_check    ;check for dataflash
    cpi  tempreg1,0x00    ;no valid FS
    breq  fsys_save_e

    rcall  fsys_fselbox4
    ldi  XL,0x10      ;BASIC
    sts  bas_partab+4,XL    ;set file type
    libmio_thistext
...

0x10 ist das BAS Programm. 0x18 steht für AVR native Programme. Änder 
ich zum testen mal XL,0x10 in XL,0x18 wird dennoch als BAS gespeichert.

Zum anderen weiß ich auch gar nicht wie ich unterscheiden soll beim 
speichern. Es muss ja abhängig sein vom Programmnamen als was 
gespeichert wird.
Naja egal.. das ist dann doch etwas zu hoch für mich

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem mit dem Neustart ist behoben.
Es lag tatsächlich an Y Register auf dem Stack :)

Was mir aufhegallen ist, auf einem DF habe ich 28 Dateien. Mir wird aber 
284 angezeigt.

Hab dann mal auf einem leeren DF eine nach der anderen Datei angelegt.
Bei 10 Dateien zeigt er mir plötzlich 11 an.
Hab ich was verkehrt gemacht in meiner Rechnung?

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsste ich mich wieder "einlesen", denn das ist schon ein paar 
Jahre her. Das habe ich aber nicht vor, für mich ist das Projekt 
abgeschlossen.
In der Dateiverwaltung war Vieles vorgesehen, aber nur das Nötigste 
umgesetzt.

Jörg

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,
Nicht schlimm... ich finde den Fehler bestimmt noch.

Hab mal mit SD Karten experimentert, bekomme es aber leider nicht hin, 
dass sie wenigstens erkannt werden.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So... Fehler gefunden!
Jetzt zeigt er exakt die Anzahl der gespeichteren Dateien auf dem 
Dataflash an. :)

Jetzt mal schauen was ich mit dem restlichen freien Platz im Flash noch 
anstellen kann.

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.