-
Alles, was seinen Zweck erfüllt und funktioniert, ist schon mal gut.
Geld verdienen: ATMEL verdient, MIcrochip verdient, Sharp verdient,.... Wenn mit den Zeugs, was wir so brauchen, nix zu verdienen wäre, gäb' es das alles auch nicht und wir würden durch die Finger schauen. Und mit der Software is es halt auch so. Die ganzen "Open-Source" Vereinigungen sind meist auch nur im Anfangsstadium wirklich "free".
Wenn erst mal einer richtig Arbeit reinsteckt, will er auch Kohle haben, ist ja verständlich.
-
Na, da hat sich ja doch einiges getan. Diese Threads entwickeln eine gehörige Eigendynamik.
@MArco78:
Um noch einmal auf den einen Punkt zurückzukommen, den ich in meinem Ursprungsposting aufgeführt hatte ("Variableninitialisierung"):
Ich hatte wirklich diesen Code verwendet
CONST Vers_Info = "0.1"
DIM Teststring AS STRING *15
Teststring = "Version " + Vers_Info
Also Vers_Info als Konstante deklariert und den Teststring damit und dem Wert "Version " gefüllt. Wenn ich dann diesen Teststring per I2C ausgebe erscheint ein bisschen Datenmüll. Ein vorangestelltes Teststring="" unterbindet das. Schon komisch, oder?
-
Ich hab' mir das mal angesehen, und aus der assemblerliste ist eigentlich kein Fehler erkennbar (auch kein unterschied durch = "")
(print statt LCD, das ist aber wurst)
Müßte man wirklich mit dem AVR-Studio debuggen.
Oder natürlich, es ist in der Gesamtsource irgendwas (aber was ?) ganz Schräges drinnen.
Wenn wer gucken will:
Code:
Const Vers_info = "0.1"
Dim Teststring As String * 15
;------------------------------------------------
; teststring = ""
;------------------------------------------------
LDI XL,0x60
LDI XH,0x00
CLR r24
ST X,r24 ; einfach eine NULL setzen
;------------------------------------------------
: Teststring = "Version " + Vers_info
;------------------------------------------------
LDI XL,0x60 ; teststring lo
LDI XH,0x00 ; hi
LDI ZL,0x04 ; "Version" lo
LDI ZH,0x01 ; hi
CALL L_0x00F0 ; from flash to SRAM (X)
;------------------------------------------------
LDI XL,0x60 ; teststring lo
LDI XH,0x00 ; teststring hi
CALL L_0x00B2 ; set X to stringtop
;------------------------------------------------
LDI ZL,0x0E ; "0.1" lo
LDI ZH,0x01 ; hi
CALL L_0x00F0 ; from flash to SRAM (X)
;------------------------------------------------
LDI XL,0x60 ; teststring lo
LDI XH,0x00
CALL L_0x00C4 ; print string
CALL L_0x00D0 ; print crlf
CLI
;------------------------------------------------
;---- END
;------------------------------------------------
L_0x00B0:
RJMP L_0x00B0
L_0x00FC:
LPM
ADIW ZL,0x0001
AND r0,r0
RET
;------------------------ literal
L_0x0104:
.DB 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20 ;Version
.DB 0x00, 0x00, 0x30, 0x2E, 0x31, 0x00 ;..0.1.