Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Bascom] Konwersja zmiennej word do byte

MES Mariusz 18 Jun 2010 16:35 3781 5
  • #1
    MES Mariusz
    Level 36  
    Witam.

    W pewnym miejscu programu potrzebuję zamienić zmienną word w zmienną byte, (chociażby po to by móc ją zapisać za pomocą polecenia writeeeprom w pojedynczej komórce pamięci eeprom / nie marnować pamięci eeprom).

    Na początku obliczenia wykonywane są na dużych liczbach - Getadc dla przetwornika 10 bit zwraca wartość 0...1023 (word) ale różnica powinna się zmieścić w zmiennej typu byte. Chodzi o kalibrację dzielników dołączonych do wejść pomiarowych ADC w Atmega16.

    Ma to być coś w rodzaju:

    Sub kalibracja_i1
      Wartosc_ac$ = Getadc(0)
      If Vref > Wartosc_ac$ Then
       Poprawka_znak$ = 1
       Writeeeprom 100 , Poprawka_znak$
       Poprawka$ = Vref - Wartosc_ac$
       Writeeeprom 101 , Poprawka$
      End If
      If Wartosc_ac$ > Vref Then
       Poprawka_znak$ = 0
       Writeeeprom 100 , Poprawka_znak$
       Poprawka$ = Wartosc_ac$ - Vref
       Writeeeprom 101 , Poprawka$
      End If
    End If


    W zależności od znaku, do wyniku zostanie dodana lub odjęta poprawka.

    Pytanie w jaki sposób niewielką wartość (=<255) zmiennej word przypisać zmiennej byte?
  • #2
    User removed account
    Level 1  
  • #3
    MES Mariusz
    Level 36  
    atom1477 wrote:
    Tak:
    Zmienna_Byte = Zmienna_Word
    ?

    Założyłem, że przy takiej operacji kompilator sypnie błędami, ale rzeczywiście nie sprawdziłem tego.
  • Helpful post
    #4
    M. S.
    Level 34  
    Składnia:
    rezultat = LOW( zmienna )

    Przeznaczenie:
    Zwraca młodszą cześć (bajt MSB) podanej zmiennej.

    gdzie:

    rezultat zmienna do której zapisana będzie młodszy bajt zmiennej,
    zmienna zmienna której młodsza część ma być określona.
  • #5
    piurek10
    Level 13  
    Bardzo przepraszam za odkopywanie tematu. Ale mam pytanie
    Czy tak samo można robić ze zmiennymi single -> integer
    i odwrotnie.
    Czy konieczne jest do tego typu operacji angażowanie kolejnej zmiennej ? Czy istnieje inny sposób ?
  • #6
    User removed account
    Level 1