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

Atmega1284p / Bascom - Zapis kilku plików na kartę SD

maximus22_kr 14 Kwi 2017 22:04 963 4
  • #1 16412945
    maximus22_kr
    Poziom 18  
    Witam
    Do Atmega1284p z szybkością 8 MHz mam podpięte złącze kart SD. Oprócz zapisu mam tam czujniki DS, BME280, DHT22.
    Do tej pory zapisywałem wszystko w jednym pliku, ale chciałbym to rozdzielić. Dołożyłem zapis do drugiego pliku - działa
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Zmienna Ch_exit to znak "\".

    Otóż, gdy dokładam trzeci plik, to zapis następuje w głównym katalogu - nie wchodzi do podkatalogu rok/miesiąc. Co ciekawe odczyt ( jednorazowo przy uruchomieniu ) jest poprawny, bo numeracja się zgadza, zaczyna zapis od numeru, na którym zakończył - tylko lokalizacja się nie zgadza.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Nie wiem, czy to wina zbyt niskiego taktowania, czy też trzeba będzie zapis rozdzielić na trzy części - niby było by to oszczędniejsze gospodarowanie danymi.
  • #2 16412975
    Konto nie istnieje
    Konto nie istnieje  
  • #3 16413146
    maximus22_kr
    Poziom 18  
    Na razie zmieniłem nieco sposób zapisu - po testuję przez noc, jak będą problemy to będziemy się zastanawiać.
    Zrobiłem to tak:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    I jak na razie działa - zyskałem oszczędności jeśli chodzi o ilość zmiennych - teraz używam jednej dla wszystkich. Dodałem Waitms 5, nie lubię używać wait'ów, ale tutaj może pomogło.
  • #4 16413223
    Konto nie istnieje
    Konto nie istnieje  
  • #5 16415246
    maximus22_kr
    Poziom 18  
    Jeśli chodzi o tę poprawkę z poprzedniego postu, to jak na razie po 1 dniu nie ma błędów w zapisie.

    Tak, myślałem o użyciu FOR... NEXT i flagi od timera.
    Ciekawsze byłoby sprawdzenie, czy aktualny folder to ten do którego miał wejść, jeśli nie to ponowić Chdir, ale przeglądam help'a Bascoma i nic takiego nie widzę. Ale można by sprawdzić, czy jest w tym folderze plik - poleceniem DIR
    S = Dir("*.*")
    u mnie pliki mają nazwę TEMdzien_miesiac.txt ( czyli TEM15_04.txt ) i zrobić to w pętli
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Pewnie głupi pomysł, na pewno nie zadziała jak utknie w połowie, bo jeśli wejdzie do katalogu roku i utknie to nic tam nie znajdzie.
REKLAMA