Blue72
19.06.2013, 00:51
Hallo,
ich hatte das Problem schon im Bascom Forum gepostet aber leider keine Antwort bekommen.
Nun hoffe ich das hier evtl.jemand ist der mir hier weiterhelfen kann.
Zum Problem: Das Modul lässt sich initialisieren mit dem senden von einem "E", es gibt auch ein "E" zurück.
Wenn ich jetzt z.B. Kommandos senden will, bekomme ich immer "Bad command" zurück.
Am Terminal (ohne µC) funktioniert das VDrive3 ohne Probleme.
Hier der Testcode. Die langen Pausen sind absichtlich so gewählt:
$regfile = "xm128a4udef.dat"
$crystal = 32000000
$hwstack = 128
$swstack = 128
$framesize = 128
Config Osc = Enabled , 32mhzosc = Enabled , 32khzosc = Disabled
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
Config Priority = Static , Vector = Application , Lo = Enabled
Config Clock = Soft , Rtc = 1khz_int32khz_ulp
$lib "xmega.lib"
Config Com5 = 9600 , Mode = 0 , Parity = None , Stopbits = 1 , Databits = 8
Open "COM5:" For Binary As #5
On Usarte0_rxc Rxc_isr_usarte0
Enable Usarte0_rxc , Lo
Enable Interrupts
Config Eeprom = Mapped
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Porta , Ce = 5 , Ce2 = 6 , Cd = 2 , Rd = 3 , Reset = 1 , Enable = 4
Waitms 100
Initlcd
Setfont Font5x6
Dim Received_chr As Byte
Dim Tmp_str As String * 30
Dim Received_str As String * 30
Cls
Lcdat 1 , 1 , "Initialisierung VDRIVE3"
Wait 5
Print #5 , "E" ; Chr(13)
Wait 5
Lcdat 2 , 1 , "IPA"
Print #5 , "IPA" ; Chr(13)
Wait 5
Lcdat 3 , 1 , "ECS"
Print #5 , "ECS" ; Chr(13)
Wait 5
End
Rxc_isr_usarte0:
Received_chr = Inkey(#5)
If Received_chr = Chr(13) Then
Received_str = Tmp_str
Tmp_str = ""
Else
Tmp_str = Tmp_str + Chr(received_chr)
End If
Return
$include "font5x6.font"
Und hier die Antworten im Terminal:
Ver V2DAP2.0.0-SP1 On-Line:
Device Detected P2
No Upgrade
D:\>
E
D:\>
Bad Command
D:\>
Bad Command
D:\>
Hat hier vielleicht jemand einen tip für mich ?
Gruß
Blue
ich hatte das Problem schon im Bascom Forum gepostet aber leider keine Antwort bekommen.
Nun hoffe ich das hier evtl.jemand ist der mir hier weiterhelfen kann.
Zum Problem: Das Modul lässt sich initialisieren mit dem senden von einem "E", es gibt auch ein "E" zurück.
Wenn ich jetzt z.B. Kommandos senden will, bekomme ich immer "Bad command" zurück.
Am Terminal (ohne µC) funktioniert das VDrive3 ohne Probleme.
Hier der Testcode. Die langen Pausen sind absichtlich so gewählt:
$regfile = "xm128a4udef.dat"
$crystal = 32000000
$hwstack = 128
$swstack = 128
$framesize = 128
Config Osc = Enabled , 32mhzosc = Enabled , 32khzosc = Disabled
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
Config Priority = Static , Vector = Application , Lo = Enabled
Config Clock = Soft , Rtc = 1khz_int32khz_ulp
$lib "xmega.lib"
Config Com5 = 9600 , Mode = 0 , Parity = None , Stopbits = 1 , Databits = 8
Open "COM5:" For Binary As #5
On Usarte0_rxc Rxc_isr_usarte0
Enable Usarte0_rxc , Lo
Enable Interrupts
Config Eeprom = Mapped
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Porta , Ce = 5 , Ce2 = 6 , Cd = 2 , Rd = 3 , Reset = 1 , Enable = 4
Waitms 100
Initlcd
Setfont Font5x6
Dim Received_chr As Byte
Dim Tmp_str As String * 30
Dim Received_str As String * 30
Cls
Lcdat 1 , 1 , "Initialisierung VDRIVE3"
Wait 5
Print #5 , "E" ; Chr(13)
Wait 5
Lcdat 2 , 1 , "IPA"
Print #5 , "IPA" ; Chr(13)
Wait 5
Lcdat 3 , 1 , "ECS"
Print #5 , "ECS" ; Chr(13)
Wait 5
End
Rxc_isr_usarte0:
Received_chr = Inkey(#5)
If Received_chr = Chr(13) Then
Received_str = Tmp_str
Tmp_str = ""
Else
Tmp_str = Tmp_str + Chr(received_chr)
End If
Return
$include "font5x6.font"
Und hier die Antworten im Terminal:
Ver V2DAP2.0.0-SP1 On-Line:
Device Detected P2
No Upgrade
D:\>
E
D:\>
Bad Command
D:\>
Bad Command
D:\>
Hat hier vielleicht jemand einen tip für mich ?
Gruß
Blue