My very simple working code:
Code:
OSCCON=%01110000 ' SET TO 8 MHZ internal oscillator
DEFINE OSC 08 ' 8MHZ clock speed
DEFINE HSER_BAUD 9600 ' Set baud rate
DEFINE HSER_RCSTA 90h
DEFINE HSER_CLROERR 1 ' Clear overrun error upon
DEFINE HSER_TXSTA 24h ' Set transmit status and control register
DEFINE HSER_SPBRG 51 ' 9600 Bauds
RPM var word
SPEED var word
TPS var byte
volts var byte
adc1 var word
adc2 var word
prefix1 var byte
prefix2 var byte
prefix3 var byte
prefix4 var byte
rpm = 3800
speed = 60
tps = 10
volts = 122
ADC1 = 512
ADC2 = 200
Prefix1 = 22
Prefix2 = 0
Prefix3 = 0
Prefix4 = 0
main:
pause 500
hserout [Prefix1,Prefix2,Prefix3,Prefix4,dec5 rpm, dec3 speed, dec3 TPS, dec3 volts, dec4 adc1, dec4 adc2]
goto main
end
Code:
Sub Process_Globals
Dim AStream As AsyncStreams
Dim Incoming As String
Dim RPM As Int
Dim SPEED As Int
Dim TPS As Double
Dim VOLTS As Int
Dim ADC1 As Int
Dim ADC2 As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("2")
If AStream.IsInitialized = False Then
AStream.InitializePrefix(Main.Serial1.InputStream, False, Main.Serial1.OutputStream, "AStream")
End If
Update_Display
End Sub
Sub AStream_NewData (Buffer() As Byte)
Log( BytesToString(Buffer, 0, Buffer.Length, "ISO8859_1"))
Incoming = BytesToString(Buffer, 0, Buffer.Length, "ISO8859_1")
RPM = (Incoming.SubString2(0,5))
SPEED = (Incoming.SubString2(5,8))
TPS = (Incoming.SubString2(8,11))
VOLTS = (Incoming.SubString2(11,14))
ADC1 = (Incoming.SubString2(14,18))
ADC2 = (Incoming.SubString2(18,22))
Update_Display
End Sub
Bookmarks