10.07.2015 Views

cubloc_manual2.pdf

cubloc_manual2.pdf

cubloc_manual2.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

다음은 Peek, Poke, Memadr 명령의 활용예입니다. EEWRITE 명령은 정수형 데이터를 취급하는명령이므로, 실수형 변수값을 저장할 수 없습니다. 만약 EEWRITE, EEREAD 에서 실수형 데이터를 저장한뒤 읽어들인다면 다음과 같은 결과를 볼 수 있을 것입니다.Const Device = CB280Dim f1 As Single, f2 As Singlef1 = 3.14Eewrite 0,f1,4f2 = Eeread(0,4)Debug Float f2,crDebug 창에는 3.14 가 나와야 하는데, 3.00000 이 표시됩니다. 그 이유는 EEWRITE 명령에서 F1변수가 정수형 데이터로 자동변환되었기 때문입니다. 실수형 데이터를 있는 그대로 EEPROM 에저장하기 위해서는 메모리에 직접 접근하여, 데이터를 읽어오는 수밖에 없습니다. 다음 프로그램은 Memadr 과 Peek, Poke 명령으로 실수형 데이터의 EEPROM 저장을 구현한 것입니다.Const Device = CB280Dim f1 As Single, f2 As Singlef1 = 3.14Eewrite 10,Peek(Memadr(f1),4),4Poke Memadr(F2),Eeread(10,4),4Debug Float F2,CRDebug 창에 결과는 3.14 로 제대로 표시됩니다.Memadr(f1)으로 f1 변수의 어드레스를 알아낸뒤. Peek 명령으로 해당 번지에 들어있는 값을 직접접근하여 4 바이트 읽어옵니다. 여기까지 Peek(Memadr(f1),4) 로 표현할 수 있습니다. 그값을EEPROM 에 저장하는 것입니다.읽어올 때에는 반대로 Poke 명령으로 Memadr(f2)의 어드레스에 직접 기입합니다.주의사항Poke 명령을 사용할 때에는 충분한 주의를 기울여야 합니다. 포인터 구조를 정확히 이해하지 못한상황에서 사용한다면, 전체 프로그램의 동작에 치명적인 영향을 줄 수 있으므로 주의해야 합니다.Peek, Poke 는 큐블록의 데이터 메모리인 SRAM에만 접근할 수 있으며, I/O 레지스터나 프로그램메모리 (플레쉬 영역)에는 접근할 수 없습니다.201

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!