Üdv!
A gondom a következő: string formátumban megadott HEX értéket szeretnék egy az egyben átadni egy portnak.
Milyen módon lehet elérni azt, hogy a string formátumban lévő 1byte-nyi érték (pl.: E5) decimális (vagy bármilyen numerikus) értékké alakuljon?
Köszi a válaszokat!
HP
HEX to DEC konverzió
Re: HEX to DEC konverzió
Itt van 2 oda vissza konvertáló fügvény:
ezeket hívod a loop-ból.
Kód: Egész kijelölése
// Converting from Hex to Decimal:
// NOTE: This function can handle a positive hex value from 0 - 65,535 (a four digit hex string).
// For larger/longer values, change "unsigned int" to "long" in both places.
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
// Converting from Decimal to Hex:
// NOTE: This function can handle a positive decimal value from 0 - 255, and it will pad it
// with 0's (on the left) if it is less than the desired string length.
// For larger/longer values, change "byte" to "unsigned int" or "long" for the decValue parameter.
String decToHex(byte decValue, byte desiredStringLength) {
String hexString = String(decValue, HEX);
while (hexString.length() < desiredStringLength) hexString = "0" + hexString;
return hexString;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
uint8_t num = hexToDec("0xFD");
Serial.println(num);
}
void loop() {
// put your main code here, to run repeatedly:
}
Re: HEX to DEC konverzió
Köszönöm kolléga Úr!
Én is valami hasonló megoldásra jutottam. Mondjuk a Tiéd lényegesen szebb köntösben van
Az a helyzet, hogy én nemigen erőltettem ezidáig az arduino mint programozó köznyezet használatát, de mostmár van tapasztalatom is, hogy miért nem használom.
A BASCOMban csak egy HEXVAL függvényt kell alkalmazni erre a feladatra...
Borzasztó, hogy mennyire körülményes ennek a felületnek a használata.
Vagy csak én vagyok már nagyon elkényelmesedve a BASCOM több éves használata után?
Még jobban beleásom magam a LunaAVR-be és akkor kb mindenre képes leszek.
Én is valami hasonló megoldásra jutottam. Mondjuk a Tiéd lényegesen szebb köntösben van
Az a helyzet, hogy én nemigen erőltettem ezidáig az arduino mint programozó köznyezet használatát, de mostmár van tapasztalatom is, hogy miért nem használom.
A BASCOMban csak egy HEXVAL függvényt kell alkalmazni erre a feladatra...
Borzasztó, hogy mennyire körülményes ennek a felületnek a használata.
Vagy csak én vagyok már nagyon elkényelmesedve a BASCOM több éves használata után?
Még jobban beleásom magam a LunaAVR-be és akkor kb mindenre képes leszek.
Re: HEX to DEC konverzió
Máskor ne az arduinos fórumban teddfel a kérdésedet, ha bascomos megoldást vársz!
Re: HEX to DEC konverzió
Félre értettél.
Arduinós a kérdés (tudom merre vagyok arcal előre).
A bascomot csak példának hoztam fel az arduino nyelvezetével szemben.
Mindenesetre segítettél (mint mindíg), köszönöm.
Arduinós a kérdés (tudom merre vagyok arcal előre).
A bascomot csak példának hoztam fel az arduino nyelvezetével szemben.
Mindenesetre segítettél (mint mindíg), köszönöm.