Skocz do zawartości

[Bascom] atmega 32 i 6100 problem z plikami BGF


zuba1

Pomocna odpowiedź

Witam.Robię pilot do robota z wyświetlaczem z N6100.Postanowiłem dołożyć parę grafik do tekstu w pilocie.I tu zaczął się problem ponieważ wzięta bit mapa BMP przerobiona przez bascoma na bgf wywala błąd w kompaktorze.Po prostu plik się nie kompiluje. Co najciekawsze znalazłem gotowca na atmegę8 i u niej też wywala błąd i to taki sam.

                   
$regfile = "m32def.dat"
$crystal = 8000000                                          '8 MHz internal oscillator
$hwstack = 128
$swstack = 128
$framesize = 64

$lib "Lcd-pcf8833.lbx "

$lib "LCD-epson.LBX "

Config Graphlcd = Color , Controlport = Portc , Cs = 3 , Rs = 0 , Scl = 2 , Sda = 1

Setfont Color8x8

Const Blue = &B00000011                                     'predefined contants are making programming easier
'Const Yellow = &B11111100
Const Yellow = &B11110000
Const Red = &B11100000
Const Green = &B00011100
Const Black = &B00000000
Const White = &B11111111
Const Brightgreen = &B00111110
Const Darkgreen = &B00010100
Const Darkred = &B10100000
Const Darkblue = &B00000010
Const Brightblue = &B00011111
Const Orange = &B11111000



Glcdcmd &H36                                                'Mem_control
Glcddata &H48                                               'My=0 Mx=0 V=1 Lao=1 Rbg=0 "00110000"
Glcdcmd &H21                                                'Inversion_on                                               'kontrast

Cls
Box(0 , 0) -(130 , 130) , White
Wait 2
Cls Text
Cls Graph

Showpic 0 , 0 , Zdjencie
End




Zdjencie:
$bgf "c:\pulpit.bgf"


$include "color8x8.font"
$include "color16x16.font"

A tu mam drugi kod Pod atmegę8 który zachowuje się tak samo.

           $lib "Lcd-pcf8833.lbx"
$regfile = "m8def.dat"
$crystal = 8000000
'$hwstack = 128
'$swstack = 128
'$framesize = 64
Config Graphlcd = Color , Controlport = Portc , Cs = 1 , Rs = 0 , Scl = 3 , Sda = 2
Const Blue = &B00000011                                     'predefined contants are making programming easier
Const Yellow = &B11111100
Const Red = &B11100000
Const Green = &B00011100
Const Black = &B00000000
Const White = &B11111111
Const Brightgreen = &B00111110
Const Darkgreen = &B00010100
Const Darkred = &B10100000
Const Darkblue = &B00000010
Const Brightblue = &B00011111
Const Orange = &B11111000
Cls
Box(0 , 0) -(130 , 130) , White
Wait 2
Cls Text
Cls Graph
Showpic 0 , 0 , Bartek
End




Bartek:
$bgf "z.bgf"

Błąd wygląda następująco:

EQU not found probably using functions that are not supported by the selected chip [RAMPZ]

Wygląda to tak jak by dobijał się do jakiegoś rejestru a jego tam niema. Proszę o pomoc i z góry dziękuję. Pozdrawiam

Link do komentarza
Share on other sites

Daj pliki color8x8.font i color16x16.font to może coś się poradzi.

Ogólnie problem dotyczy tego, że w tych plikach są nazwy portów albo rejestrów specjalnych. A w takich przypadkach musisz sam określić adresy tych rejestrów. Można to zrobić jeszcze inaczej ale zapodaj pliki.

Link do komentarza
Share on other sites

