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

ATMEGA32 Bascom - Zapis na karte SD (AVR-DOS) crash

Aldoro Draxy 19 Sty 2015 03:38 1086 6
  • #1 14345779
    Aldoro Draxy
    Poziom 19  
    Witam.

    Nie wiele mogę załączyć, bo wszystkie materiały mam na innym komputerze...

    Raczej zadanie skierowane do ludzi dobrze zaznajomionych z pakietem AVR-DOS.

    Generalnie program jest napisany aby testowo wgrać utworzyc na karcie plik txt, i wpisać do niego zmienną.
    Jeśli zastosujemy instrukcję:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    to do pliku zustanie zapisane dokładnie to:

    (nie wiem czemu zapisuje z cudzysłowami, ale mniejsza z tym)


    Ale jeśli zapiszmy ten numer do zmiennej i zdefiniujemy ją na początku programu:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    i po zabiegach inicjacji karty damy:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    to program w tym miejscu się crashuje - nie przechodzi dalej, a czasem nawet resetuje się procek - oczywiście nic się nie zapisuje do pliku

    Dodam iż generalnie całość dziwnie działa, funkcja Open for Output, też robi jakieś dziwne rzeczy. Teraz używam Open for Append i ta instrukcja też o dziwo potrafi generować plik.

    Może coś podpowiecie. Karta to microSD 2GB (FAT), uC ją wykrywa i poprawnie określa rozmiar pamięci.

    Ustaliłem, że nie działa tak jak by odwoływanie do zmiennych (chociaż też nie zawsze i nie dla wszystkich).

    Pozdrawiam
  • Pomocny post
    #2 14345830
    Kuniarz
    Moderator Projektowanie
    Próbowałeś zmieniać word na stringi (funkcją STR() ) ?
    Pomogłem? Kup mi kawę.
  • #3 14346098
    Aldoro Draxy
    Poziom 19  
    Tak, tylko wtedy do pliku zapisywane są w cudzysłowach... A w dokumentacji avr-dos jest przykład i w im podana zmienna typu word.
    Kod: text
    Zaloguj się, aby zobaczyć kod


    The file content will look like this : "hello",100
    Use INPUT to read the values from value.


    http://members.aon.at/voegel/ --> Functions --> Write
  • Pomocny post
    #4 14346388
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14346505
    Aldoro Draxy
    Poziom 19  
    Nie deklarowałem żadnej z nich. A trzeba to zrobić?
    Masz jakieś propozycje co do deklaracji tych wartości?
  • Pomocny post
    #6 14346528
    Konto nie istnieje
    Konto nie istnieje  
  • #7 14346552
    Aldoro Draxy
    Poziom 19  
    Spróbuję zadeklarować wszystkie na 128. Co o tym myślisz?

    Dodano po 30 [minuty]:

    Na razie idzie dobrze. Niestety jeśli próbuję wrzucić tam zmienną typu Single - wyskakuje błąd że nie może znaleźć jakiegoś _FTOA.
    Co do cudzysłowów chyba udało mi się je wyłączyć zmieniając pewien parametr w config-avr-dos.

    Dodano po 13 [minuty]:

    Więc póki co zmienne z przecinkami zapisuje jako stringi, wyłaczyłem cudzysłowy w plikach i jestem zadowolony. Dzięki!
    W razie gdybym miał dalej problemy kiedy już zaimplementuję ten kod do głównego programu to dam znać (może być za mało pamięci lub źle zadeklarowane hwstack, swstack itd...
REKLAMA