컨트롤러"8

G

Guest

Guest
안녕 모두,
내가 정수를 보낼 필요가 플래시 메모리에 8 비트 문자열로.정수를 24 비트 길이 될 것입니다.아무도 내가 어떻게 24 비트 정수를 보낼 수있는 모든 제안이 같은 C 코드에서 3 개의 8 비트 바이트?
미리 감사드립니다.

 
24 비트 정수로 가정 aa는 32 비트라는 변수에 저장됩니다.

서명 오래 aa는;
서명 숯불 엑스, y, z는;

x = (서명 숯불) (aa는 / 0x10000); / / MSB가 8 비트
send_to_flash (x)를;
y를 = (서명 숯불) ((aa는 % 0x10000) / 0x100); / / 중간에 8 비트
send_to_flash (y를);
z는 = (서명 숯불) (aa는 % 0x100); / / LSB를 8 비트
send_to_flash (z는);

다른 방법도있습니다.당신이 근무 연산자를 사용하거나 조합을 사용할 수있습니다.위의 방법을 가장 효율적으로하지 않습니다.하지만, 그것을 이해하기 쉽습니다.가장 효율적인 방법은 조합을 사용하는 것입니다.

 
서명 오래 aa는;
서명 숯불 * tosend = (서명 숯불 *) &aa;
send_to_flash (tosend [0]);
send_to_flash (tosend [1]);
send_to_flash (tosend [2]);
참고 : 당신과 당신이 플래시로 보낼 명령 엔디안 문제를 고려해야합니다.또 다른 가능성이있습니다 :
send_to_flash (tosend [2]);
send_to_flash (tosend [1]);
send_to_flash (tosend [0]);

 
명심 다른 엔디안 형식으로 8051과 8086를 저장할 ...

노조는 방법은 실제로 같은 건없습니다.그래서 당신이 염두에두고있는 동안뿐만 아니라 노동 조합을 사용하여 엔디안 문제를 계속했다.

 

Welcome to EDABoard.com

Sponsor

Back
Top