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

[Atmega8 bascom] odczyt danych z eepromu ale nie pojedyczych

Robgie 22 Lis 2008 23:32 1635 7
REKLAMA
  • #1 5771854
    Robgie
    Poziom 27  
    Witam szukałem ,próbowałem i nie mogę dojść jaka powinna być prawidłowa metoda.
    Otóż tak mam do wyświetlenia grafikę którą umieszczam poleceniem $eeprom w wewnętrznej pamięci. problem mam z tym ze nie wiem jak ja odczytać.
    readeeprom wymaga podania adresu z którego odczytuje z danej grafiki

    readeeprom adres , grafika
    ale jak zrobić żeby mi wczytało tak jak wczytuje

    restore grafika wtedy kiedy umieszczam ja w $data ?

    naprowadźcie co i jak
  • REKLAMA
  • REKLAMA
  • #3 5780363
    Robewit
    Poziom 26  
    Najprościej zrobić to w pętli zwiększajacej adres komórki do odczytania, ilość obiegów równa z ilością bajtów do odczytania.
  • REKLAMA
  • #4 5780530
    Robgie
    Poziom 27  
    tak tylko to co odczytam wyświetlam w formie
    restore label:
    czyli powinienem odczytać do zmiennej tablicowej i zeby ja wyświetlić dać
    restore ta_zmienna_tablicowa?
  • REKLAMA
  • #5 5782746
    ZbeeGin
    Poziom 39  
    Kol. Rogbie przeczytaj JESZCZE RAZ do czego służą i jak działają:

    - $EEPROM - http://zbeegin.republika.pl/bashelp/d_eeprom.html
    - $DATA - http://zbeegin.republika.pl/bashelp/d_data.html
    - RESTORE - http://zbeegin.republika.pl/bashelp/s_restore.html

    Jeśli nie zrozumiesz przy pierwszym ponownym czytaniu to przeczytaj ponownie - aż do skutku.

    Hint: READEEPROM sam może czytać cyklicznie - ale nie może robić tego w pętli. :(


    ps. Linki obecnie nie działają - pomoc jest niedostępna czasowo.
  • #6 5783272
    Robgie
    Poziom 27  
    Dziękuje za odpowiedź.
    wyjaśnię jak ja to rozumiałem.
    $data zostawia dane w kodzie programu i w romie, $eeprom umieszcza dane w epromie Atmegi. No i myślałem ze restore odczytuje te dane spod danego Label i tu się myliłem bo według Pańskiego tłumaczenia helpa RESTORE działa tylko dla danych umieszczonych w kodzie programu.Wiem jak odczytać dane typu zmienne z epromu. niestety nie działa mi to w sytuacji kiedy umieszczam w nim grafikę. Dlatego zapytałem.
    Czworka:
    Data 15 , 3                                                 ' Image Table Name, Xbytes, N of Lines, 45 bytes
    Data &H00 , &HFF , &HFF , &HFF , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HFF , &HFF , &HFF , &H00,
    Data &H0F , &H0F , &H0F , &H0E , &H0E , &H0E , &H0E , &H0E , &H0E , &H0E , &H0E , &HFF , &HFF , &HFF , &H00 , &H00,
    Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H1F , &H1F,


    Przeczytałem tego helpa wielokrotnie (generalnie cały czas na nim bazuje ucząc się) wiec jeśli można , jak to wyświetlić ?
  • #7 5786287
    ZbeeGin
    Poziom 39  
    Jeśli są to jedyne dane umieszczone w EEPROM to pierwszy bajt z linii DATA trafi do pamięci pod adres 0. Zatem:
    ReadEEprom Dl_Lini, 0
    ReadEEprom Il_Linii, 1
    

    pozwoli na odczytanie ilości bajtów (zakładając że linie mają stałą długość) i utworzenie odpowiedniej pętli :
    Bajtow = DL_Lini * Il_Lini
    Adres = 2
    For A = 1 to Bajtow
      ReadEEprom Bitmapa8, Adres
      ' tu operacja z przesłaniem danej
      Incr Adres
    Next A

    Samo ReadEEProm (bez kwalifikacji adresowej) nie może działać w pętli, ale wersja z podaniem adresu absolutnego będzie działać.
  • #8 5805270
    Roko
    Poziom 11  
    Hej.
    Tak też działa.
    
    Bajtow = DL_Lini * Il_Lini 
    'Adres = 2 
    For A = 1 to Bajtow 
      ReadEEprom Bitmapa8, A          'Adres 
      ' tu operacja z przesłaniem danej 
     ' Incr Adres 
    Next A
    

    I pozbywamy się zmiennej inkrementowanej 'Adres' im mniej tym lepiej.
    Roko
REKLAMA