Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega - odczyt SD w bascom

Dawid 88 28 Paź 2013 16:55 1428 6
  • #1 28 Paź 2013 16:55
    Dawid 88
    Poziom 14  

    I znowu mam dziwy problem z moim led cube. Sprawa ma się tak że odczytuje plik txt z karty i jeden plik śmiga aż miło a drugi już nie :( Program działa tak:
    1 otwieram plik .txt
    2 pobieram z tego pliku pierwszą linijkę w której mam zapisane krotność powtarzania jednej klatki animacji.
    3 kolejnych 8 linii to długie stringi które później dzielę na 3 znakowe stringi i po konwersji zapisuje do tablicy
    4 następnie skok do podprogramu i wyświetlenie całej kostki (jednej klatki animacji) i powtórzenie jej x razy
    5 powrót do 2 punktu i tak w kółko aż skończy się plik

    problem polega na tym ze napisałem animację w której jest sobie kostka i ona pomniejsza się do środka to działa a jak wrzucę w plik pojedyncza klatkę żeby zaświecić tylko jedną warstwę w kostce to się dziwnie zawiesza jakby może przeskakuje albo czasem raz mrygnie tylko i tyle.
    czemu tak się dzieje ma ktoś może jakieś pomysły ??

    tak wygląda program:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    a tak wygląda plik który jest czytany

    200
    255,255,255,255,255,255,255,255
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000
    000,000,000,000,000,000,000,000

    jak zmienię tę drugą linijkę co zapala całą warstwę na rząd np
    120,120,120,120,120,120,120,120
    to działa
    przy 145 tez działa

    0 6
  • #3 02 Lis 2013 12:32
    Dawid 88
    Poziom 14  

    Jestem na etapie nauki i do kart sd mi trochę brakuje a projekt muszę niedługo skończyć :(

    No kurcze nie rozumiem, jak zaświecę tylko rogi w jednej warstwie to jest ok a jak chcę zaświecić całą warstwę to sie wszystko wali.... wygląda na to że dla bascoma nie jest obojętne czy string wygląda tak:
    "255,000,000,000,000,000,000,255"
    czy tak:
    "255,255,255,255,255,255,255,255"
    i przy tym drugim coś mu nie gra, a może się coś przepełnia? Proszę HELP ME :(

    0
  • #4 03 Lis 2013 18:28
    Jacek Rutkowski
    Poziom 23  

    Witam,
    masz wolny pin od postu szeregowego USART?
    Podłącz się pod procesor komputerem i po konwersji każdej ramki wysyłaj odczytany wiersz i zdekodowaną ramkę do PC-ta.
    Przekonasz się czy odczyt jest właściwy czy może coś z konwersją jest nie tak.

    0
  • #5 03 Lis 2013 18:56
    Dawid 88
    Poziom 14  

    Powiem tak, może nie przez USART ale inaczej robiłem testy a mianowicie do programu w różnych miejscach wklejałem komendę zapisu z powrotem do kart SD i bezpośrednio po odczycie było ok, po przejściu na string*3 było ok, po przejściu ze string*3 na byte tez było ok. Mam wrażenie ze sie ram nadpisuje i mi niszczy zmienne, ale dla czego tylko wtedy gdy wyświetlam całą warstwę kostki a gdy np pół to już nie. To tak jakby ktoś na lcd 2x16 napisał "cześć" i było ok a jak napisze "cześć wam" to sie krzaki wyświetlają.

    0
  • Pomocny post
    #6 04 Lis 2013 00:04
    Jacek Rutkowski
    Poziom 23  

    Może problemem jest "przysiadanie" zasilania. Jak wygląda zasilanie.
    Pokaż schemat układu.
    Masz dostęp do oscyloskopu?
    Masz włączony monitor zasilania w procku?

    0
  • #7 04 Lis 2013 21:24
    Dawid 88
    Poziom 14  

    OMG wstyd się przyznać :( błąd leżał w zasilaniu bo jego źródłem była....ładowarka od telefonu XD i się wszystko restartowało w wyniku zapalenia dużej ilości diod i spadku napięcia. Teraz sprawdziłem i zapalona cała kostka pobiera 550mA.
    Wielkie pokłony dla Jacka , temat rozwiązany. A za niedługo chyba wystawię wszystko z pełnym opisem filmikiem schematami itp

    Pozdrawiam

    0