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

Atmega 644p , pamiec eeprom 24c02 i karta sd

scsi 23 Cze 2011 18:22 1955 3
REKLAMA
  • #1 9643166
    scsi
    Poziom 11  
    Witam!

    Zacząłem pisać program który odczytał by mi z układu 24c02 dane i zapisał je do pliku. Eprom się odczytuje i zapisuje mi do pliku tylko ,że każdy bajt w oddzielnej linii a nie w jednej.

    Oto kawałek kodu:

    Cls
    Lcd "odczyt epromu"
    K = 0
    Buf2 = ""
    'For Addressw = 162
    'S=Dir( "*.txt")

    Open "i2c.txt" For Append As #3 '
    Addressw = 172
    For I = 0 To 255

    Poz = I + 1
    Call Read_eeprom(i , Value)
    Dane = Hex(Value)
    Write #3 , Dane

    ' Seek #3 , Poz

    Incr K
    Next I

    Flush #3
    Close #3

    Ten kod zapisuje na kartę do pliku i2c.txt
    48
    48
    48
    48
    48

    A chodzi mi aby to było w jednej linii.
  • REKLAMA
  • #2 9644096
    jousto
    Poziom 17  
    Nie jestem jeszcze do końca pewien ponieważ nie "doszedłem" jeszcze do tego etapu zapisu w pliku ale podejrzewam że problemem jest tu sposób otwarcia pliku oraz sposób zapisu
    powinno raczej być
    Open "i2c.txt" For Binary As #3

    i zamiast
    Write #3 , Dane

    zastosuj


    Ja mam natomiast pytanie:
    Jak masz sformatowaną kartę SD (512 B/sektor? czy inaczej, FAT16?, i jaka pojemność karty)
    Czy wywołanie funkcji Initfilesystem zwraca ci 0?, zapewne tak, ale chciałem się upewnić
  • REKLAMA
  • #3 9647225
    scsi
    Poziom 11  
    Kartę mam HAMA 2GB w FAT16 jeśli chodzi o rozmiar alokacji to był ustawiony podczas formatu na domyślny. Jeśli chodzi o karty to bardzo dużo kart nie działa. Ja osobiście przerobiłem 6 kart za nim ruszyło. Wcześniej były błędy.

    Ściągnąłem z elektrody kod w bascom z tematu "Najprostsze odtwarzanie wav" po czym zacząłem każdą kartę formatować na FAT16 i nagrywałem plik wav w 8000khz mono i sprawdzałem czy karta chodzi. Jeśli był dźwięk to znaczy ,zę karta w 100% będzie działać. Wiem ,że sposób może nie najlepszy i dziwny ale w 100% skuteczny.
  • #4 9647722
    jousto
    Poziom 17  
    Faktycznie dziwny sposób, nawet nie sprawdzałeś jakiego rodzaju były błędy w przypadku niedziałających kart.
    Używam dwóch kart. W przypadku pierwszej - 16MB (Panasonic, z jakiegoś aparatu), przechodzi poprawnie funkcję DriveInit z biblioteki MMC.lib, widać to bo daje w odpowiedzi 0, a jak wyciągnę kartę to zgłasza błąd 225 (brak odpowiedzi po Reset).
    Mam jeszcze kartę 128MB(Lexar) ale w przypadku tej zgłasza zawsze błąd 226 czyli brak odpowiedzi na Read.
    Dalej - po inicjalizacji karty 16MB, wykłada się na funkcji InitFileSystem z biblioteki AVR-DOS.lbx bo zgłasza błąd 20, co interpretuję jako: nieobsługiwana wielkość sektora. Formatowałem kartę na wiele sposobów zarówno w fat16 jak i 32 i z różnymi wielkościami sektorów (jednostek alokacji) od 512B do 4096B ale zawsze w wyniku funkcji InitFileSystem daje błąd 20.
    Jadę do MM kupię jakąś inną kartę może zadziała. Potem rzucam to w krzaki bo szkoda nerwów i zabieram się za pamięci szeregowe.
REKLAMA