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

Zarządzanie RAM`em w Bascomie

marcin1990 22 Sie 2010 20:01 1101 4
  • #1 8426610
    marcin1990
    Poziom 14  
    Witam,
    Ok kilku lat uczę się programowania w C++ i od jakichś 6-8 miesięcy w Bascomie. Zauważyłem iż w Bascomie nie ma czegoś takiego jak funkcje i nie wiem czy istnieje coś w stylu zmiennej lokalnej ? Jeśli nie to jak rozwiązać taki problem: Żeby było łatwiej załóżmy, że pisze program na Atmege która ma tylko 20 Bajtów pamięci (będzie łatwiej pokazać o co mi chodzi). Na początku programu deklaruje powiedzmy 8 zmiennych każda po jeden bajt i są one bardzo ważne. Żadnej z nich nie mogę się pozbyć ani jej skasować. Zostaje mi 12 bajtów pamięci i nagle użytkownik chce wejść do menu. Odczytuje z eepromu 12 bajtów tekstu wyświetlanego w górnej linijce i mam pełną pamięć. Teraz potrzebuję użyć np dwóch bajtów pamięci do zmiennych tymczasowych np. na potrzeby zmiany ustawień. Więc jak zwolnić pamięć zajmuje napis i utworzyć w jej miejscu nowe zmienne które później skasuje żeby odczytać napis (nowy albo do odświeżenie LCD ? W C++ zrobiłbym to na zmiennych globalnych i lokalnych Oczywiście mój przypadek jest bardziej rozbudowany i chodzi mi o większe ilości pamięci. Całą sytuacje uprościłem maksymalnie. Mam nadzieje, że nie zamotałem tego za bardzo?
    Z góry dziękuje za pomoc

    Przeniesiono z Programowanie Ogólne. - arnoldziq
  • Pomocny post
    #2 8429100
    M. S.
    Poziom 34  
    Cytat:
    Zauważyłem iż w Bascomie nie ma czegoś takiego jak funkcje i nie wiem czy istnieje coś w stylu zmiennej lokalnej.


    Przez 8 miesięcy helpa w dodatku w j. polskim nie przeczytać? Hmm...

    Przeznaczenie:
    Rozpoczyna treść funkcji użytkownika.
    Składnia:
    FUNCTION nazwa [ ( parametr AS typ [, parametr AS typ] ) ] AS typ_rezultatu
       instrukcje funkcji
    END FUNCTION
    

    gdzie:
    nazwa nazwa funkcji,
    parametr nazwa parametru funkcji,
    typ typ przekazywanego parametru,
    typ_rezultatu typ danych zwracanych przez funkcję.

    Przeznaczenie:
    Definiuje nagłówek funkcji użytkownika.
    Składnia:
    DECLARE FUNCTION nazwa [( [BYREF | BYVAL] parametr AS typ )] AS typ_rez

    gdzie:

    nazwa nazwa deklarowanej funkcji,
    parametr nazwa parametrów,
    typ typ przekazywanych parametrów,
    typ_rez typ zwracanego rezultatu.
    Opis:

    Każda funkcja musi być zdefiniowana instrukcją DECLARE FUNCTION przed jej pierwszym użyciem w programie. Jest to konieczne, by kompilator określił jakie parametry powinny być przekazane funkcji, oraz jaki rezultat funkcja zwraca.
    Nie trzeba używać argumentów BYREF lub BYVAL jeśli nie są wymagane, w takim przypadku przekazywanie parametrów następuje przez adres.

    Uwaga! Zmienne typu Bit są zmiennymi globalnymi. Nie można ich zatem umieszczać jako parametry funkcji.

    Przykład:
    T = Myfunction(k , Z)
    

    Zmienne lokalne definiuje się tak:
    Local P As Integer


    To wszystko w polskim helpie zawarł
    (c) Zbigniew Gibek, 2002-2005 (c) MCS Electronics, 1999-2005
  • #3 8429258
    marcin1990
    Poziom 14  
    Wielkie dzięki, tego mi właśnie brakowało.
    Uczyłem się z książek i widocznie to przeoczyłem. Z Helpa korzystam gdy coś mi nie działa lub do sprawdzenia kodu błędu.
  • #5 8432603
    marcin1990
    Poziom 14  
    Niby lepiej ale dostałem dwie książki do bascoma i miało być zobaczę jak się programuje uC w bascomie i przejdę na C. Z książek nauczyłem się podstaw bascoma i w zasadzie wszystkie swoje projekty opierałem na tym co było w książkach do momentu aż mi brakło ramu . Do prostych projektów bascom mi wystarczał ale teraz męczę się nad jednym projektem już drugi miesiąc wakacji i już zbyt późno aby pisać cały kod programu od zera w C. Jak skończę ten projekt to zabiorę się za C na uC
REKLAMA