Skocz do zawartości

Programator pamięci FLASH


Leoneq

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Ogólnie bardzo fajny projekt. Jedyne co zapisał bym inaczej (bardziej arduinowo) to:

shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, highByte(address));
shiftOut(SHIFT_DATA, SHIFT_CLK, MSBFIRST, lowByte(address));

Jak dla mnie jest to bardziej "human readable" 🙂

Link do komentarza
Share on other sites

(edytowany)

Z tego co widzę, highByte(); i lowByte(); nie będzie działać, jeżeli szyna adresów będzie szersza od 16 linii (użyjemy zmiennej większej od int16_t, więc wyślemy tylko 8 bitów po lewej i 8 po prawej). Przesunięciem bitowym (>> i <<) można obsłużyć większe dane. Ale do małych pamięci jak najbardziej można użyć tamtych funkcji, chociaż przesunięcie bitowe mi się wydaje lepszym rozwiązaniem.

Edytowano przez Leoneq
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

6 godzin temu, Leoneq napisał:

Z tego co widzę, highByte(); i lowByte(); nie będzie działać, jeżeli szyna adresów będzie szersza od 16 linii

Tak zgadza się. Aczkolwiek w tym projekcie jest

void setAddress(int address)

dlatego podałem możliwość użycia highByte() oraz lowByte.

6 godzin temu, Leoneq napisał:

chociaż przesunięcie bitowe mi się wydaje lepszym rozwiązaniem.

w twoim kodzie jest:

address >> 8

highByte() robi to samo

#define highByte(w) ((uint8_t) ((w) >> 8))

w przypadku lowByte() jest inaczej. Aczkolwiek trzymaj się tego co bardziej Ci odpowiada.

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.