Hallo Robert,
Das ist genau das Problem. Leider habe ich noch nichts entscheidendes in der Hilfe von Bascom gefunden.Jetzt geht's noch darum, daß er die Daten auch anlegt. Ich schau noch, ob ich was find'.
Zitat von albundy
Die Befehlsfolge muß definitiv richtig sein, so steht's auch im Help:
LDI ZL, Low(lbl * 2)
LDI ZH , High(lbl * 2)
LPM ; get data into R0
Lbl:
Jetzt geht's noch darum, daß er die Daten auch anlegt. Ich schau noch, ob ich was find'.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo Robert,
Das ist genau das Problem. Leider habe ich noch nichts entscheidendes in der Hilfe von Bascom gefunden.Jetzt geht's noch darum, daß er die Daten auch anlegt. Ich schau noch, ob ich was find'.
Blöder geht's nicht: Versuch mal, statt ".DB" --> "Data" zu schreiben.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
hast du das ausprobiert, oder nur geraten ?Blöder geht's nicht: Versuch mal, statt ".DB" --> "Data" zu schreiben.
beim Kompilieren der Lib kommt "Error found"
in der Err steht dann "Unknow ASM mnemonik [Data 0x14,0x7F ...
Gemischt Sache, beim inline-Assembler $ASM--->$END ASM kennt er das .DB dafür nicht, dafür akzeptiert er das "data"
*murmelmurmel*
woher weißt du, daß er wirklich Platz für DB reserviert ? Kommt hinten noch was nach ?
Will nix behaupten, könnt' auch ein Bug sein, daß er Platz freimacht, aber nix reinschreibt.
Mach vielleicht wieder ".DB" rein und übersetz den ganzen Kram und poste dann das Hex-File, ich möcht das mal genau sehen.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo Robert,
hier das Hex (als Txt) mit 60 eingebundenen Datenbytes.
Schau, schau. Der Kerl reserviert (hinten) die 60 Bytes, schreibt aber keinen Pieps rein. (anbei der Assembler dazu).
d.h. er erkennt ".DB" eigentlich richtig als das, was es sein soll, vergißt aber auf den Inhalt. Oder es ist ein "hidden feature" bzw "non-documented restriction", wie man so sagt.
Das müßte man reklamieren, allerdings dürfte das die 1.11.7.4 Bascom Version gewesen sein, da werden die keine Support bieten.
Poste vielleicht prog.bas und prog.lib (im aktuellen Status), dann kann ich es mit der neueren Version probieren, mal sehen.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
"Und wenn man nicht weiterkommt, wechselt man einfach die Programmiersprache, oder ? "
erst nach dem kauf von Bascom merkt man, das man hinters licht gführt wurde und falsche versprechungen in der beschreibung gemacht werden.
aber es gibt immer wieder unseriöse artikelangebote die im angebot verschönt werden. dahe habe ich Bascom wieder verkauft. man muss auch im roboterprojekt weiterkommen und sich nicht mit einer unvollkommenden sprache herumschlagen, dafür ist das geld zu viel.
man muss den mut haben konsequenzen zu ziehen und nicht feige sein. das machen ausser mir sehr wenige im forum und auch zu fehlern stehen bzw einzugestehen. dei anbieter von schlechten artikeln müssen das zu spüren bekommen.
mfg pebisoft
Hallo Robert,
danke für deine Unterstützung, ich habe das Problem heute gefunden.
Der Compiler für die Lib, ignoriert einfach die sonst für Assembler übliche Schreibweise ".db 0x14, 0x7E ...".
Wenn man stattdessen ".db $14, $7E ..." schreibt wird alles wie gewünscht umgesetzt.![]()
Ich habe das mit Version 1.11.7.4 und 1.11.7.9 getestet.
Leider kommt dabei keinerlei Fehlermeldung, was die Suche nicht gerade vereinfacht hat.
@Pebi, du gehst mir absolut auf den Geist. Deine Rum-Motzerei ist absolut überflüssig und interessiert hier niemanden. Wolltest du nicht spazierengehen, massig Kohle verprassen und deine Frührente geniessen ? Warum tust du das nicht ? In Timbuktu ist eh grad' Frühling !
@Frank: Ich bitte um Verwarnung.
*räusper*
@Albundy:
Seltsames Phänomen: Ich konnte erst den ganzen Library-Zinnober garnicht nachvollziehen, weil er sich geweigert hat "GRTXT" als Label zu finden. Zusammengefaßt: rumgewurstelt--> Namen geändert, sieh da: es geht.
Und, vielleicht liegt's an der Version, das kannst du ja dann vergleichen, er hat auch die "DB" richtig befüllt.
Anbei .bas, .lib und .asm
Code:$regfile = "m8535.dat" $crystal = 8000000 $lib "Test.lib" $external Bauch Declare Sub Bauch Config Porta = Output Porta = $ff Call Bauch Do Loop EndCode:[bauch] bauch: ldi zh,High(Da_ * 2) ldi zl,Low(Da_ * 2) ld r22,z *out Porta,r22 ret Da_: .db &H14,&H7F,&H14,&H7F,&H14,&H00 [end]Zwecks Erklärung bitte den Wahrsager deiner Wahl zu bemühenCode:.NOLIST .INCLUDE "M8535DEF.INC" .LIST INIT: RJMP L_0x002A INT0ADDR_: RETI INT1ADDR_: RETI OC2ADDR_: RETI OVF2ADDR_: RETI ICP1ADDR_: RETI OC1AADDR_: RETI OC1BADDR_: RETI OVF1ADDR_: RETI OVF0ADDR_: RETI SPIADDR_: RETI URXCADDR_: RETI UDREADDR_: RETI UTXCADDR_: RETI ADCCADDR_: RETI ERDYADDR_: RETI ACIADDR_: RETI TWIADDR_: RETI INT2ADDR_: RETI OC0ADDR_: RETI SPMRADDR_: RETI L_0x002A: LDI r24,0x5F OUT SPL,r24 LDI YL,0x40 LDI ZL,0x30 MOV r4,ZL LDI r24,0x02 OUT SPH,r24 LDI YH,0x02 LDI ZH,0x02 MOV r5,ZH LDI ZL,0xFE LDI ZH,0x01 LDI XL,0x60 LDI XH,0x00 CLR r24 L_0x0048: ST X+,r24 SBIW ZL,0x0001 BRNE L_0x0048 CLR r6 LDI r24,0xFF OUT DDRA,r24 LDI r24,0xFF OUT PORTA,r24 RCALL L_0x0072 L_0x005A: RJMP L_0x005A .DB 0xF8, 0x94 ;.. L_0x005E: RJMP L_0x005E L_0x0060: SBIW ZL,0x0001 BRNE L_0x0060 RET .DB 0x68, 0x94, 0x62, 0xF8, 0x08, 0x95, 0xE8, 0x94 ;h.b..... .DB 0x62, 0xF8, 0x08, 0x95 ;b... L_0x0072: LDI ZH,0x00 LDI ZL,0x7C LDD r22,Z + 0 OUT PORTA,r22 RET .DB 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00 ;....
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen