Jak sloučit proměnné?

Odpovědět
Mimco

Jak sloučit proměnné?

Příspěvek od Mimco »

Dobrý den,

občas se dostanu k programování PICAXE a narazil jsem na jeden problém (pro zkušenější je to jistě banální):

mám proměnné b0, b1,... a každá obsahuje jednociferné číslo (např.: b0=1;b1=6) a já bych je potřeboval sloučit do jedné proměnné,
která by obsahovala dvouciferné, případně trojciferné číslo (když b0=1;b1=6 tak b2=16).

Zkoušel jsem první věc, která mě napadla

Kód: Vybrat vše

b2 = b0 * 10 + b1 
a různé obdoby tohoto "výpočtu", ale bezúspěšně.

Pomůže mi někdo?

BTW, problém se týká tohoto kódu pro získání dat z $GPGGA věty:

Kód: Vybrat vše

symbol GPS = C.6
start:	
serin GPS,t4800_8,("$GPGGA,"), b0,b1,b2,b3,b4,b5,b6,b6,b6,b6,b6,b6,b7,b8,b9,b10,b10,b11,b12,b13,b14,b14,b15,b15,b16,b17,b18,b19,b20,b20,b21,b22,b23,b24,b24,b25,b25,b26,b26,b27,b28,b28,b28,b28,b28,b28,b29,b30,b31,b32,b33,b34,b35,b36,b36,b37,b38,b39
sertxd ("GMT: ",b0,b1,"h",b2,b3,"m",b4,b5,"s ",b6,b7,"°",b8,b9,",",b10,b11,b12,b13,b14," ",b15,b16,b17,"°",b18,b19,",",b20,b21,b22,b23,b24," Validita dat: ",b25," Pocet satelitu: ",b26," Nadmorska vyska: ",b28,b29,b30,b31,b32,"m ",b33,b34,b35,b36,b36,b37,b38,b39, 13,10)
pause 1000
goto start
Předem děkuji :)
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Jak sloučit proměnné?

Příspěvek od AlesH »

Myslím, že výpočet stylem "b2 = b0 * 10 + b1" je zcela v pořádku a určitě funguje. Ovšem v proměnných b0 a b1 musí být opravdu jen malá čísla a nikoliv ASCII hodnoty znaků, odpovídající těm číslům (např. "1" = 49 dekadicky v ASCII). A to je podle mne možný problém toho načítání $GPGGA. V uvedeném příkladu se do proměnných načítají ASCII hodnoty přijatých znaků (a tyto ASCII hodnoty se pak zpětně vypisují). Pokud chceš do proměnných dostat "holé" číslo, tak od ASCII hodnoty musíš odečíst dekadicky 48 (ASCII "0"), nebo se pokusit v serin (i v sertxd) použít příznaky # (např. #b0, #b1, atd). Ovšem nevím, jak se to bude chovat při načítání dlouhých znakových řetězců (jestli to půjde po jednotlivých znacích, nebo jestli to bude brát vždy 3 znaky naráz [jako jedno číslo do jedné proměnné]).
Mimco

Re: Jak sloučit proměnné?

Příspěvek od Mimco »

To AlesH:
Děkuju moc. To, že jde o uloženou ASCII hodnotu mě napadlo (a odpovídal tomu i výsledek toho, co jsem dostával ve výsledku mého výpočtu), ale už mě nenapadlo to easy řešení s odečtením 48. Opravdu děkuju :)
Odpovědět