projects:ukhas_glider_project:master
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
projects:ukhas_glider_project:master [2007/09/15 23:20] – laurenceb | projects:ukhas_glider_project:master [2008/07/19 23:33] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 51: | Line 51: | ||
Dim Printstring As String * 20 | Dim Printstring As String * 20 | ||
Dim K As Single | Dim K As Single | ||
- | Dim Iterations As Byte | + | Dim Iterations |
- | Dim Windxs(255) As Eram Byte | + | Dim Windxs(251) As Eram Byte |
- | Dim Windys(255) As Eram Byte , Placemark As Eram Byte | + | Dim Windys(251) As Eram Byte , Placemark As Eram Byte |
+ | Dim Target_es As Eram Single | ||
+ | Dim Target_ns As Eram Single | ||
Dim Lock As Bit | Dim Lock As Bit | ||
Dim Gpfloatone As Single , Gpsheading As Single | Dim Gpfloatone As Single , Gpsheading As Single | ||
Line 64: | Line 66: | ||
Dim Statuscode As Byte | Dim Statuscode As Byte | ||
Dim Heightupto As Byte , Rxenable As Byte , Servoenable As Byte | Dim Heightupto As Byte , Rxenable As Byte , Servoenable As Byte | ||
- | Dim Gpbyteone As Byte , Gpbytetwo As Byte , Telcounter As Byte | + | Dim Gpbyteone As Byte , Gpbytetwo As Byte , Telcounter |
Dim Gpintegerone As Integer | Dim Gpintegerone As Integer | ||
Dim Intcount As Integer , Timeelapsed As Integer | Dim Intcount As Integer , Timeelapsed As Integer | ||
Line 75: | Line 77: | ||
Dim Derivative As Single | Dim Derivative As Single | ||
Dim Target As Single | Dim Target As Single | ||
+ | Dim Target_e As Single | ||
+ | Dim Target_n As Single | ||
Dim Offset As Single | Dim Offset As Single | ||
Dim Windy_total As Single | Dim Windy_total As Single | ||
Line 87: | Line 91: | ||
Dim North As Single | Dim North As Single | ||
Dim East As Single | Dim East As Single | ||
- | Dim Target_e As Single | ||
- | Dim Target_n As Single | ||
Dim Store_east As Single | Dim Store_east As Single | ||
Dim Store_north As Single | Dim Store_north As Single | ||
Line 102: | Line 104: | ||
Wind_x = 0 | Wind_x = 0 | ||
Wind_y = 0 | Wind_y = 0 | ||
+ | Landcount = 0 | ||
+ | Telcounter = 0 | ||
+ | Portd.3 = 1 | ||
Waitms 100 | Waitms 100 | ||
Gpintegerone = Getadc(5) | Gpintegerone = Getadc(5) | ||
Line 112: | Line 117: | ||
Print " | Print " | ||
Start Watchdog | Start Watchdog | ||
+ | | ||
+ | | ||
| | ||
Case 1: | Case 1: | ||
Line 125: | Line 132: | ||
'Call Cutdown(1 , 4) | 'Call Cutdown(1 , 4) | ||
Print "wind records:" | Print "wind records:" | ||
- | For Gpbyteone = 1 To 255 | + | For Gpbyteone = 1 To 251 |
| | ||
Print Gpbyteone ; "," | Print Gpbyteone ; "," | ||
Line 155: | Line 162: | ||
Input #3 , Target_e | Input #3 , Target_e | ||
Print Target_e | Print Target_e | ||
- | Portd.3 = 1 ' | + | Gpfloatone = Target_ns |
- | Print " | + | If Target_n <> Gpfloatone Then Target_ns = Target_n |
+ | Gpfloatone = Target_es | ||
+ | If Target_e <> Gpfloatone Then Target_es = Target_e | ||
+ | Portd.3 = 1 | ||
+ | Print " | ||
Start Watchdog | Start Watchdog | ||
Placemark = 1 ' | Placemark = 1 ' | ||
Line 199: | Line 210: | ||
Goto Cutdownlbl | Goto Cutdownlbl | ||
End If | End If | ||
- | If Timeelapsed > 900 Then | + | If Timeelapsed > 1200 Then |
Print "Time cutdown" | Print "Time cutdown" | ||
Goto Cutdownlbl | Goto Cutdownlbl | ||
Line 220: | Line 231: | ||
Cutdownlbl: | Cutdownlbl: | ||
+ | If L > 0 Then ' | ||
+ | | ||
+ | | ||
+ | End If | ||
Call Cutdown(1 , 12) | Call Cutdown(1 , 12) | ||
Placemark = 2 ' | Placemark = 2 ' | ||
Line 226: | Line 241: | ||
Requestsecond = 1 | Requestsecond = 1 | ||
While Clearsecond = 0 | While Clearsecond = 0 | ||
- | | + | |
- | Wend | + | Wend ' |
- | Requestsecond = 0 | + | Requestsecond = 0 'it waits for a new gps before doing anything other than running off the gyro |
- | Waitus 50 | + | Waitus 50 ' the first update after this then goes into the gps lag compensation stage, but NOT YET !!!! |
Printbin #1 , Statuscode | Printbin #1 , Statuscode | ||
Line 334: | Line 349: | ||
K = Val(contents(10)) | K = Val(contents(10)) | ||
Altitude = K | Altitude = K | ||
- | If V = 0 And Altitude < 300 Then | + | If V < 0.5 And Altitude < 250 Then |
- | Servoenable = 0 | + | Incr Landcount |
Else | Else | ||
- | | + | Landcount |
- | End If ' | + | End If |
- | | + | |
- | Rxenable | + | Landcount = 5 'ie we had 5 stationary gps updates |
+ | Incr Flashcount | ||
+ | If Flashcount > 9 Then | ||
+ | Cutdownpintwo | ||
+ | Flashcount = 0 | ||
+ | | ||
+ | Cutdownpintwo = 0 ' | ||
+ | End If | ||
+ | | ||
Else | Else | ||
- | | + | If Altitude < 300 Then 'so we are moving but low |
+ | Cutdownpintwo = 1 ' | ||
+ | | ||
+ | Else | ||
+ | Cutdownpintwo | ||
+ | Rxenable = 0 | ||
+ | End If | ||
+ | Flashcount = 0 | ||
+ | Servoenable = 1 ' | ||
End If | End If | ||
| | ||
Line 357: | Line 388: | ||
Incr Arrayat | Incr Arrayat | ||
| | ||
- | | + | If Gpbyteone <> 255 Then Wind_x = Gpbyteone - 127 ' |
- | If Wind_x = 128 Then Wind_x = 0 | + | |
| | ||
- | | + | If Gpbyteone <> 255 Then Wind_y = Gpbyteone - 127 ' |
- | If Wind_y = 128 Then Wind_y = 0 | + | |
Incr Telcounter | Incr Telcounter | ||
If Telcounter > 10 Then Call Checkvoltage() | If Telcounter > 10 Then Call Checkvoltage() | ||
If Radiocts = 1 Then ' | If Radiocts = 1 Then ' | ||
Call Radiocomms() | Call Radiocomms() | ||
- | Printstring = Str(gpsheading) | ||
- | Printstring = Left(printstring , 8) | ||
- | |||
End If | End If | ||
Loop | Loop | ||
Sub Checkvoltage() | Sub Checkvoltage() | ||
+ | S = " | ||
Gpintegerone = Getadc(5) | Gpintegerone = Getadc(5) | ||
Gpfloatone = Gpintegerone | Gpfloatone = Gpintegerone | ||
Gpfloatone = Gpfloatone * 9.503 | Gpfloatone = Gpfloatone * 9.503 | ||
Gpfloatone = Gpfloatone / 1000 | Gpfloatone = Gpfloatone / 1000 | ||
- | If Radiocts | + | Printstring |
+ | S = S + Printstring | ||
+ | S = S + "," | ||
Gpintegerone = Getadc(0) | Gpintegerone = Getadc(0) | ||
Gpfloatone = Gpintegerone | Gpfloatone = Gpintegerone | ||
Gpfloatone = Gpfloatone * 4.250 | Gpfloatone = Gpfloatone * 4.250 | ||
Gpfloatone = Gpfloatone / 1000 | Gpfloatone = Gpfloatone / 1000 | ||
- | If Radiocts | + | Printstring |
+ | S = S + Printstring | ||
+ | S = S + "," | ||
+ | Printstring | ||
+ | S = S + Printstring | ||
+ | S = S + "," | ||
+ | Printstring = Str(pulses) | ||
+ | S = S + Printstring | ||
+ | Print S | ||
+ | Print #4 , S | ||
Telcounter = 0 | Telcounter = 0 | ||
End Sub | End Sub | ||
Line 391: | Line 429: | ||
While Radiocts = 0 And Gpbyteone < 30 ' | While Radiocts = 0 And Gpbyteone < 30 ' | ||
| | ||
+ | Reset Watchdog | ||
Incr Gpbyteone | Incr Gpbyteone | ||
Wend | Wend | ||
- | Print " | + | Print "UKHASC,Cutdown channel=" |
If Channel = 1 Then Cutdownpinone = 1 | If Channel = 1 Then Cutdownpinone = 1 | ||
If Channel = 2 Then Cutdownpintwo = 1 | If Channel = 2 Then Cutdownpintwo = 1 | ||
Line 405: | Line 444: | ||
Sub Radiocomms() | Sub Radiocomms() | ||
- | Print " | + | If Statuscode = 0 Then |
- | Print #4 , "UKHAS>" | + | S = " |
+ | Else | ||
+ | S = "UKHAS<" | ||
+ | End If | ||
+ | S = S + Contents(3) | ||
+ | S = S + Contents(4) | ||
+ | S = S + Contents(5) | ||
+ | S = S + Contents(6) | ||
+ | S = S + Contents(10) | ||
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
- | Print "," | + | Printstring = Str(error) |
- | Print #4 , Error; | + | |
+ | S = S + Printstring | ||
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
| | ||
- | Print "," | + | Printstring = "," |
- | Print #4 , "," | + | S = S + Printstring |
- | Printstring | + | Gpbyteone |
- | Print "," | + | S = S + "*" |
- | Print #4 , "," | + | |
- | | + | S = S + Printstring |
- | Print "," | + | Print S |
- | Print #4 , "," | + | Print #4 , S |
End Sub | End Sub | ||
</ | </ | ||
- |
projects/ukhas_glider_project/master.1189898435.txt.gz · Last modified: 2008/07/19 23:32 (external edit)