No właśnie w tym problem że fonty były tez dodawane i nie działało a powinno. Ten drugi kod nie był w ogóle modyfikowany a mam potwierdzenie że działał. Jakie chcesz pliki to je tu dam.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Znalazłem przyczynę ale dalej rozwiązania brak. Mój LCD wbrew zapewnieniom sprzedawcy chodzi na sterowniku "Lcd-pcf8833.lbx " a nie na "LCD-epson.LBX " Gdy wywaliłem z kodu sterownik pcf8833 kod wtedy cię odpalił ale niestety nie był to sterownik mojego LCD więc nic nie wyświetlił . Muszę zdobyć nowy sterownik ps.dodaję ci te fonty-wsadź je do folderu głównego bascoma na 1005 działają bo długo już je używam i jeszcze mię nie zawiodły =D .

[ Dodano: 10-02-2013, 21:25 ]

Miał by ktoś oryginalną bascomową bibliotekę Lcd-pcf8833.lbx ??? Bo siedzę i siedzę i nie mogę znaleźć. Z góry dziękuję.

[ Dodano: 10-02-2013, 22:13 ]

A więc sprawa wygląda tak. Razem z użytkownikiem RoboticDivision na pw. znaleźliśmy usterkę. Jest nią rejestr RAMPZ a raczej jego brak w modelu atmega32. Czy ktoś wie jak zamienić ten rejestr na jakiś inny?? Czy ktoś podejmował się modyfikacji tej biblioteki??

Pulpit.rar

Link do komentarza
Share on other sites

W takim przypadku rodzi się pytanie czy nie prościej będzie napisać własną bibliotekę ? Jak znasz sterownik wyświetlacza powinno być wykonalne, nawet w samym BASCOMIe, tylko że wydajność może kuleć.

Co do tego nie istniejącego rejestru RAMPZ, to może on i istnieje, ale jest niedostępny z poziomu programu, bo służy do programowania procesora i jest rejestrem pomocniczym, obsługiwanym przez automat programujący.

Teraz pytanie co robi ten rejestr w bibliotece ?

Link do komentarza
Share on other sites

Rejestr ten występuje w obu bibliotekach epsona i philipsa z tym że epsona tylko raz a philipsa notorycznie.Ja niestety w pisaniu bibliotek jestem noga.Wczoraj próbowałem coś modyfikować tą bibliotekę ale niestety bez skutku.Wydaje mi się że to wina nowej wersji bascom avr.przydała by się stara wersja albo zmodyfikowane biblioteki.

[ Dodano: 11-02-2013, 15:14 ]

Ma ktoś pomysł jak by to zrobić??

[ Dodano: 11-02-2013, 23:06 ]

Dobra znalazłem bibliotekę z 2007r. i wyświetla te pliki 😃 Niestety nie mogę rysować kwadratów ani prostokątów a cała grafika mojego pilota się o to opiera. Wie ktoś jak tą biblioteką rysować kwadraty? Bibliotekę dodaję w załączniku.

LCD-pcf8833B.rar

Link do komentarza
Share on other sites

Problem jest z tym, że w tych bibliotekach jest rejestr RAMPZ, który posiadają tylko procesory o pamięci większej niż 64k. A jak go nie ma to musisz sam określić jego adres - mimo tego że nie będzie on używany bo tak jest napisana biblioteka.

Służy do tego dyrektywa asemblera .EQU

Wpisz więc przed bibliotekami .equ RAMPZ=$FFFF

Co prawda nie masz takiego adresu w atmedze32 ale i tak nie będziesz go używał.

Spróbuj z tą biblioteką którą ci wysłałem.

  • Lubię! 1
Link do komentarza
Share on other sites

Dzięki.Pomogło 😃 piwo dla ciebie 😃. Z całą resztą powinienem sobie już poradzić. I pomyśleć że podmienienie adresu rejestru wystarczyło. A ja się męczyłem instalując starego bascoma z 2007r. żeby wyciągnąć biblioteki a potem na podstawie obydwu zrobić jedną. Prawie mi się to udało bo już jakiś zarys Grafik powstawał ale było to dość marne. Jeszcze raz wielkie dzięki.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.