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.