logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom+AVR i odbierane znaki ASCII

monokrysztal12 11 Wrz 2011 20:10 2365 4
REKLAMA
  • #1 9917286
    monokrysztal12
    Poziom 13  
    Witam,
    Mam pytanie, czy jak w procesorze, którym odbieram dane wysyłane przez inny procesor przez układ UART, zrobię tak:

    zmienna_byte = inkey()



    to w zmiennej będę miał kod ASCII odpowiadający danemu znakowi? Np. wyślę przez RS232 znak a to będzie w zmiennej liczba 97 [ASCII-"a"]?

    Natomiast jak zrobię tak:


    zmienna_typu_string = inkey()



    to mi program zamieni automatycznie na znak Ascii odpowiadający temu kodowi, czyli jak był wysłany kod np. 97[a] to otrzymam literę w zmiennej "a"?

    czyli np. nie muszę robić tak:

    zmienna_typu_string = inkey()
    zmienna_typu_string = Chr(zmienna_typu string)
    


    bo jest to już wcześniej robione automatycznie?

    Dziękuję za odp.
  • REKLAMA
  • Pomocny post
    #2 9917640
    mirekk36
    Poziom 42  
    Nic nie jest wcześniej robione automatycznie a także ty nie musisz robić żadnych takich sztuczek cyrkowych jak to podałeś w ostatnim przykładzie.

    W obydwu przypadkach albo za każdym razem bez żadnych dodatkowych czynności odbędzie się ta sama prosta operacja.

    Zarówno do zmienna_byte jak zmienna_typu_string trafi dokładnie ta sama wartość czyli 97 czyli kod ASCII litery "a"

    Twój problem ze zrozumieniem tego zagadnienia związany jest z tym, że zaczynając od końca jakby, nie przeczytałeś o tak podstawowej rzeczy w helpie bascoma jak typy zmiennych, jakie mogą być itd. Dlatego polecam doczytać na temat typów, bo bez tego co i rusz będziesz miał takie zagwozdki.
  • REKLAMA
  • #3 9917742
    monokrysztal12
    Poziom 13  
    Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja:
    Cytat:
    IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna IF zmienna_byte = 97 then.....
  • REKLAMA
  • Pomocny post
    #4 9918007
    mirekk36
    Poziom 42  
    monokrysztal12 napisał:
    Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja:
    Cytat:
    IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna IF zmienna_byte = 97 then.....

    O to to, właśnie dobrze rozumiesz ;) teraz. A to czy taki bajt będzie się traktować w dalszej części programu jako string czy jako pojedynczy bajt to zależy od kontekstu tego co robisz albo od potrzeb pewnych funkcji, które po prostu wymagają takiego a nie innego typu danych. Dlatego poznanie typów danego języka na początku (każdego języka) to podstawa podstaw ;)
  • #5 10379347
    monokrysztal12
    Poziom 13  
    Dziękuję za pomoc.
REKLAMA