Skocz do zawartości
Leoneq

Programator pamięci FLASH

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" 🙂

Udostępnij ten post


Link to post
Share on other sites

Tyle że to ma być "machine executable" a nie "human readable".

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
Share on other sites
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

Udostępnij ten post


Link to post
Share on other sites
2 godziny temu, slon napisał:

w tym projekcie jest


void setAddress(int address)

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

A ile bitów ma int?

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...