serial data communication, and calculation.?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nimisha
el 19 de Mzo. de 2016
Comentada: Star Strider
el 19 de Mzo. de 2016
p = serial('COM6');
fopen(p)
d = 0
for i = 1:1000
s = 0
s = fgets(p)
t = 1
d=(s-t)
if d == 0
s = 'o'
elseif d == 1
s = 'u'
elseif d == 2
s = 'w'
elseif d == 3
s = 'd'
elseif d == 4
s = 'y'
else
end
end
When i run this code, i am getting following output,
d = 50 12 9
It is obviously wrong. d value should be constant, as i am receiving serial data as either 1 or 2 or 3 or 4 or 5 numerics only.
So, difference will be 0 or 1 or 2 or 3 or 4 respectively.. What is error in code writing.?
0 comentarios
Respuesta aceptada
Star Strider
el 19 de Mzo. de 2016
From the documentation, fgets (serial) returns a line of text from the serial device. The way I read your code, ‘d’ is subtracting 1 from the ASCII representation of the number ‘s’ represents.
See if:
d = (str2num(s) - t)
gives you the result you want.
Note that I cannot test this.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!