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.







Zitieren

Lesezeichen