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.

Atmega128[Bascom] - Plik zewnętrzny "Config_MMC.bas"

werewolf15 22 Kwi 2013 00:42 2388 7
  • #1 22 Kwi 2013 00:42
    werewolf15
    Poziom 14  

    Do odtwarzania plików .wav na atmedze 32 używałem takich ustawień w pliku zewnętrznym "Config_MMC.bas":

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Chciałbym się przenieść z programem na atmege 128 i zmieniłem powyższy kod:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Niestety procek nie widzi karty.
    Według mnie trochę nie pasuje powtarzający się w programie "alias 1" bo chyba nie może się powtarzać?
    Proszę o pomoc w znalezieniu i poprawy błędu.

    0 7
  • #2 23 Kwi 2013 14:25
    FastProject
    Poziom 28  

    To ci się w ogóle kompiluje. Dziwne te aliasy "Bmmc_miso Alias 1" "Bmmc_sck Alias 1"

    Co czego one sie odwołują, co to jest ta "1"?

    Ni i na pewno nie powinno być takich samych przypisań.

    0
  • #3 23 Kwi 2013 16:52
    werewolf15
    Poziom 14  

    Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program.
    Mam taki kod:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Do tego pliki zewnętrzne:
    1."Card_init_v2.bas"
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    2."Config_MMC.bas"
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    3."CONFIG_AVR-DOS.bas"
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    To wszystko działa na atmedze32.
    Chciałem aby program działał na at128 i myślałem że wystarczy zmienić ustawienia w pliku zewnętrznym "Config_MMC.bas".
    Oto schemat w jaki próbuję podłączyć at128
    Atmega128[Bascom] - Plik zewnętrzny "Config_MMC.bas"

    0
  • #4 23 Kwi 2013 20:55
    ZbeeGin
    Poziom 38  

    FastProject napisał:
    To ci się w ogóle kompiluje. Dziwne te aliasy "Bmmc_miso Alias 1" "Bmmc_sck Alias 1"

    ALIAS jest podobna do #define w języku C. Po prostu nazwie przed słowem kluczowym "przypisujesz" inną wartość - za słowem kluczowym, właśnie po to by nie przerabiać całego programu na nowo tylko same "przypisania". To, że najczęściej programy wykorzystują konstrukcje: Dioda1 ALIAS PortB.2 (bo np. Piotr Górecki tak pisał w swojej książce :D ) o niczym nie świadczy. Kompilator napotykając "Bmmc_miso" w tekscie programu zamieni to na "1", zgodnie z instrukcją ALIAS.

    FastProject napisał:
    Co czego one sie odwołują, co to jest ta "1"?

    Jedynka oznacza tu numer bitu w porcie. Zresztą. Spójrz na komentarze pod instrukcjami. One wszystko wyjaśniają.

    Dodano po 21 [minuty]:

    FastProject napisał:
    Ni i na pewno nie powinno być takich samych przypisań.

    Mogą być. Zauważ, że wszystkie linie są częściowo na jednym porcie a częściowo na drugim. Decydującą rolę mają też ALIAS-y linijkę wyżej, które określają port. Raz jest to PORTB raz PORTE.


    Zastanawiam, się czy korzystanie dla potrzeb wewnętrznego programowego układu SPI - przez który komunikuje się procesor z kartą - "egzotycznego" portu PORTE nie jest problemem dla tego "emulatora" SPI. Spróbuj przenieść MISO i MOSI na PORTB albo PORTA odpowiednio modyfikując połączenia oraz treść config_mmc.bas
    Ale wcześniej sprawdź czy odpowiednio ustawiłeś bit fuse M103C. Bascom powinien wskazywać "128 compatible" (o ile pamiętam).

    0
  • #5 23 Kwi 2013 22:21
    werewolf15
    Poziom 14  

    Proszę, napisz mi co to jest ten "bit fuse M103C" i jak go sprawdzić.

    Dodano po 1 [godziny] 6 [minuty]:

    Zrobiłem tak:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    i tak połączyłem:
    Atmega128[Bascom] - Plik zewnętrzny "Config_MMC.bas"
    I dalej nie czyta karty.
    Proszę o pomoc.

    0
  • #6 24 Kwi 2013 06:30
    ZbeeGin
    Poziom 38  

    Wejdź do programowania, wybierz zakładkę Lock and Fuse Bits, tam sprawdź pozycję zaznaczoną na żółto.

    Atmega128[Bascom] - Plik zewnętrzny "Config_MMC.bas"

    Poza tym, nie podobają mi się te dzielniki na portach. Nie lepiej zastosować bufory z serii LVC?

    0
  • #7 24 Kwi 2013 16:25
    werewolf15
    Poziom 14  

    Fuse bity mam ustawione identycznie jak na twoim obrazku.Te dzielniki napięcia działały na at32 więc myślałem że tu też będą pasować.
    Może jeszcze jakieś propozycje jak przerobić mój kod na atmege128?

    0
  • #8 25 Kwi 2013 20:46
    werewolf15
    Poziom 14  

    Z założenia mój układ miał być "mówiącym" sterownikiem domowym.Chciałem żeby za wszystko odpowiedzialna była atmega128 ale może łatwiej będzie użyć dodatkowego procka właśnie at32. Będzie ona spełniać rolę "procesora muzycznego" a at128 będzie wszystkim sterować w połączeniu UART.
    I co o tym myślicie?

    0