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

[AVR][BASCOM] - DEFLCDCHAR - czy moża troszkę inaczej?

mirekk36 08 Sie 2008 13:07 2173 2
REKLAMA
  • #1 5420240
    mirekk36
    Poziom 42  
    Witam,

    Panowie czy może ktoś ze znawców Bascoma podpowiedzieć mi czy można odnośnie polecenia wymienionego w temacie czyli DEFLCDCHAR dokonać tego typu operacji ???

    _kod = 5
    _b0 = 1
    _b1 = 16
    _b2 = 1
    _b3 = 16
    _b4 = 1
    _b5 = 16
    _b6 = 1
    _b7 = 16
    DEFLCDCHAR _kod, _b0, _b1, _b2, _b3, _b4, _b5, _b6, _b7 


    czy też można tylko za pomocą stałych dawać parametry do tego polecenia ??? :cry:

    jeśli tylko za pomocą stałych - to czy jest jakaś "sztuczka" za pomocą której można to jednak uzyskać podobny efekt ???? czy tylko wstawka asemblerowa może?
  • REKLAMA
  • Pomocny post
    #2 5420750
    zumek
    Poziom 39  
    mirekk36 napisał:
    ...czy tylko wstawka asemblerowa może?

    Pewne jest , że gdybyś bardziej przyjrzał się standardowym bibliotekom Bascoma , to byś nie zadawał tego pytania :P
    Biblioteka LCD Bascoma , udostępnia np. takie procedury:
    
    _lcd_control    'wyślij rozkaz do LCD
    _write_lcd       'wyślij znak do LCD
    

    Parametr dla tych procedur , musi znajdować się w zmiennej _temp1(R24).
    A teraz:
    
    _temp1 = &H40         'CGRAM char(0)
    Gosub _lcd_control 
    ' i 8 razy obraz znaku
    _temp1 = zmienna  ' 1/8 obrazu "znaku"   
    Gosub _write_lcd       'wyślij znak do LCD
    '...
    

    Czy to jasne :?:

    Piotrek
  • #3 5420851
    mirekk36
    Poziom 42  
    Witam,

    zanim jeszcze zobaczyłem twój post zacząłem właśnie już kombinować z wykorzystaniem zawartości biblioteki w której to są _write_lcd i _write_control. Jednak ja zassałem jakby ponownie cały kawał tej biblioteki jako wstawkę podmieniając nazwy _write_lcd na np _mk_write_lcd i coś tam już zaczęło działać. Nie wiedziałem jak odwołać się do procedury _write_lcd bezpośrednio "wszytej" w bibliotekę. Szukałem też jeszcze innych rozwiązań

    Ale skoro sam MISTRZ ZAKONU BASCOMOWSKIEGO i NIE TYLKO tak poleca robić to zrobiłem i polecenia Gosub okazały się dla mnie zbawieniem tym bardziej, że działają wprost ze wstawek asemblerowych.

    Wielkie dzięki Mistrzu :) teraz wszystko śmiga że HEJ

    Sub Mk_lcd_deflcdcharex(byval Acode As Byte , Byval Ab0 As Byte , Byval Ab1 As Byte , Byval Ab2 As Byte , Byval Ab3 As Byte , Byval Ab4 As Byte , Byval Ab5 As Byte , Byval Ab6 As Byte , Byval Ab7 As Byte)
       Acode = Acode * 8
    
       $asm
          Ldd R26, Y+16
          Ldd R27, Y+17
          ld  R24, x
          ori R24, &B01000000
       $end Asm
    
          Gosub _lcd_control
    
       $asm
          Ldd R26, Y+14
          Ldd R27, Y+15
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+12
          Ldd R27, Y+13
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+10
          Ldd R27, Y+11
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+8
          Ldd R27, Y+9
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+6
          Ldd R27, Y+7
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+4
          Ldd R27, Y+5
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+2
          Ldd R27, Y+3
          ld  R24, x
          Gosub _write_lcd
    
          Ldd R26, Y+0
          Ldd R27, Y+1
          ld  R24, x
          Gosub _write_lcd
    
       $end Asm
    End Sub


    zrobiłem jak widać taki swój odpowiednik DEFLCDCHAR , Dzięki Piotrek

    Dodano po 1 [minuty]:

    kurczę , Bascom w połączeniu z asemblerkiem naprawdę daje niezłe możliwości :)
REKLAMA