konflikt karta sd i lcd ST7735R

Rodzina procesorów bogatszych w wiele nowych rozwiązań i dlatego warto po nie sięgnąć.
ODPOWIEDZ
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

konflikt karta sd i lcd ST7735R

Post autor: tomaszdko » 07 maja 2020, 20:54

Witam

Połączyłem Xmega z kartą SD na płytce X3-DIL64 i chodzi . Podłączyłem lcd ST7735R , chodzi .
Podłączyłem obie rzeczy i chodzą . Na lcd mogę zobaczyć wielkość karty SD używając Disksize() ale kiedy dopiszę
w programie instrukcję stworzenia pliku na karcie
  1. Open "PLIK.TXT" For Append As #2
  2. Print #2 , "123456789"
  3. Close #2
to wywal błąd po kompilacji

Error : 220 Line : 284 Forward jump out of range [_MUL8 [ 2998]] , in File : C:\MCS\BASCAVR2082\LIB\GLCD-ST7735R_APRIL.LIB

I nie mam pojęcia o co chodzi .

ps. mam nadzieje że dobrze kod wklejony.
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: konflikt karta sd i lcd ST7735R

Post autor: niveasoft » 08 maja 2020, 7:04

A który to Bascom?
Widać że błąd jest w bibliotece. Najlepiej w niego kliknąć żeby Cie tam przeniósł.
Takie błędy pokazują się gdy projekt jest większy i różne biblioteki korzystaj ze wspólnych procedur (tutaj _MUL8) z biblioteki MCS.LIB
Kiedy AVR DOS potrzebował tej procedury to Bascom ją wstawił raz a teraz potrzebuje jej tez wyświetlacz i Bascom jej drugi raz nie wstawi.
Niestety w bibliotece do LCD użyto RCALL i RJMP co oznacz "Relative jump". Najprosciej jest zamienić RCALL na CALL albo RJMP na JMP.
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: konflikt karta sd i lcd ST7735R

Post autor: tomaszdko » 08 maja 2020, 7:52

Właśnie wróciłem z pracy i mnie zkorciło by sprawdzić coś . Karta + lcd chodzi :) . W programie , który mi nie chodził przed pętlą główną ustawiony i zainicjowany był LCD i dopiero karta SD . Wystarczyło tylko zamienić by najpierw Inicjowało kartę i dopiero LCD ...hehhe Taka pierdoła a może namieszać .Bascom mam 2082 . W wcześniejszych postach pisałem że nie wszystkie uart-y chodzą i to jest fakt (tylko nadawanie chodzi) a wczoraj przypomniałem sobie że miałem problem kiedyś z Atmega128 . Gość na elktrodzie doradził mi " Skonfiguruj PORTB.7 = Output i użyj tego OCR1C, albo podeśle Ci na PW ten poprawiony DAT " . Po zrobieniu OUTPUT chodził pwm i teraz z UART na Xmega zrobiłem podobnie , tyle że tu musiałem wpisać INPUT i odrazu ruszyło. Problem rozwiązany (nie będę wnikał co i jak :) , działać działa .
ODPOWIEDZ