Do odtwarzania plików .wav na atmedze 32 używałem takich ustawień w pliku zewnętrznym "Config_MMC.bas":
Code: vbnet
Log in, to see the code
Chciałbym się przenieść z programem na atmege 128 i zmieniłem powyższy kod:
Code: vbnet
Log in, to see the code
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.
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program.
Mam taki kod:
Code: vbnet
Log in, to see the code
Do tego pliki zewnętrzne:
1."Card_init_v2.bas"
Code: vbnet
Log in, to see the code
2."Config_MMC.bas"
Code: vbnet
Log in, to see the code
3."CONFIG_AVR-DOS.bas"
Code: vbnet
Log in, to see the code
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
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 ) o niczym nie świadczy. Kompilator napotykając "Bmmc_miso" w tekscie programu zamieni to na "1", zgodnie z instrukcją ALIAS.
FastProject wrote:
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 wrote:
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).
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?
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?