Tomy89 Napisano Listopad 12, 2012 Udostępnij Napisano Listopad 12, 2012 Witam, Niedawno przesiadłem się z mikrokontrolerów AVR na ARM. Kupiłem popularną płytkę od Kamami z programatorem i LPC1114. Nauczyłem się sterować diodami i joystick-iem, jednak nie mogę obsłużyć zwykłego wyświetlacza LCD. Problem jest w dobraniu odpowiedniej biblioteki. Znalazłem inne, do innych procesorów, (nawet z serii LPC - ale innych), ale do mojego nie. Ponadto, znalazłem gotowe programy na LPC1114 sterujące wyświetlaczem od nokii 3310. Jednak mi zależy bardzo na tym, wyżej wspomnianym. Jeżeli ktoś wskazałby mi miejsce, gdzie taką bibliotekę do znajdę, byłbym bardzo wdzięczny. Ewentualnie, może ktoś poradzi jak zmodyfikować posiadaną przeze mnie bibliotekę pod mój procesor? Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
simoon87 Listopad 12, 2012 Udostępnij Listopad 12, 2012 Proszę bardzo w załączniku jest moja biblioteka do HD44780 lcd_2x16.zip Cytuj Link do komentarza Share on other sites More sharing options...
Tomy89 Listopad 12, 2012 Autor tematu Udostępnij Listopad 12, 2012 Witam ponownie, Dzięki wielkie simoon87 za wstawkę. Jednak męczyłem się cały dzień nad zaimplementowaniem tych bibliotek do projektu (nie mam konkretnego - robię pierwszy w celach rozpoznawczych), ale nie mogę. Pracuję w Keil uVision i podczas dołączenia tych bibliotek do projektu pojawiają się błędy. Próbowałem również w LPCXpresso jednak z podobnym skutkiem. Nie twierdzę że biblioteki są złe, jednak jeżeli można prosiłbym o przykładowy projekt zawierający te biblioteki pod LPC1114. Może używam złego kompilatora? Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
simoon87 Listopad 13, 2012 Udostępnij Listopad 13, 2012 Jakie to są błędy? Dołączyłeś wszytki pliki czy tylko lcd.c i lcd.h? Jeśli tylko te dwa to nie ma prawa działać gdyż w plikach sysfun.c , sysyfun.h znajdują się funkcje z których korzysta biblioteka wyświetlacza. W załączniku projekt z LPCXpresso wystarczy zaimportować. Hitachi_LCD_2x16.zip 1 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Tomy89 Listopad 13, 2012 Autor tematu Udostępnij Listopad 13, 2012 Po zaimportowaniu pliku "CMSISv1p30_LPC11xx.zip" do LPCXpresso i Twojego projektu przeszedłem do kompilacji. Bez żadnych modyfikacji. To wyświetla się w konsoli: **** Build of configuration Debug for project Hitachi_LCD_2x16 **** make all Building file: ../src/lcd.c Invoking: MCU C Compiler arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -D__USE_CMSIS=CMSISv2p00_LPC11xx -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m0 -mthumb -MMD -MP -MF"src/lcd.d" -MT"src/lcd.d" -o"src/lcd.o" "../src/lcd.c" ../src/lcd.c:7:21: fatal error: LPC11xx.h: No such file or directory compilation terminated. make: *** [src/lcd.o] Error 1 Z PLCXpresso korzystam od wczoraj i może nie umiem czegoś dodać? Zaimportowałem bibliotekę CMSIS oraz projekt. coś potrzeba jeszcze? Zamieszczę jeszcze screena z programu uVision wraz z dręczącym mnie błędem: Cytuj Link do komentarza Share on other sites More sharing options...
Tomy89 Listopad 14, 2012 Autor tematu Udostępnij Listopad 14, 2012 Witam, W dalszym ciągu nie rozwiązałem problemu. Pojawił się również kolejny, ale myślę że osobnego tematu nie warto zakładać. Podczas gdy zaprogramuję LPC1114 w zestawie ZL32ARM, przykładowy program z diodami działa, jednak po odłączeniu zasialania, układ nie reaguje. Żeby program ponownie ruszył muszę od nowa programować mikrokontroler. Znalazłem w internecie, że jest to wina ustawień procesora. Powinienem gdzieś wpisać "STARTUP_FROM_RESET". Ale nie mam pojęcia gdzie i czy to dobra definicja. Proszę o pomoc. Cytuj Link do komentarza Share on other sites More sharing options...
simoon87 Listopad 14, 2012 Udostępnij Listopad 14, 2012 ../src/lcd.c:7:21: fatal error: LPC11xx.h: No such file or directory Ewidentnie widać ze twoje LPC Xpresso nie widzi pliku LPC11xx.h. Sprawdź jak zacząć z LPC Xpresso w jednym z artykułów na Forbocie, może coś Ci się źle zaimportowało. Jedyne co na szybko zauważyłem to to że używasz CMSISv1p30_LPC11xx a ja używam CMSISv2p00_LPC11xx Cytuj Link do komentarza Share on other sites More sharing options...
Tomy89 Listopad 15, 2012 Autor tematu Udostępnij Listopad 15, 2012 Wszystko robiłem dokładnie według tego poradnika. Okazało się że miałem zbyt nową wersję LPC Xpresso (?). Zainstalowałem wersję 3.6 i wszystko działa. Sugestia odnośnie biblioteki CMSIS również pomogła. Dzięki wielkie simoon87. Pozostaje teraz pytanie jak wgrać program, aby można było z niego korzystać również po restarcie procesora. Czytałem dużo na ten temat. Dowiedziałem się że procesor wchodzi w nieskończoną pętlę i trzeba coś zmienić w programie żeby wracał do głównego programu, po ponownym podłączeniu zasilania. Tylko gdzie i co zmienić? Cytuj Link do komentarza Share on other sites More sharing options...
simoon87 Listopad 15, 2012 Udostępnij Listopad 15, 2012 Dziwne, bo ja akurat używam LPC Xpresso 4.2.6 [build 292], ale ważne ze już Działa 😉 . Odnośnie programowania, nigdy nic nie musiałem zmieniać do ładowania wsadu używam programu FlashMagic 5.90.2438 i nawet po odłączeniu zasilania i ponownym podłączeniu. Opisywana przez Ciebie sytuacja z tego co wiem występuje w środowisku Rowley CrossWorks. Cytuj Link do komentarza Share on other sites More sharing options...
Tomy89 Listopad 16, 2012 Autor tematu Udostępnij Listopad 16, 2012 Po przyjrzeniu się "temu dziwnemu zjawisku" stwierdzam, że program działa przez chwilę. Czyli tak: -wgrywam program, który od razu się uruchamia i bez zakłóceń -odłączam zasilanie (zasilanie przez orginalnie dołączony programator USB->UART) -podłączam z powrotem -program uruchamia się i działa przez 6 sekund, po czym gaśnie (sprawdzone na programie z diodami i przerwaniami, które można pobrać ze strony BTC) Co to może być? Ponadto, nie wiem jak wyświetlić wartość int na wyświetlaczu, zapisaną np. int a=150; Przepraszam za głupie pytania, ale dopiero uczę się programować w C pod jakikolwiek sprzęt. Wcześniej był Bascom i AVR. Trochę ciężko mi zmienić zarówno język jak i platformę. Może mi ktoś doradzić której funkcji muszę użyć z powyższej biblioteki? Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
simoon87 Listopad 19, 2012 Udostępnij Listopad 19, 2012 Aby wyświetlić liczbę całkowita użyj funkcji LCDPutDecByte(a);. Jakbyś chciał wyświetlacz zmienna typy float w mojej bibliotece jest funkcja LCDPutFloat(...); lub jeśli wolisz użyj funkcji itoa konwertującej int to ascii a następnie użyj LCDPutString(...) 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Tomy89 Listopad 19, 2012 Autor tematu Udostępnij Listopad 19, 2012 Ok, dzięki za pomoc. Nie zauważyłem że muszę zmodyfikować bibliotekę dla liczb większych od 1000 🙂 Dlatego wyskakiwały błędy. void LCDPutDecByte(uint8_t value) { if (value >= 10000) LCDPutChar((value / 100000) + '0'); if (value >= 1000) LCDPutChar((value % 10000) /1000 + '0'); if (value >= 100) LCDPutChar((value % 1000) / 100 + '0'); if (value >= 10) LCDPutChar(((value % 100) / 10) + '0'); LCDPutChar(value % 10 + '0'); Co do działania programu po restarcie procesora, nie znalazłem jeszcze metody na to 🙁 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!