application keeps crashing

kapil
hello 
 i m using arm9 s3c2440 kit.using modbus protocol in vb .net2005 i m
writing  code for serial communication with other controller where i m
setting value in its register for driving a motor.there also exists a RS232
to RS485 converter between my arm9 board and controller.

Now when i compile my code n deploy the application over arm board n sets
the value using modbus array then the value does get set n motor also get
started with that frequency,but s soon as motor gets started after few
seconds may b 5-10 the application crashes,and connection between arm board
and pc which is through ACTIVE SYNC also breaks.I wanted to write random
values of freq on controller 1 after the other,which is not happening due
to crash.


 can some1 plzz tell me what the problem could be ??? 


thanks in advance 

Kapil

kapil
i forgot to mention that my board is s3c2440 mini

Kapil

Edje11
Sounds as an power surge to me.
Try you app with the motor disconnected.

TheSergon13
Without the application's code is almost impossible to answer something
useful... If your application crushes, of course you have an error on you
code, even if it's caused by hardware... your application should support
it.

Sérgio

kapil
hi,
thanks for reply.

@Edge11 :- yes thats my thaught too but dont know how to cross check the
thing.so did tried without motor on simulator and the results are opposite
that is this time it does not crash.


@TheSergon13 :- well here is app code that i m trying......

for conneting the ports....

Private Sub Connect_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdConnect.Click
        If SerialComm.IsOpen Then
            SerialComm.Close()
        End If
        Try 'Try catch for exception handling
            With SerialComm
                .PortName = "COM1"
                .BaudRate = 9600
                .Parity = IO.Ports.Parity.None
                .DataBits = 8
                .StopBits = IO.Ports.StopBits.Two
            End With
            SerialComm.Open()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try 

AND for driving the motor using modbus structure is

        gModFrame(0) = &H1  ' Slave address
        gModFrame(1) = &HF  ' Write multiple coils
        gModFrame(2) = &H0  ' Start address of coil
        gModFrame(3) = &H0
        gModFrame(4) = &H0  ' No.of coils to write
        gModFrame(5) = &H20 ' 
        gModFrame(6) = &H4  ' No. of bytes
        gModFrame(7) = &H7C ' Control word data lower order 8-1
        gModFrame(8) = &H4  ' Speed reference Motor started with 0 freq.
higher order 16-9
        gModFrame(9) = &H0  ' Speed reference Motor started with 0 freq.
        gModFrame(10) = &H4 

        Call CRC_Calc(11)
        gModFrame(11) = Convert.ToByte((gCRC_Val And 255)) ' Low byte CRC
value
        gModFrame(12) = Convert.ToByte((gCRC_Val >> 8)) ' High byte CRC
value

        Try
            If (gSerialComm.IsOpen) Then
                gSerialComm.Write(gModFrame, 0, 13)
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        Array.Clear(gModFrame, 0, gModFrame.Length)
        Call Delay() 'Delay function called so that responce from Slave is
received
    End Sub


could u plz help me with the delay part too i've read abt it in a pdf acc
to which delay should be 3.5 char long which approx to 4ms at 9600 baud.but
currently i'vr written a random code which is

    Private Sub Delay()
        Dim i, j As New Integer
        Timer1.Enabled = True
        For j = 0 To 5 Step +1
            For i = 0 To 16000 Step +1
            Next i
        Next j
    End Sub
i also tried using timer control but that didnt go as expected

thanks in advance
Kapil

kapil
1 thing that forgot inform is whenevr the app crashes then there is only 1
option to come back in editing mode in code by manually disconnect or
stop.and from this point onwards the connection between arm board n my pc
also gets break (which is using active sync s/w) n gets too much of time
rather rebooting of arm board and some times pc too.

Kapil

TheSergon13
Hi Kapil,

I'm not very good at vb, and I could not figure out the error. My
suggestion is to use the debugger to and see what's failing, or use a label
and keep printing status messages to it. When it crashes, you will see
where it stopped (Don't use messageboxes, use fast methods).

About the delay, the method you used is very inaccurate 'cause the time
depends on the actual processor activity :)
I had the same problem sometime ago and I solved it with a dll in C and
exporting the Sleep function.
But to you, the best way really is to program a Timer. Be careful 'cause
you're using small time intervals, and it is necessary a little time to
execute the code + time interval. If needed reduce the timer interval.

Regards
Sérgio