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

[Atmega162][Bascom] - deklaracja zmiennych w XRAM

Duch__ 21 Lut 2010 01:36 2122 3
REKLAMA
  • #1 7726594
    Duch__
    Poziom 31  
    Witam. Jest obecnie na etapie przenoszenia programu z Atmegi32 na Atmegę162 + zewnętrzna pamięć SRAM BS62LV256 i utknąłem na deklaracji dużej ilości zmiennych. Poniżej fragment większego kodu:

    $regfile = "m162def.dat"                                    ' specify the used micro
    $crystal = 12500000                                         ' used crystal frequency
    $baud = 9600                                                ' use baud rate
    $hwstack = 100                                              ' default use 32 for the hardware stack
    $swstack = 100                                              ' default use 10 for the SW stack
    $framesize = 100                                            ' default use 40 for the frame space
    
    $xramstart = &H500
    $xramsize = &H32000
    
    Const Max_framelen = 1600                                
    $lib "tcpip.lbx"
    $lib "datetime.lbx"
    $include "enc28j60.inc"
    
    Dim Buffer(max_framelen) As Xram Byte
    Dim Length As Xram Word
    
    Dim T_enetpacketdest0 As Xram Byte At Buffer Overlay
    Dim T_enetpacketdest1 As Xram Byte At Buffer + &H01 Overlay
    Dim T_enetpacketdest2 As Xram Byte At Buffer + &H02 Overlay
    Dim T_enetpacketdest3 As Xram Byte At Buffer + &H03 Overlay
    Dim T_enetpacketdest4 As Xram Byte At Buffer + &H04 Overlay
    Dim T_enetpacketdest5 As Xram Byte At Buffer + &H05 Overlay
    Dim T_enetpacketsrc0 As Xram Byte At Buffer + &H06 Overlay
    Dim T_enetpacketsrc1 As Xram Byte At Buffer + &H07 Overlay
    Dim T_enetpacketsrc2 As Xram Byte At Buffer + &H08 Overlay
    Dim T_enetpacketsrc3 As Xram Byte At Buffer + &H09 Overlay
    Dim T_enetpacketsrc4 As Xram Byte At Buffer + &H0A Overlay
    Dim T_enetpacketsrc5 As Xram Byte At Buffer + &H0B Overlay
    
    itd...
    


    O ile z deklaracją zwykłych zmiennych w XRAM nie mam problemu,

    Dim Length As Xram Word


    to gubie się na deklaracji zmiennych typu:

    Dim T_enetpacketsrc4 As Xram Byte At Buffer + &H0A Overlay
    


    Byłby ktoś łaskaw podpowiedzieć gdzie robię błąd?
  • REKLAMA
  • #2 7729861
    zumek
    Poziom 39  
    Duch__ napisał:
    ...Byłby ktoś łaskaw podpowiedzieć gdzie robię błąd?


    Jaki błąd :?:
    Przecież nie napisałeś, na czym ten błąd polega.

    PS
    Twój kod po "zaremowaniu" linii z $lib, kompiluje się bez błędów.
    PS1
    
    $xramsize = &H32000
    

    Trochę przesadziłeś :D
  • REKLAMA
  • #3 7729987
    Duch__
    Poziom 31  
    Po kompilacji w w/w postaci program nie działa na atmedze 162+RAM. Nie wiem ile mam wpisać do
    $xramsize w tym wypadku.
REKLAMA